第一章

第一章 Android系统与嵌入式开发

从系统移植和驱动开发者的角度来讲,Android底层的开发移植和传统嵌入式系统开发保持了很多的一致,所以要从事Android系统的开发必须了解嵌入式开发的基础知识。本章就嵌入式和Android系统进行了简单的介绍。

Android系统的架构分为四层:

第一层,Linux内核:主要包括程序以及管理内存、进程、电源等资源的程序

第二层,C/C++代码库:主要包括Linux.so文件以及嵌入到APK程序中的NDK代码

第三层,Android SDK API:直接面向应用程序的JAVA API

第四层,应用程序:直接面向用户的应用程序(APK程序)

Android移植可分为两部分:应用移植和驱动移植(除了移植CPU架构外,最重要的就是移植Linux驱动);Android不能像其他Linux系统一样由应用程序直接访问驱动,而是中间隔了一层HAL,可以讲Linux驱动的业务逻辑放于其中。所以如果为了增加新的驱动或者修改原来的驱动代码,HAL需要有所调整,那么Android一致的主要工作有以下:移植Linux驱动;移植HAL

查看Linux内核版本号有以下两种方法:uname -acat /proc/version

为了降低软件与硬件之间的耦合度,需要把硬件抽象,驱动即为直接和硬件交互的一类程序,负责对硬件进行抽象。驱动针对的对象是存储器和外设,Linux将存储器和外设分为三大类:字符设备;块设备;网络设备。任何一个驱动程序都有一个装载函数和卸载函数,分别是通过module_initmodule_exit宏指定的。

原文地址:https://www.cnblogs.com/BJBLOG/p/5439096.html