- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 java虚拟机知识点简要梳理
首先来看一个java虚拟机的思维导图,下面每个知识点都可以进行展开,本篇只做简要梳理 上图是从类的整个生命来梳理的,包括类的加载、验证、准备、解析、初始化、使用、卸载,将一一做简要介绍 一、加载 1.加载过程 a.通过类的全限定名获取类的二进制字节流,其中二进制字节流不一定是java语言编译的,只要是最终形成符合java字节流格式即可,比如jruby、jython、groovy
2017-03-14 22:35:25 1705
原创 Handler、Looper和MessageQueue的关系
Handler初始化之前,首先需要初始化Looper,主线程中在进程启动,调用ActivityThread.main方法的时候,已经调用了Looper.prepareMainLooper初始化Looper了,而普通线程则采用Looper.prepare方法初始化,不管哪种方式,都是创建了一个Looper实例,保存到ThreadLocal这个全局静态变量中,Handler在初始化的时候,从Threa
2017-03-12 08:22:29 451
原创 Binder再探(4)
总结 上述的binder通信过程涉及四方,binder驱动、Service Manager、AMS(服务端)、Activity(客户端) binder驱动 binder驱动作为动态内核模块,通过binder_init函数,将自己注册成为misc设备,创建/dev/binder节点,提供三个核心的函数binder_open、binder_mmap、binder_ioctl给用户空间调用
2017-03-04 17:51:41 411
原创 binder再探(3)
再来看客户端通过 ActivityManagerNative.getDefault().startActivity启动一个Activity, ActivityManagerNative.getDefault()方法 static public IActivityManager getDefault() { return gDefault.get(); } private
2017-03-04 17:49:49 511
原创 binder再探(2)
前面的Activity的启动流程(http://blog.csdn.net/newhope1106/article/details/53355189),已经知道了Activity的启动将会调用下面代码: try { intent.migrateExtraStreamToClipData(); intent.prepareToLeaveProcess();
2017-03-04 17:41:54 504
原创 binder再探(1)
前面文章只是对binder的几个核心部分做了简要介绍,本文将按照启动顺序或调用顺序对binder作详细的介绍。 一、binder驱动初始化 binder驱动作为内核模块,首先被加载进来,做初始化操作,首先binder驱动把自己注册成为misc设备,文件目录会创建/dev/binder节点,然后提供了操作binder设备方法,这里初始化调用是通过binder_init函数调用的。 static
2017-03-04 17:29:11 564
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人