说了说Binder。再看看Looper,睡到床上想想,接下来分析什么呢?第一时间越入脑海的就是应用进程的启动过程了。Android相比IOS是开放的(不能说开源,因为还是有些源代码没有对外,比如每个厂商的驱动等等),可以下载到基本上所有的源码,而且也提供了非常好的framework框架,现在的Android App到处都是,这些也是直接和用户打交道的,那么我们是否了解一个应用进程的启动过程呢?在之前的面试和培训中,我从身旁同事中了解的情况就是,相当大部分人都对我们应用进程的启…

2017年12月24日 0条评论 1点热度 阅读全文

     所有的进程都基于消息驱动的,进程的主线程在一个无限循环中不断的处理消息,直到进程退出,Android也是这样的实现,当Process进程启动时,framework会为当前启动的进程创建好Looper循环,Looper就在主线程的MessageQueue上不断的取消息去处理,没有消息时就进入休眠。对于下老罗的书和8.0的Android源码,Looper循环的源码基本上没有多大改变,也是因为这个模型和Binder进程间通信机制一样,已经非常成熟了。这节我们就来看一下当前进程的Lo…

2017年12月17日 0条评论 4点热度 阅读全文

     没事了就看看老罗的书,感觉老罗是走过来的人,说出来的话都是硬道理,我们开始分析Android系统源码时确实感觉很慢,但是随着我们脚步的前进,有了大量的沉淀之后,大家自己就会感觉我们的功力越来越厚,前进的步伐也越来越快。      前面两篇Binder进程间通信的分析完了之后,再对比下老罗的博客,感觉差距还是十万八千里啊!!!还有很多地方没说清楚,所以这篇我们继续来看一下Binder进程间通信中的Server启动过程。我们的目标就是Activity…

2017年12月9日 0条评论 1点热度 阅读全文

     今天下午去下棋,好久没下了,都没啥感觉了,不过还是一直胜,因为对手还不够我的等级,哈哈哈哈。周末在家,陪老爸老妈吃午饭,聊聊天,感觉这就是最实在的生活,可惜老婆和臭蛋不在身边,一家人都一起出去逛逛就好了。行了,不多说了,进入我们的正题。      上节我们分析了Binder通信中从Application开始,是如何通过JNI进入到Native层,最后我们来的Kernal的门前,IPCThreadState、ProcessState两个Binder…

2017年12月3日 0条评论 3点热度 阅读全文

     开始我们的沉淀之路,老罗的书中第二章讲的是Android HAL层的知识,而且直接自己实现了一个虚拟的freg驱动程序,后面的几节是分别从native、java层如何访问这个虚拟的驱动程序接口,我这里没有这样的环境,所以就不分析这节了,第三章的智能指针我对比8.0系统源码和老罗的书,基本修改很小,大家如果要学习的话,就直接看老罗的书吧,这也反映出一个问题,就是我们学到的知识肯定是有用的,老罗在自己博客下面回答博友的提问时也一直在强调这点,我们学过的、学会的知识不可能浪费,没有…

2017年11月24日 0条评论 4点热度 阅读全文

     好久没写博客了,在这里上班基本都加班,而且公司上不了外网,手机都不能带进办公室,所以就间断了。昨天中午没事翻老罗的CSDN博客,忽然发现老罗的《Android系统源代码情景分析 [罗升阳著]》一书的PDF电子版出来了,真是惊喜啊!!搞开发这么久,一直对老罗的博客情有独钟,确实写的非常好,讲的非常细致!最好的学习方法是什么?Read The Fuck Source Code!!赶紧下载下来,没事了就看看,忽然今天又有个想法,将老罗的书按照现在Android 8.0的源码走一遍,…

2017年11月12日 0条评论 4点热度 阅读全文

     搞客户端开发,时间也有点了,但是每次想起来,总感觉自己掌握的东西零零散散,没有一点集在的感觉,应用层的懂,framework的也懂,框架啥的了解一点,分层的思想也有一些,JVM的原理啊,内存分配和管理啊,运行机制啊啥的也知道一点,每次下班或者没事了,就在考虑,自己应该有一个主攻方向,往这个方向集中发展一下,首选的几个目标应该是非常清楚的,我们要掌握android,那么关于android的View机制、动画原理这些都是必须要掌握的,所以呢,自己想在这几个方面花些时间,好好研究一…

2016年10月29日 0条评论 5点热度 阅读全文