自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 6190

原创 Java 多线程编程-并发编程

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

2018-03-04 15:57:33 706

原创 Android 内存优化最佳实践

Android 内存优化最佳实践移动设备上,内存是兵家必争之地,内存,CPU,帧率,耗电量,是非常重要的用户体验性能,从根本上考虑,优化内存和CPU,帧率和耗电量一般都会得到一定程度的优化。Bugly 在 2016 收集的崩溃数据如下(android 应用数据)同比 2015 年, OOM 崩溃问题从 2% 上涨到了 6%,OOM问题,随着业务场景的复杂,问题越发严重。JV...

2018-03-01 09:49:35 805

原创 kotlin coroutines 协程教程(二)关键类分析

原理篇(一)关键类的分析上面简单的介绍了一些用法,但是具体的原理和特点,好像还不是很清楚,那么下面就来介绍一下,一些关键的类,流程和原理。介绍的相关的原理基于这行代码: fun coroTest() { GlobalScope.launch { delay(1000L)//Delays coroutine for a given time wit...

2019-02-07 21:58:18 3130 1

原创 kotlin coroutines 协程教程(一)基本用法

kotlin coroutines 协程Coroutine 协程,是kotlin 上的一个轻量级的线程库,对比 java 的 Executor,主要有以下特点:更轻量级的 api 实现协程async 和 await 不作为标准库的一部分suspend 函数,也就是挂起函数是比 java future 和 promise 更安全并且更容易使用那么实际本质上和线程池有什么区别呢?我的理...

2019-02-07 21:16:08 2687 3

原创 kotlin coroutines 协程教程-入门用法

kotlin coroutines 协程教程-入门用法Coroutine 协程,是kotlin 上的一个轻量级的线程库,对比 java 的 Executor,主要有以下特点:更轻量级的 api 实现协程async 和 await 不作为标准库的一部分suspend 函数,也就是挂起函数是比 java future 和 promise 更安全并且更容易使用那么实际本质上和线程池有什么...

2019-01-27 17:13:12 1366

原创 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 2756

原创 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 1257

原创 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 2859

原创 SharedPreferences anr 处理方案

SharedPreferences anr 原因以及避免方案技术背景:AuthMode 和SDK 使用了系统默认的 SharedPreferences,系统的 SharedPreferences 实现类在 android/app/SharedPrefenencesImpl.java 中。SharedPrefenences 工作流程我们平时这样获取一个 SharedPrefenences(全...

2018-12-08 16:33:58 3711

原创 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 207

原创 LeakCanary 使用说明

LeakCanary 使用说明LeakCanary 作为最简单直接的内存泄漏检测工具,非常受欢迎,github 上已经达到了 1.9 W star。官方地址如下:https://github.com/square/leakcanary使用说明:在debug 版本-设置-环境设置-LeakCanary Setting 查看是否打开了 LeakCanary。执行你的日常开发和自测,目前...

2018-06-05 10:35:36 4525

原创 Kotlin 集合

Kotlin 集合Kotlin 集合kotlin 集合-接口架构Kotlin 集合-抽象实现类kotlin List工具类 - CollectionsKotlin Map 工具类- MapsKotlin Set 工具类 - Sets_Collections List 相关高阶函数更多高阶函数Kotlin 实现的集合kotlin 集合-接口架构...

2018-06-05 10:30:58 5189

原创 Activity 专题- Activity 托管 Fragment 的生命周期解析

Activity 专题- Activity 如何托管 Fragment 的生命周期解析或者你使用过 DialogFragment,DialogFragment 是一种特殊的 Fragment ,这里简单介绍下原理,其实就是 Fragment 里面封装了一个 Dialog,public class DialogFragment extends Fragment impleme...

2018-03-11 15:20:01 412

原创 Android View绘制(二)-绘制流程分发

Android View绘制(二)-绘制流程分发Android View绘制(二)-绘制流程分发从 addView() 说起View.requestLayout() 方法ViewRootImpl.requestLayout()总结-android View 绘制流程在上一篇文章,我们了解了 Android inflate 的流程,也就是布局文件 inflate...

2018-03-04 12:16:16 598

原创 Android View绘制(一)- LayoutInflater.inflate() 流程简要解析

Android View绘制- LayoutInflater.inflate() 流程简要解析布局,作为 Android 中展示 UI 的最主要的元素,其实它是怎么通过布局文件转化为实际的 UI 的?这篇文章,就是对这一过程进行简要的解析,并且提出一些实际开发过程需要注意的问题。阅读该文章你可以了解到LayoutInfalter 的工作过程布局优化的一些建议Layout...

2018-03-03 15:33:18 993

原创 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 252

原创 Java 多线程编程-并发编程

Java 多线程编程-并发编程Table of Contents Java 多线程编程-并发编程并发基础类之任务类Callable 接口Future 接口FutureTask 类 构造方法run()方法get()方法并发基础类之线程相关类ThreadFactory 接口ThreadGroup 类Executors.DefaultThreadFactory 类并发基础类之调度器Executor...

2018-02-28 16:02:08 462

原创 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 5288 1

原创 APK 瘦身之路

APK 瘦身

2017-10-10 13:59:59 267

原创 Activity release 资源的正确姿势

Activity relsae 资源,onDestroy()方法

2017-10-08 22:58:29 458

原创 React-Native在android原生上的绘制流程

React-Native在android原生上的绘制流程

2017-07-28 14:46:39 1642

原创 React 疑难点-Props和State的区别

React 疑难点-Props和State的区别从一开始学习React或者React-Native就对 props和state有着很大的疑惑,它们之间究竟有什么区别?又该怎么使用它们呢?props:props是一个组件的设置参数,可以在父控件中选择性设置。父组件对子控件的props进行赋值,并且props的值不可改变。一个子控件自身不能改变自己的 props。state:当一个组件 mounts

2017-07-28 14:45:24 8990

原创 ScrollView 源码分析(二)

ScrollView 源码分析(二)

2017-07-28 14:44:51 367

原创 ScrollView 源码解析

React Native ScrollView 源码解析

2017-07-28 14:43:48 1133

原创 静态代码扫描教程

静态代码扫描教程,Sonarqube(Sonar),lint介绍,压缩apk,减少 apk 体积

2017-07-28 13:09:58 6185 1

原创 Freeline框架解析

FreeLine 框架解析目前主流的动态编译方案对比layoutcastBuckandroid studio Instant run阿里 freelineFreeline 部署步骤freeline 注意事项freeline 使用总结Freeline 实现原理buck 多任务并发Freeline 扫描机制Freeline TCP 连接自定义的 AAPT 工具FreeLine 框

2017-07-28 12:56:06 1660 2

原创 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 4650

原创 Kotlin 前言和介绍

Kotlin 前言和介绍kotlin 对 android 开发者来说是巨大的福音,因为它包含了对 android 平台所有有利的语言特点,但是却不会带来任何新的额外的限制。官方介绍有以下特点:兼容性:kotlin 和 jdk 1.6 完全兼容,确保了新的 kotlin 应用能够在旧的设备上运行。kotlin 开发工具能够很好的支持android studio 并且兼容 android 构建系统(g

2017-07-24 23:42:54 242

原创 Broadcast Receiver 基础

Broadcast Receiver 基础Broadcast Receiver 是四大组件之一,可以用来接受系统或者app(可以app 内部组件,也可以是跨 app)的各种事件,当然这些事件必须通过 sendBroadcast()方法发送出来,Broadcast Receiver 才可以接受到。广播可以作为组件之间,跨进程,跨应用之间的通信,更多的时候,是配合系统的内置 Broadcast 对我们的

2017-07-23 22:05:01 463

原创 React Native For Android(Windows )配置

ReactNativeForAndroid Reactnative Windows

2016-07-25 17:22:27 964

翻译 GC Roots

GC Roots

2016-01-19 10:59:16 4874

原创 Android Studio 构建速度优化策略(一)

Android Studio 构建速度优化策略

2015-12-21 11:24:48 949

翻译 Android ART简介

Android ART

2015-12-13 22:22:21 662

翻译 ART 和 Dalvik 虚拟机

ART 和 Dalvik 虚拟机

2015-12-13 21:43:56 474

原创 android 布局优化(一)

android 布局优化 Android lint Android hierarchyView

2015-12-04 21:21:29 397

原创 git 学习笔记

git学习笔记 git简易教程

2015-10-26 16:18:50 409

原创 Android 属性动画详解

Android 的属性动画详解 ObjectAnimator ValueAnimator

2015-10-21 15:51:03 2506

原创 图片专题 一 Universal Image Loader 简易教程

Android Universal Image Loader 教程

2015-09-21 14:05:22 397

原创 Http Cookies 和相关概念

Http Cookies 相关概念

2015-09-20 20:07:13 504

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除