编程语言基石
Java:这是Android Application和Framework的语言支柱 C:Native 部分代码使用C语言实现,包括JNI的Native Code C++:Native很多代码使用C++实现 JNI:包括Java Call Native Code 和 Native Call Java Code。 Android中经常出现Java 和 Native 代码空间的切换 Assemble:除非你想学习Linux Kernel, Driver等Kernel Space的内容 GNU Make:Android设计了很好的Make 系统,基本了解一下Android的Make系统即可,依样画瓢。 PerL and other Script:Optional
通用知识面基石
XML:必要 OS Basic Concept:such as Process, Thread, RPC, IPC, etc Linux OS/Programming Basic Concept:Such as Linux File/IPC/Thread/etc Mechanism and API:Android源码中大量调用了Linux API。 Design Pattern: MVC/Factory Pattern/Observer Pattern/Etc: 必要: 对于理解Framework中很多组件的设计和使用有帮助 Data Base: SQL Query Language: 必要
Android特有重要机制基石
BinderIPC:包括Java和Native层,只有掌握了BinderIPC,才能在阅读代码时,当发生RPC调用时,能够跨进程阅读真正调用到的代码 Looper/Handler/Etc:因为Android中封装了Java的Thread机制,所以,只有掌握Android中新的Thread机制,才能在阅读代码中,清楚的了解当前代码运行的线程。
专业领域基石
如网络,图像,安全等:Optional: 这部分和Android本身没有关系,任何平台上涉及专业领域的内容,肯定必须要求阅读者掌握相关领域的知识才能阅读。所以,这部分仅仅针对有这方面需要的人。
阅读代码时时刻掌握Context(运行上下文)
由于Android中涉及了线程,进程,以及不同的代码空间。所以,在阅读代码时,应该时刻关注以下几点: 1. 时刻关注当前代码运行的进程,线程(MainUI 线程,Binder线程,或者其他线程)以及代码空间(Java,Native) 2. 时刻关注进程,线程,代码空间的边界, 如线程的创建/终止/切换, 进程的创建/终止/切换,Java代码与Native代码空间的切换
(责任编辑:捉蛋网-刷机)
|