android 进程间通信
文章平均质量分 94
android 底层基于linux系统,默认可以使用linux支持的所有进程间通信,本专栏从linux进程间通信开始讲解,并附带实例,重点讲解android使用最频繁的binder方式。从如何使用,如何调试,一步步细抠实现原理。
码龙1234
从事过嵌入式开发,也做过Linux字符设备驱动,还甚至写过Android应用程序,被逼无奈下还从事过前端ext开发。回首往事,什么都没留下,学过东西太多很杂,以至于连Java asm动态生成类都接触过,目前从事Android系统稳定性工作。所以在此想编辑些博客,将自己的学习心得记录在此,分享给大家,热烈欢迎大家拍砖。
展开
-
Android 进程间通信之binder - 实战
我们从binder由来开始说起,说说Android在binder的规范写法和非规范的写法;应文章标题,通过实战代码讲述binder传输内容的组织形式。分别用java和c++两种语言实现binder通信;分析本地binder和远程binder;实现一个实名binder。原创 2021-02-21 15:45:34 · 2704 阅读 · 6 评论 -
Android进程间通信之binder - debug transaction
Android进程间通信之binder - 实战Android进程间通信之binder - 几个重要数字Android进程间通信之binder - 可能导致的异常Android进程间通信之binder - 重要工具aidlAndroid进程间通信之binder - 上层协议IPCThreadStateAndroid进程间通信之binder - 工具类Parcelandroid使用binder做进程间通信方式;同时提供aidl和hal工具,使得app开发相对与进程间通信是透明的;只需要了解aidl的原创 2022-06-04 21:19:42 · 789 阅读 · 0 评论 -
Android进程间通信之binder - 重要工具aidl
本文详细介绍了aidl调用执行,编译aidl代码的逻辑,以及生成代码的逻辑分析。原创 2022-10-05 20:12:42 · 1619 阅读 · 0 评论 -
Android进程间通信之binder - 上层协议IPCThreadState
这一篇文章比较偏理论,具体的实现细节需要结合binder驱动去分析,本文只从用户空间的角度去展示了代码逻辑,驱动层的实现需要将整个上层分析完之后,进入驱动,才会游刃有余。原创 2022-10-23 21:54:44 · 858 阅读 · 1 评论 -
Android进程间通信之binder - debug transaction
目录概述编写测试用例dsaAndroid进程间通信之binder - 实战Android进程间通信之binder - 几个重要数字Android进程间通信之binder - 可能导致的异常Android进程间通信之binder - 重要工具aidlAndroid进程间通信之binder - 上层协议IPCThreadStateAndroid进程间通信之binder - 工具类Parcel概述编写测试用例debug信息在没有出现binderfs文件系统以前原创 2022-04-16 19:02:19 · 2370 阅读 · 0 评论 -
Android进程间通信之binder - 可能导致的异常
在平常程序运行过程中,可能碰到最多跟binder相关的异常是RemoteException,但本文只分析跟binder机制相关的异常,而RemoteException是server端逻辑导致的其它异常在client端的表现。跟binder机制相关的异常有:android.app.RemoteServiceException: can't deliver broadcast,JavaBinder: !!! FAILED BINDER TRANSACTION !!!,TransactionTooLargeEx原创 2021-02-26 00:11:31 · 11310 阅读 · 12 评论 -
Android进程间通信之binder - 几个重要数字
本文Android代码来源androidxref.com的Android11版本。从binder环境初始化开始,讲述这几个在binder中需要掌握的数字。首先我们思考这么几个问题;1,binder环境是什么时候初始化的?2,这些数字是如何被设置的?3,binder传输malloc内存是谁的内存?4,binder线程池线程是如何增长的?5,为什么zygote没有初始化binder?6,ams启动进程,跟zygote通信方式为什么选用socket?原创 2021-02-24 00:54:51 · 3538 阅读 · 3 评论 -
Android 进程间通信之管道 - pipe
本文是android进程间通信专栏中的管道(pipe)部分,管道基于pipefs文件系统实现,通过实例了解管道进程间通信,因为是本专栏第一个实例,在本文中有配置编译的说明;大家可以想想为什么需要IPC通信;摘自man手册管道分为匿名管道合命令管道(指定一个文件),通过系统调用返回时创建两个fd,一个fd用了读,另一个fd用来写,只能在具有亲源关系的进程之间用来通信,可以设置read方式为block;原创 2020-05-26 19:40:21 · 1464 阅读 · 0 评论 -
Android 进程间通信之信号量 - semaphore
本文是android进程间通信专栏中的信号量(semaphore)部分,因为上一篇管道文章详细说明了实例代码的测试环境,从本篇开始按正常顺序讲解,从简介到实例,再到Android中使用场景的讲解;详细介绍具体的使用场景。原创 2020-05-28 19:28:09 · 873 阅读 · 0 评论 -
android 进程间通信之信号--signal
目录信号-signal信号-实例android使用信号的场景信号原理概述信号-signallinux中信号用来作进程间通信,处理信号的进程需要注册关心的信号,当其它进程给自己发送信号时,注册的信号处理函数会被执行;在此预设3个问题;1:信号是如何发送的?2:信号是在什么时间节点上执行的?(即执行时机,处理方式)3:信号被项目需求导致在不同场景注册,信号是怎么执行的?(即同一个信号被多次注册处理函数,各个大公司如何实现native crash检测sdk)系统中支持信号,原创 2021-02-21 09:08:53 · 964 阅读 · 4 评论