ams启动activity过程,Binder通信,IPC机制,service内部流程,事件在activity流转分发

看源码,顺带说一句android代码颜色,字体大小,有关主题的设置http://color-themes.com/,现成的Fie -->import setting

流程图,大概就是这样的


详细参考链接  http://www.2cto.com/kf/201609/550439.html

Android进程间通信(IPC)机制Binder


基础篇

Android深入浅出之Binder机制

Android进程间通信(IPC)机制Binder简要介绍和学习计划

Android深入浅出之Binder机制一文从情景出发,深入地介绍了Binder在用户空间的三个组件Client、Server和Service Manager的相互关系,Android Binder设计与实现一文则是详细地介绍了内核空间的Binder驱动程序的数据结构和设计原理。非常感谢这两位作者给我们带来这么好的Binder学习资料。总结一下,Android系统Binder机制中的四个组件Client、Server、Service Manager和Binder驱动程序的关系如上图所示:

1. Client、Server和Service Manager实现在用户空间中,Binder驱动程序实现在内核空间中
2. Binder驱动程序和Service Manager在Android平台中已经实现,开发者只需要在用户空间实现自己的Client和Server
3. Binder驱动程序提供设备文件/dev/binder与用户空间交互,Client、Server和Service Manager通过open和ioctl文件操作函数与Binder驱动程序进行通信
4. Client和Server之间的进程间通信通过Binder驱动程序间接实现
5. Service Manager是一个守护进程,用来管理Server,并向Client提供查询Server接口的能力

通过下面四个情景来分析Binder源代码,以进一步理解Binder机制:

        1. Service Manager是如何成为一个守护进程的?即Service Manager是如何告知Binder驱动程序它是Binder机制的上下文管理者。

        2. Server和Client是如何获得Service Manager接口的?即defaultServiceManager接口是如何实现的。

        3. Server是如何把自己的服务启动起来的?Service Manager在Server启动的过程中是如何为Server提供服务的?即IServiceManager::addService接口是如何实现的。

        4  Service Manager是如何为Client提供服务的?即IServiceManager::getService接口是如何实现的。

      我们在Android系统开发应用程序时,都是基于Java语言的,因此,我们会在最后一篇文章中,详细介绍Android系统进程间通信Binder机制在应用程序框架层的Java接口实现:

        5. Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析。


启动一个服务至少需要在2个进程之间进行跨进程通信,
1,进程A向AMS发送一个请求
2,AMS处理之后,回到进程A所启动的服务

可以参考链接

Service 启动流程源码解析


          Android中事件传递按照从上到下再从下到上进行层级传递,事件处理从Activity开始到ViewGroup再到View,如果View没有消费事件会再次从View到ViewGroup再到Activity最后事件被抛出消费掉。流转的流程图如下:

dispatchTouchEvent和TouchEvnet return false的 时候,事件都会回传给父控件的onTouchEvent处理

onInterceptTouchEvent默认为false不进行事件拦截,OnDispatchTouchEvnet默认为true进行事件分发,onTouchEvent需要根据具体的View是否设置了listener及具体View的实现进行区分是否为true

Activity的dispatchTouchEvent不管返回true或false都会进行分发

如果事件在具体的View或者ViewGroup的onTouchEvent返回true,则表明事件被消费,事件传递机制就会结束

例子可以参考

Android事件分发底层原理

猜你喜欢

转载自blog.csdn.net/ation_work/article/details/64122949
今日推荐