
android 进程间通信
文章平均质量分 95
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 · 2907 阅读 · 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 · 1235 阅读 · 0 评论 -
Android进程间通信之binder - 重要工具aidl
本文详细介绍了aidl调用执行,编译aidl代码的逻辑,以及生成代码的逻辑分析。原创 2022-10-05 20:12:42 · 1685 阅读 · 0 评论 -
Android进程间通信之binder - 上层协议IPCThreadState
这一篇文章比较偏理论,具体的实现细节需要结合binder驱动去分析,本文只从用户空间的角度去展示了代码逻辑,驱动层的实现需要将整个上层分析完之后,进入驱动,才会游刃有余。原创 2022-10-23 21:54:44 · 905 阅读 · 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 · 2432 阅读 · 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 · 13276 阅读 · 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 · 3708 阅读 · 3 评论 -
Android 进程间通信之管道 - pipe
本文是android进程间通信专栏中的管道(pipe)部分,管道基于pipefs文件系统实现,通过实例了解管道进程间通信,因为是本专栏第一个实例,在本文中有配置编译的说明;大家可以想想为什么需要IPC通信;摘自man手册管道分为匿名管道合命令管道(指定一个文件),通过系统调用返回时创建两个fd,一个fd用了读,另一个fd用来写,只能在具有亲源关系的进程之间用来通信,可以设置read方式为block;原创 2020-05-26 19:40:21 · 1586 阅读 · 0 评论 -
Android 进程间通信之信号量 - semaphore
本文是android进程间通信专栏中的信号量(semaphore)部分,因为上一篇管道文章详细说明了实例代码的测试环境,从本篇开始按正常顺序讲解,从简介到实例,再到Android中使用场景的讲解;详细介绍具体的使用场景。原创 2020-05-28 19:28:09 · 931 阅读 · 0 评论 -
Android 进程间通信之信号-Signal
Linux中信号用来作进程间通信和异常处理,部分信号用于Kernel侧,除了signal kill信号以为,处理信号的进程需要注册关心的信号,当其它进程给自己发送信号时,注册的信号处理函数会被执行;本文章中贯穿的几个问题;信号是如何发送的?如何监控信号的发送者和消费者?如何定位到信号处理函数的代码行?信号处理函数的执行时机?同一个信号被注册多次时,程序如何处理?Android时如何处理的?在Android平台上不同信号的使用场景都有哪些?同一个信号的处理函数能被并发执行吗?原创 2021-02-21 09:08:53 · 1103 阅读 · 7 评论