摘要: 一、Handler是什么? 在Android开发中,使用消息队列(message)完成线程间通信。而使用消息队列的线程就是消息循环(message looper)。消息循环不断的检查消息队列,是否有新消息。消息循环是由一个线程和一个looper组成;looper对象管理着线程的消息队列。 Andro阅读全文
posted @ 2018-04-25 11:15 naray 阅读(16) 评论(0) 编辑
摘要: 在Handler基础篇中讲述了Handler原理和使用,下面是从Handler源码进一步解析Handler。 一、源码解析 1. Handler的构造函数 在构造函数中有mLooper和mQueue获取。其中Looper和MessageQueue是如何创建,下面请看Looper源码 在Handler阅读全文
posted @ 2018-04-25 11:14 naray 阅读(129) 评论(0) 编辑
摘要: 一、简介 进程(Process)是程序的一个运行的实例,以区别“程序”这一静态的概念。线程(Thread)是CPU调用的基本单位。 二、进程的组成部分 在Android中的四大组件是进程组成的一部分,Android App在启动时,创建App进程,以及主线程(UI线程)和两个Binder线程。创建一阅读全文
posted @ 2017-07-12 11:18 naray 阅读(34) 评论(0) 编辑
摘要: 一、Android 启动模式LaunchMode Standard:标准模式,也是系统默认的启动模式。每次启动都会创建一个新的Activity实例,不管这个实例在栈中是否已经存上。Activity所在的任务栈为启动新Activity B的Activity A所在任务栈。具体就是Activity A所阅读全文
posted @ 2017-06-13 10:18 naray 阅读(78) 评论(0) 编辑
摘要: 一、简介 Android应用版本号可以在Androidmanifest.xml文件中配置,标签<manifest>的属性android:versionCode和android:versionName配置版本号。 android:versionCode -- 为设备识别app版本,用于app升级所使用阅读全文
posted @ 2017-05-07 15:09 naray 阅读(4169) 评论(0) 编辑
摘要: 一、概述 二、注意事项 1. 在派生类中,重写onDraw(...)方法,如果不给LinearLayout设置一个背景,系统是不会调用onDraw时,也就是说,我们重写的onDraw(...)是不会调用的。当设置一个背景后,onDraw就会被调用。ViewGroup本身是一个容器,其本身并没有任何东阅读全文
posted @ 2017-05-07 15:06 naray 阅读(20) 评论(0) 编辑
摘要: 一、样式和主题(style and theme) 1.1 样式(style)是来指定视图和窗口的外观和格式的一组属性集合。样式可以指定文本、字体及大小、背景颜色等属性。比如: 样式在TextView控件中使用: 1.2 样式继承 style可以通过paren属性继承一个现在的样式,然后,修改或者添加阅读全文
posted @ 2017-05-07 15:06 naray 阅读(1332) 评论(0) 编辑
摘要: 一、Parcelable 序列化 存储Map为作为Bundle在数据,在Intent中传递:阅读全文
posted @ 2017-05-07 15:05 naray 阅读(22) 评论(0) 编辑
摘要: 一、使用ViewHolder模式提高效率 ViewHolder模式充分利用ListView的视图缓存机制,避免了每次在调用getView()方法的时候都去通过findViewById()方法实例化控件。使用ViewHolder模式,需要在自定义Adapter中定义一个内部类ViewHolder,并将阅读全文
posted @ 2017-05-07 15:04 naray 阅读(472) 评论(0) 编辑
摘要: 一、简介 当测量好了一个View之后,就可以简单的重写onDraw()方法,并在Canvas对象上来绘制所需要的图形。首先,我们来了解一下利用系统2D绘图API所必须要使用到的Canvas对象。 要在Android的界面中绘制相应的图像,就必须在Canvas上进行绘制。Canvas就像是画板,使用P阅读全文
posted @ 2017-05-07 15:03 naray 阅读(34) 评论(0) 编辑