Android深度探索笔记-第一章
Dalvik虚拟机是Android应用程序运行的平台,Android应用程序都是Dalvik中的实例,不过目前自Android 4.4以后,Google将用ART代替Dalvik。
Android系统移植主要是Linux内核移植,而Android内核基本上都是Linux 2.6或3.0版本,移植Android时主要看Linux版本。在移植Android系统时应该优先寻找驱动和HAL的源代码,因为都是使用Linux内核,因此不同Android系统的驱动源代码都是大同小异的,如果能得到需要移植的源代码,在此基础上修改,将大大减少工作量。
在终端查询Linux内核版本时使用:uname –a 和 cat /proc/version都可以,他们本质是相同的。
Linux内核版本更新较快,然而不同版本开发方法步骤基本相同,对学习影响不大,但在开发时经常需要在新版本下重新编译源代码。
驱动的出现时为了降低耦合度,方便程序员对硬件的调用,避免程序员必须掌握通信协议和硬件相关知识,负责对硬件进行抽象。
驱动针对存储器和外设,而不针对cpu核。而Linux将存储器和外设分为3种:块设备,字符设备和网络设备,块设备和字符设备对用户而言都可通过open,read,close,write等函数访问,没有明显界限,而网络设备则不能通过这些文件系统的接口访问。
Module_init,module_exit只是指定装载/卸载函数的宏。