学好Android的基石

以前一直搞BMP平台,现在Android实在太热了,由于项目的需求,现在也开始转到Android平台上了。个人认为,不管哪个平台,要学好他,都必须要搭好基石,才能轻松攀爬。而且不同平台的基石是不一样的,比如BMP平台的重要基石,如需要理解COM组件模型,C,MVC等

 

而对于Android平台,个人认为以下基石是非常重要的,对于日后的轻松攀爬奠定基础。 当然了,因为笔者才刚刚接触Android,所以以下理解可能有所错误,欢迎指正。

 

注: 以下针对学习android平台,而不针对仅仅使用android平台开发APK应用的,对于后者,基石基本上就少的多了

 

编程语言基石

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: Optional: 除非你想学习Linux Kernel, Driver等Kernel Space的内容

GNU Make: Optional: 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代码空间的切换

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值