Android 精品资源 (四)【转】2018年4月19日 星期四

 知乎原文:大牛们是怎么阅读 Android 系统源码的?

巨人的肩膀

  • AOSP项目官方: source.android.com/sour
    • 这个一定要先读. 项目介绍, 代码下载, 环境搭建, 刷机方法, Eclipse配置都在这里. 这是一切的基础.
  • Android官方Training: developer.android.com/t
    • 这个其实是给App开发者看的. 但是里面也有不少关于系统机制的介绍, 值得细读.
  • 老罗的Android之旅: blog.csdn.net/luoshengy
    • 此老罗非彼老罗. 罗升阳老师的博客非常有营养, 基本可以作为指引你开始阅读AOSP源码的教程. 你可以按照博客的时间顺序一篇篇挑需要的看.但这个系列的博客有些问题:
      • 早期的博客是基于旧版本的Android;
      • 大量的代码流程追踪. 读文章时你一定要清楚你在看的东西在整个系统处于什么样的位置.
  • Innost的专栏: blog.csdn.net/innost
    • 邓凡平老师也是为Android大牛, 博客同样很有营养. 但是不像罗升阳老师的那么系统. 更多的是一些技术点的深入探讨.
  • Android Issues: code.google.com/p/andro
    • Android官方Issue列表. 我在开发过程中发现过一些奇怪的bug, 最后发现这里基本都有记录. 当然你可以提一些新的, 有没有人改就是另外一回事了.
  • Google: google.com
    • 一定要能流畅的使用这个工具. 大量的相关知识是没有人系统的总结的, 你需要自己搞定.

其它

  • 代码组织
    • AOSP的编译单元不是和git项目一一对应的, 而是和Android.mk文件一一对应的. 善用mmm命令进行模块编译将节省你大量的时间.
  • Binder
    • 这是Android最基础的进程间通讯. 在Application和System services之间大量使用. 你不仅要知道AIDL如何使用, 也要知道如何手写Binder接口. 这对你理解Android的Application和System services如何交互有非常重要的作用. Binder如何实现的倒不必着急看.
  • HAL
    • 除非你对硬件特别感兴趣或者想去方案公司上班, 否则别花太多时间在这一层.
  • CyanogenMod
    • 这是一个基于AOSP的第三方Rom. 从这个项目的wiki里你能学到很多AOSP官方没有告诉你的东西. 比如如何支持Nexus以外的设备.
  • DIA
    • 这是一个Linux下画UML的工具, 能够帮你梳理看过的代码.
  • XDA
  • 想到了再补充.
posted @ 2018-04-19 08:45  javakam  阅读(180)  评论(0)    收藏  举报