- 博客(51)
- 收藏
- 关注

原创 kotlin coroutines 协程教程(三)launch原理
原理篇(二)CoroutineScope.launch{} 过程分析launch 的流程先贴上 launch 的源码:public fun CoroutineScope.launch( context: CoroutineContext = EmptyCoroutineContext, start: CoroutineStart = CoroutineStart.DEFAUL...
2019-02-07 22:08:48
6383

原创 Java 多线程编程-并发编程
Java 多线程编程-并发编程对于初学者来说,多线程就是 new 一个 Thread(),然后设置一个 Runnable,调用 Thread.start()方法启动线程。可是这种方式可能存在以下问题子线程不可控制,不可取消(可以自行设置标志位,结束run方法),不可返回结果创建新的线程,并且启动线程,需要抢占资源,可能会超过线程数,同时空闲的线程,没有被重新利用。为此,这里会介绍...
2018-03-04 15:57:33
774

原创 Android 内存优化最佳实践
Android 内存优化最佳实践移动设备上,内存是兵家必争之地,内存,CPU,帧率,耗电量,是非常重要的用户体验性能,从根本上考虑,优化内存和CPU,帧率和耗电量一般都会得到一定程度的优化。Bugly 在 2016 收集的崩溃数据如下(android 应用数据)同比 2015 年, OOM 崩溃问题从 2% 上涨到了 6%,OOM问题,随着业务场景的复杂,问题越发严重。JV...
2018-03-01 09:49:35
896
原创 kotlin coroutines 协程教程(二)关键类分析
原理篇(一)关键类的分析上面简单的介绍了一些用法,但是具体的原理和特点,好像还不是很清楚,那么下面就来介绍一下,一些关键的类,流程和原理。介绍的相关的原理基于这行代码: fun coroTest() { GlobalScope.launch { delay(1000L)//Delays coroutine for a given time wit...
2019-02-07 21:58:18
3248
1
原创 kotlin coroutines 协程教程(一)基本用法
kotlin coroutines 协程Coroutine 协程,是kotlin 上的一个轻量级的线程库,对比 java 的 Executor,主要有以下特点:更轻量级的 api 实现协程async 和 await 不作为标准库的一部分suspend 函数,也就是挂起函数是比 java future 和 promise 更安全并且更容易使用那么实际本质上和线程池有什么区别呢?我的理...
2019-02-07 21:16:08
2896
3
原创 kotlin coroutines 协程教程-入门用法
kotlin coroutines 协程教程-入门用法Coroutine 协程,是kotlin 上的一个轻量级的线程库,对比 java 的 Executor,主要有以下特点:更轻量级的 api 实现协程async 和 await 不作为标准库的一部分suspend 函数,也就是挂起函数是比 java future 和 promise 更安全并且更容易使用那么实际本质上和线程池有什么...
2019-01-27 17:13:12
1457
原创 Kotlin 编译流程简介
Kotlin 编译流程简介这里主要介绍 .kt 文件的处理编译过程。如果使用命令行编译 kotlin 文件,例如编译 hello.kt 文件,执行如下命令,参考 kotlin command-linekotlinc Hello.kt在 kotlin 源码中,位于 kotlin/compiler/cli/bin/kotlinc 文件中,这个 shell 文件是 kotlin 编译的入口,然...
2019-01-08 10:04:02
2929
原创 Gradle 插件本地调试
Gradle 插件本地调试首先在 terminal 中输入:./gradlew assembleDebug -Dorg.gradle.daemon=false -Dorg.gradle.debug=true然后在 app run 中:创建好 remote 调试之后,选中该调试,接着按下 attach-debug:接着就能进入到你设置好断点的 gradle plugin 代码中了。...
2018-12-14 17:14:16
1366
原创 Kotlin DSL
Kotlin DSLDSL 总体来说是非常简洁的,在使用 Android 开发 java 的过程中,貌似么有使用过 DSL之类的写法,而在 kotlin 中,使用最多的 DSL 就是 anko根据 anko 的官方文档说明,使用 DSL 有以下好处(也就是使用 xml 的坏处):By default, UI in Android is written using XML. That is i...
2018-12-08 16:57:58
3008
原创 SharedPreferences anr 处理方案
SharedPreferences anr 原因以及避免方案技术背景:AuthMode 和SDK 使用了系统默认的 SharedPreferences,系统的 SharedPreferences 实现类在 android/app/SharedPrefenencesImpl.java 中。SharedPrefenences 工作流程我们平时这样获取一个 SharedPrefenences(全...
2018-12-08 16:33:58
3783
原创 JAVA 注解(Java Annotation)
JAVA 注解(Java Annotation)刚学 java 的时候,就接触了各种的 java 注解,那时候,不是很明白注解的原理,只能说,知道是那么回事,最近在折腾 apt 相关的内容,就重新复习了一遍。注解的定义注解是,类似 class interface 一样的类型,其定义解释可以参考 https://docs.oracle.com/javase/1.5.0/docs/guide/...
2018-10-21 20:13:23
243
原创 LeakCanary 使用说明
LeakCanary 使用说明LeakCanary 作为最简单直接的内存泄漏检测工具,非常受欢迎,github 上已经达到了 1.9 W star。官方地址如下:https://github.com/square/leakcanary使用说明:在debug 版本-设置-环境设置-LeakCanary Setting 查看是否打开了 LeakCanary。执行你的日常开发和自测,目前...
2018-06-05 10:35:36
4610
原创 Kotlin 集合
Kotlin 集合Kotlin 集合kotlin 集合-接口架构Kotlin 集合-抽象实现类kotlin List工具类 - CollectionsKotlin Map 工具类- MapsKotlin Set 工具类 - Sets_Collections List 相关高阶函数更多高阶函数Kotlin 实现的集合kotlin 集合-接口架构...
2018-06-05 10:30:58
5312
原创 Activity 专题- Activity 托管 Fragment 的生命周期解析
Activity 专题- Activity 如何托管 Fragment 的生命周期解析或者你使用过 DialogFragment,DialogFragment 是一种特殊的 Fragment ,这里简单介绍下原理,其实就是 Fragment 里面封装了一个 Dialog,public class DialogFragment extends Fragment impleme...
2018-03-11 15:20:01
467
原创 Android View绘制(二)-绘制流程分发
Android View绘制(二)-绘制流程分发Android View绘制(二)-绘制流程分发从 addView() 说起View.requestLayout() 方法ViewRootImpl.requestLayout()总结-android View 绘制流程在上一篇文章,我们了解了 Android inflate 的流程,也就是布局文件 inflate...
2018-03-04 12:16:16
668
原创 Android View绘制(一)- LayoutInflater.inflate() 流程简要解析
Android View绘制- LayoutInflater.inflate() 流程简要解析布局,作为 Android 中展示 UI 的最主要的元素,其实它是怎么通过布局文件转化为实际的 UI 的?这篇文章,就是对这一过程进行简要的解析,并且提出一些实际开发过程需要注意的问题。阅读该文章你可以了解到LayoutInfalter 的工作过程布局优化的一些建议Layout...
2018-03-03 15:33:18
1127
原创 Handler,Message,Looper,MessageQueue 解析 -Android 异步消息机制
Handler,Message,Looper,MessageQueue Android 异步消息机制我们都知道,使用 Handler 能够在 UI 主线程和子线程之间进行通信,最简单的代码如下:public class BitmapActivity extends Activity implements Handler.Callback { private Handler ha...
2018-03-02 13:58:19
279
原创 Java 多线程编程-并发编程
Java 多线程编程-并发编程Table of Contents Java 多线程编程-并发编程并发基础类之任务类Callable 接口Future 接口FutureTask 类 构造方法run()方法get()方法并发基础类之线程相关类ThreadFactory 接口ThreadGroup 类Executors.DefaultThreadFactory 类并发基础类之调度器Executor...
2018-02-28 16:02:08
494
原创 android 图片压缩算法-luban
图片压缩算法-lubanluban 鲁班算法是号称最接近微信朋友圈图片压缩算法的一种图片压缩算法,GitHub 地址:https://github.com/Curzibn/Luban根据作者提供的数据,压缩效果如下: 内容 原图 Luban Wechat 截屏 720P 720*1280,390k 720*1280,87k 720*1280...
2018-02-27 19:35:54
5602
1
原创 React 疑难点-Props和State的区别
React 疑难点-Props和State的区别从一开始学习React或者React-Native就对 props和state有着很大的疑惑,它们之间究竟有什么区别?又该怎么使用它们呢?props:props是一个组件的设置参数,可以在父控件中选择性设置。父组件对子控件的props进行赋值,并且props的值不可改变。一个子控件自身不能改变自己的 props。state:当一个组件 mounts
2017-07-28 14:45:24
9063
原创 Freeline框架解析
FreeLine 框架解析目前主流的动态编译方案对比layoutcastBuckandroid studio Instant run阿里 freelineFreeline 部署步骤freeline 注意事项freeline 使用总结Freeline 实现原理buck 多任务并发Freeline 扫描机制Freeline TCP 连接自定义的 AAPT 工具FreeLine 框
2017-07-28 12:56:06
1770
原创 Kotlin 入门-基本语法
Kotlin 入门-基本语法kotlin 作为 java 类似的语言,学过 java 的同学,学 kotlin 应该很轻松。Package 和 Importpackage所有的 kotlin 源码都是从包名声明开始的,如下代码:package com.kugou.kotlon.kotlinfirstglanceimport android.support.v7.app.AppCompatActivi
2017-07-24 23:43:38
4737
原创 Kotlin 前言和介绍
Kotlin 前言和介绍kotlin 对 android 开发者来说是巨大的福音,因为它包含了对 android 平台所有有利的语言特点,但是却不会带来任何新的额外的限制。官方介绍有以下特点:兼容性:kotlin 和 jdk 1.6 完全兼容,确保了新的 kotlin 应用能够在旧的设备上运行。kotlin 开发工具能够很好的支持android studio 并且兼容 android 构建系统(g
2017-07-24 23:42:54
276
原创 Broadcast Receiver 基础
Broadcast Receiver 基础Broadcast Receiver 是四大组件之一,可以用来接受系统或者app(可以app 内部组件,也可以是跨 app)的各种事件,当然这些事件必须通过 sendBroadcast()方法发送出来,Broadcast Receiver 才可以接受到。广播可以作为组件之间,跨进程,跨应用之间的通信,更多的时候,是配合系统的内置 Broadcast 对我们的
2017-07-23 22:05:01
517
原创 React Native For Android(Windows )配置
ReactNativeForAndroid Reactnative Windows
2016-07-25 17:22:27
1010
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人