2015年4月25日
摘要: Android主要提供了3类动画,第一类是Tween动画(也称为补间动画),就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。第二类就是 Frame动画,即顺序的播放事先做好的图像。第三类是属性动画,这种动画会改变对象的实际属性。 1. Tween动画(补间动画) 补间动 阅读全文
posted @ 2015-04-25 16:13 Jackwen 阅读(252) 评论(0) 推荐(0) 编辑
  2015年4月16日
摘要: 目前,在锁屏界面控制音乐播放有两种常用方式。第一种方式:原生Android系统及自带音乐播放器。锁屏界面端: 原生Android中,锁屏界面相关的UI由KeyguardHostView提供,KeyguardHostView向KeyguardUpdateMonitor注册一个类型为 KeyguardU... 阅读全文
posted @ 2015-04-16 18:08 Jackwen 阅读(3853) 评论(0) 推荐(0) 编辑
  2015年3月19日
摘要: 通过MediaServer详细解析Binder内部实现细节。1. MediaServer的入口函数int main(int argc, char** argv) { sp proc(ProcessState::self()); //获得一个ProcessState实例 // ... 阅读全文
posted @ 2015-03-19 09:45 Jackwen 阅读(258) 评论(0) 推荐(0) 编辑
  2015年3月16日
摘要: Binder工作在linux层,是一个不需要硬件的驱动,从线程角度看,Binder代码运行在内核态,客户端程序使用Binder是通过系统调用完成的。 Binder是一种整体架构,包含服务端接口,Binder驱动,客户端接口三个模块。1. 服务端 一个Binder服务端实际上就是一个Binder类的... 阅读全文
posted @ 2015-03-16 19:16 Jackwen 阅读(412) 评论(0) 推荐(0) 编辑
  2015年3月14日
摘要: 一. Looper 1. 如何使用Looper? (1) 定义一个LooperThread. (2) 应用程序中使用LooperThread: 2. Looper.prepare()函数: 3. Looper的创建: 由此可见, 在调用prepare线程中,为该线程设置了一个Looper对象,Loo 阅读全文
posted @ 2015-03-14 15:59 Jackwen 阅读(354) 评论(0) 推荐(0) 编辑
摘要: RefBase提供了一个函数: extendObjectLifetime(int32_t mode); 用于在构造函数中设置mFlags的值. 以及定义了一个枚举: enum { OBJECT_LIFETIME_WEAK = 0x0001; // 二进制为B01 OBJECT_LIFETIME_F... 阅读全文
posted @ 2015-03-14 14:17 Jackwen 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 1. 通过wp创建sp的例子, 如: int main() { A* pA = new A(); wp wpA(pA); // 弱引用计数为1, 强引用计数为初始值0x1000000. sp spA = wpA.promote(); // 通过promote()得到一个sp. }2. promote... 阅读全文
posted @ 2015-03-14 13:41 Jackwen 阅读(285) 评论(0) 推荐(0) 编辑
  2015年3月13日
摘要: RefBase是Android中所有对象的始祖,类似于MFC中的CObject,Java中的Object对象。在Android中,RefBase结合sp(strong pointer)和wp(weak pointer),实现来一套通过引用计数的方法来控制对象生命周期的机制。sp和wp存在的目的就是... 阅读全文
posted @ 2015-03-13 14:53 Jackwen 阅读(433) 评论(0) 推荐(0) 编辑
  2015年3月6日
摘要: 1. zygote 本身是一个Native的应用程序,与驱动,内核无关,由init进程根据init.rc的配置项创建起来的。2. zygote 是创建java世界的盘古,创建java世界的步骤: (1) 创建AppRuntime对象,并调用它的start。此后的活动由AppRuntime控制。 (2... 阅读全文
posted @ 2015-03-06 14:22 Jackwen 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 1. init :是Android系统中用户空间的第一个进程。有以下两个重要职责:负责创建系统中的几个关键进程,如zygote.提供一个property service(属性服务)来管理Android系统的属性。2. init工作流程: (1) 解析两个配置文件:与系统相关的配置文件init.rc,... 阅读全文
posted @ 2015-03-06 10:01 Jackwen 阅读(223) 评论(0) 推荐(0) 编辑