(1)安卓底层驱动移植

安卓底层开发

安卓基础复习

系统移植

  • 源码下载 http://source.android.com/source/downloading.html
  • 查看目录结构 androidL lichee android的文件系统 Linux kernel
  • 配置
    1. ~/fspad-733/lichee $./build.sh config (第一次须执行)
    2. AndroidL: source build/envsetup.sh:编译环境变量
    3. lunch:选配
    4. extract-bsp:清除变量
    5. make :编译
    6. make snod:编译节点
    7. make bootimages:编译镜像
    8. pack:打包

安卓的框架结构

  • 应用层:包含安卓的应用
  • 框架层:为上层提供接口和一些服务,管理程序运行的生命周期。
  • 库层:屏蔽底层细节,为上层提供统一的接口
    • JVM与DVM的区别:
    1. JVM运行的是.class文件,dvm运行的是.dex文件
    2. JVM是基于栈,dvm是基于寄存器。dvm运行速度快,效率高
    3. 安卓程序运行在进程,示例之间相互独立。
  • HAL层:硬件抽象层
    1. Jni访问代理人函数:hw_get_module();
  • 内核层:kernel内核,操作系统用来管理文件,内存,进程、网络和设备。
  • 镜像的组成:
    1. BootLoader: uboot-resource.fex
    2. boot: kernel-ramdisk boot.img
    3. system : system.img
  • 系统烧写:
    1. 启动cmd,进入fastboot目录下
    2. 烧写BootLoader: #fastboot.exe flash bootloader boot-resource.fex
    3. 烧写boot.img: fastboot.exe flash boot boot.img
    4. 烧写system.img: fastboot.exe flash system system.img
    5. 重启:fastboot reboot
  • 导出交叉编译工具链
    1. 当前终端: export PATH=$PATH:/home/linux/external-toolchain/bin
    2. 当前用户: vi .bashrc 添加:export PATH=$PATH:/home/linux/external-toolchain/bin
    3. 所有用户 sudo vi /etc/environment 添加:/home/linux/externl-toolchain/bin
posted on 2017-02-28 21:26  endless_loop  阅读(1348)  评论(0编辑  收藏  举报