
Android
上一篇文章我们说到了startActivityUnchecked这个方法,这篇文章就接着这个方法开始说。这个方法的长度看上去可能还能接受,但是和长度相比,在我看来可能是AMS最复杂的一个方法了,从启动模式一直到开启新进程的入口,都是在这个方法中设计到。当然我们还是按照历史惯例,把代码分段来说,下面就
对于android的开发者来说,AMS的重要性不言而喻,大多数人可能接触android的第一个程序就是从怎么写一个Activity开始的,所以对于了解AMS的源码是非常重要的。虽然AMS是以Activity来命令的,但是四大组件其实都是通过AMS来触发的,所以了解AMS不仅对于开发Activity是
之前的六篇文章,从binder驱动讲起,然后详细分析了Service manager以及一般进程间通信的过程,通过这些文章,大致把binder的主要内容都讲到了,对于binder中最重要的部分,也都做了分析,至此binder的内容基本就差不多了。这篇文章准备从总体上在总结一下binder的流程,因为
前面几篇文章从service manager的启动,到往service manager里面添加一个组件,做了一个详细的分析。这篇文章来分析一下一个进程如果要通过service manager中获取这个组件,整个流程是怎么样的。在android中,我们如果开发2个不同的app,需要通信的话,一般会采用
在Binder系列文章中的第三篇,主要是讨论了addService的流程,一直讲到了talkWithDriver方法,在talkWithDriver中调用了ioctl(mProcess->mDriverFD, BINDER_WRITE_READ, &bwr)这个方法,之前也讲过了,这个
前两篇Binder的文章,分析了service manager的启动和获取service manager的代理对象,这篇文章开始讲怎么把一个服务注册到service manager里面,也就是addService方法的流程。在开始讲addService之前,我们先简单讨论下,所谓的服务是个什么?大家都
在Binde的第一篇文章里面,讲到了service manager启动后,他的binder线程阻塞在等待队列中,要等到有新任务把他唤醒。我们知道一些常用的服务比如AMS,PMS等都是通过addService放到注册到service manager中的,但是在调用addService之前,我们怎么获得