binder系列-C到JAVA层

Binder系列文章意在给需要的读者加深对binder系统的理解,虽然很多读者对JAVA层的binder理解深刻,但是对于整个binder还是不知所以然,因此笔者写了这一系列binder文章,希望能够帮助到对binder理解还不够深入的读者

准备

关于语言

由于源码都是c和cpp的代码,因此,你必须先学习 c/c++

学到什么程度?

其实不用太深入

对于c/c++你必须要先搞清楚什么是指针,优先级最高,没搞清楚之前建议不要着急去阅读源码

笔者写了两篇文章,可以作为预习 理解计算机与内存,指针,如果你感兴趣的话

知道了什么是指针,对于c/c++的语法学个大概就行,学习一些语言特性即可,其他不常用的地方,可以在阅读源码的过程中去学习

关于源码编译

很遗憾,笔者的环境搭了好多天还是问题频出,因此没法给读者做代码测试上的保证,当然笔者还是会继续搭建源码环境

如果你想搭建环境并且自己编译的话,有几点建议

  1. 先去下载源码,最好科学上网,即使有镜像,问题也不免会出现
  2. 最好使用ubuntu,不建议把自己的电脑系统装成ubuntu,你可以用windows然后用虚拟机安装ubuntu,因为源码的阅读,还是windows中的 Source Insight
  3. 下载源码的过程中,时间不要浪费,因为源码的下载和编译耗费时间特别多
  4. 关于编译,有篇文章建议阅读 理解 Android Build 系统
  5. 另外,编译是一个体力活,过程会遇到各种问题,希望你顺利
  6. ubuntu下的编译工作,推荐老罗的博客 在Ubuntu上下载、编译和安装Android最新源代码
关于源码的下载

如果读者实在不想下载源码,你可以在线阅读 androidxref.com

内核的源码请移步 linux_android_source

关于源码阅读工具

首推当然是 Source Insight,可惜只有windows平台可用

如果你的系统是mac os或者ubuntu,笔者建议使用 vscode ,安装一些插件也可以很顺利地进行源码阅读,虽然会有一些不方便之处

vscode 插件推荐:

  • c/c++
  • chinese
  • Find-Jump
  • Intellij IDEA Keybindings
  • java

安装完这些插件,基本的源码阅读是没问题了

文章系列

按照顺序阅读即可

binder介绍

binder-概念以及底层流程

binder-编写应用层 C 代码

binder-驱动数据结构

binder-服务的注册流程

binder-服务获取及使用过程

binder-transcation_stack机制

binder-使用C++编写binder系统

binder-c++内部机制

binder-JAVA层代码编写

binder-JAVA层机制

binder-JAVA层使用AIDL

binder总结

binder复习测试

如果博客描述有误,可提 issues

建议

一定要去阅读源码,不然和咸鱼有什么区别?

不要觉得看看博客,知道流程了,你就觉得你懂了

too young too simple

最后, Read the fucking source code

转载于:https://my.oschina.net/u/914911/blog/2995779

你可能感兴趣的:(java,c/c++,移动开发)