Binder学习笔记(一)

本文是作者学习Binder的心路历程记录,通过Java和C++代码阐述Binder在Android进程间通信中的作用。从创建Service的基本步骤出发,探讨了如何在不同进程中使用Binder,并介绍了从Java层进入native层的初步过程,为深入理解Binder机制打下基础。
摘要由CSDN通过智能技术生成

网上看了很多关于binder的文章,但我还是想把自己的心路历程记录下来,有些是跟着别人的脚步领略险峻风景,有些则是自己只身探入代码深处打捞出的收获。我不确定是否全部融会贯通,更担心一两个月后会完全不记得来时的路。最好的验证和留存的方法是把他们写成博文,几个月后回头再来读,看是否还能读得明白。如果可以,说明我两个担心已不复存在;如果又回到云里雾里,刚好可以带着新问题继续探索。文章很多地方会引用Android源码,我的源码版本是6.0.1_r11。

当静态代码走查遭遇多态、依赖外部数据时,常常会陷入困境,眼前多个岔路口,不知该走哪条路。我就顺道把gdb也重新捡起来,动态调一把就知道正确答案了。我尽量详细地记录下使用步骤,以便未来可以很方便地重新走入这条路。

我觉得读代码也应该是“不求甚解”的,不要一竿子插到底,先在一个层面上把问题分析清楚,再逐步深入到下一个层面,逐层攻破。其实跟写代码很像,解决复杂问题的两大利器——分层、分模块。当然最终是要达到山高月小,水落石出的境界。文章会一点一点放出,发出的文章可能还会不断回过头来再修改,希望最终能够打磨出一篇精致小品,以后就再也不用追究Binder了。

binder的使用(Java代码)

Binder是Android系统为进程间通信提供的一种方式,在创建Service的时候会经常用到。创建Service的基本步骤如下:

final Intent intent = new Intent(this, BindMyService.class);

private MyServiceConnection conn = new MySe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值