Android Binder
· ☕ 4 min read
一篇对 Android 主要的 IPC 机制(Binder) 的记录,理解自一份 RUB(https://en.wikipedia.org/wiki/Ruhr_University_Bochum)的文章
Android SDK 中的事件循环已经是一个老生常谈的问题了, 像 Handler
Looper
MessageQueue
这几个类也是被大家研究透彻了.
但是再回头看以前自己的分析, 总感觉差点什么, 不够透彻. 心里隐隐感觉自己没有把事情完全吃透, 于是今日又回顾 Android 中的事件循环机制, 注意到
MessageQueue
中获取下一条消息时会执行一个 native 调用 nativePollOnce
, 翻看 Android 系统源码发现有内容.
最近阅读《Android移动性能实战》看到手机QQ测试团队给出的一个案列 「Object Ouput Stream 4000 多次的写操作」,
其原因就是直接使用了 ObjectOutputStream
+ FileOutputStream
做对象的序列化到磁盘。印象中我们的项目中也有这样的代码
SerializeUtil#serializeObject
:
init
进程是 Android 系统中用户空间的第一个进程,进程号为 1。作为第一个进程,它被赋予了很多重要的职责,比如创建Zygote
进程和属性服务等。
init
进程由多个源文件共同组成,这些文件位于源码目录 system/core/init
中。