csdn在线学习课程,课程咨询答疑和新课信息:QQ交流群:422901085进行课程讨论
Android Framework实战开发视频–跨进程通信之课程介绍
1 学习背景
** hi,各位学员大家好!大概有一个月没有给大家更新blog和视频了,今天开始我将给大家开始讲解android Framework实战开发的跨进程通信专题。跨进程通信相信大家也再熟悉不过了,但是可能缺乏对android系统跨进程通信系统性了解和灵活的使用,比如很多学员就反馈在学习android framework的实战开发1部分时候就发现有一些地方代码看起来比较吃力,比如一些跨进程通信部分,确实系统里面的跨进程通信的代码,可不是我们app一样使用两个Service的java文件就可以顺利进行跨进程通信,代码也比较简单易懂,但framework层面源码分析时候可是完全不一样,系统源码中可能即存在多种的跨进程通信方式,比如socket,binder,而且很有可能这些跨进程通信不仅仅是java代码对java代码进行,很有可能是java和native的C++代码进行跨进程通信,所以接下来就会手把手带大家系统学习android系统的跨进程通信的知识。相信只要精心认真跟着学习完这个跨进程通信专题的知识,后面系统中分析任何代码带有跨进程部分都是可以非常顺利。
2 学习目标
首先来看一下课程的大纲:
跨进程通信专题主要分为2个部分:
1、第一部分将先讲解socket通信编程,相信大家可能在平时开发过程中或多或少都有听说过socket,socket跨进程通信方式不是android特有的,属于直接继承与linux上的,其实在做网络聊天通信时候就应该有接触过,对其实大概的原理和流程就是和网络socket通信一样,但因为网络通信需要经过ip网卡等,一般用于跨终端比较合适,我们是一个系统只是跨进程而已,完全没必要使用跨终端那种ip方式,所以针对这种跨进程情况,socket有一种专门的模式用于系统内跨进程通信。
socket跨进程通信方式在android系统中也应用非常广泛,比如上一期视频里面讲解的:经典的Zygote与SystemServer进行通信来fork出各种新的进程,socket部分在android系统跨进程使用频率仅仅低于Binder通信
重要程度:必须熟练掌握
2、第二部分要讲解是Android最重要最常见的跨进程通信方式 Binder,这个Binder方式的跨进程通信
属于Android特有的,这个是Android利用底层写好的binder驱动再加上层的一系列数据封装传递等实现的一套跨进程通信方式,属于android与linux区别最核心的部分之一。Android正因为建立在Binder基础之上才让Android app开发者甚至可以不用关心“进程”概念,只需要关注系统提供的四大组件既可以,因为理论上如果只是Android app开发平常使用到的四大组件就可以实现各种需求,可以不需要引入额外进程的概念,所以可能许多Android app的开发者对Android上的各种进程等通信了解不是那么深入。这个也是非常正常。因为涉及Android app与外部交付的都有对应的Intent或对应的系统API接口,可以黑盒认为这些都是系统API调用既可以,但是作为一个android framework工程师,对于Android系统进程的概念及Binder通信等就需要非常非常的清楚,你要可以非常准确定位出代码的执行进程,你才可能对framework的修改需求和问题才可能定位准确,分析Android系统源码等时候到处都是Binder的跨进程通信调用。所以掌握和精通Android的Binder跨进程通信方式属于合格android framework的标配。
重要程度:必须熟练掌握