安卓底层开发
安卓基础复习
系统移植
- 源码下载 http://source.android.com/source/downloading.html
- 查看目录结构 androidL lichee android的文件系统 Linux kernel
- 配置
- ~/fspad-733/lichee $./build.sh config (第一次须执行)
- AndroidL: source build/envsetup.sh:编译环境变量
- lunch:选配
- extract-bsp:清除变量
- make :编译
- make snod:编译节点
- make bootimages:编译镜像
- pack:打包
安卓的框架结构
- 应用层:包含安卓的应用
- 框架层:为上层提供接口和一些服务,管理程序运行的生命周期。
- 库层:屏蔽底层细节,为上层提供统一的接口
- JVM运行的是.class文件,dvm运行的是.dex文件
- JVM是基于栈,dvm是基于寄存器。dvm运行速度快,效率高
- 安卓程序运行在进程,示例之间相互独立。
- HAL层:硬件抽象层
- Jni访问代理人函数:hw_get_module();
- 内核层:kernel内核,操作系统用来管理文件,内存,进程、网络和设备。
- 镜像的组成:
- BootLoader: uboot-resource.fex
- boot: kernel-ramdisk boot.img
- system : system.img
- 系统烧写:
- 启动cmd,进入fastboot目录下
- 烧写BootLoader: #fastboot.exe flash bootloader boot-resource.fex
- 烧写boot.img: fastboot.exe flash boot boot.img
- 烧写system.img: fastboot.exe flash system system.img
- 重启:fastboot reboot
- 导出交叉编译工具链
- 当前终端: export PATH=$PATH:/home/linux/external-toolchain/bin
- 当前用户: vi .bashrc 添加:export PATH=$PATH:/home/linux/external-toolchain/bin
- 所有用户 sudo vi /etc/environment 添加:/home/linux/externl-toolchain/bin
转载于:https://www.cnblogs.com/endless-loop/p/6481024.html