Android 底层开发概述(三)

1. Android 内核

Android SDK通过HAL间接访问Linux驱动(一般的Linux系统都是由应用程序直接访问驱动)。Android 并不能够使用从www.kernel.org下载的Linux内核,必须使用Google提供的网址下载可以供Android使用的Linux内核源代码。

 

2. QT和Android的区别

QT只是一个应用开发框架(C++实现);Android包含系统应用层、Java API层(framework)、库、HAL层、kernel。==》Android的集成度更高,分层更明显,移植更方便 ==》从移植的角度看,移植QT需要自己手动移植相关库,android不需要,另外Android比QT多了系统应用层和HAL层两个层。

嵌入式android源码架构:uboot+linux kernel+android(包含文件系统,虚拟机,UI)

嵌入式linux:                   uboot+linux kernel+文件系统+QT(UI)

 

3. 查看Android版本号

至少有两个地方可以从android源码中查看android的版本:

1>如果编译过的,则会有build.prop文件(find -name build.prop),从这个文件中可以看出版本。
2>如果未编译过,build/core/version_defaults.mk中 PLATFORM_SDK_VERSION := 4.2.2

 

4. 代码分布

app代码:packages/apps/
JAVA api:frameworks/base/core/java/android/hardware
JNI层:frameworks/base/core/jni

5. Android镜像boot.img

Android 将kernel、ramdisk(rootfs)、second stage(dtb、kernel.logd等)整体打包成一个boot.img文件,并将boot.img文件置于boot分区中,BootLoader启动时,会读取boot.img,将kernel、ramdisk、dtb等信息放置于固定的内存中,然后引导kernel启动。

 

 

你可能感兴趣的:(Android,android,嵌入式,底层开发)