android底层开发学习笔记三(Android系统代码下载、编译和烧写)

一、android源码获取方式
    1、google官网获取源码
    2、解决方案提供商
    3、硬件厂商
二、android源码目录结构(针对创客学院的安卓sdk分析)
        1、lichee是Linux内核源码
            linux-3.4 是完整的linux内核
            brandy存放uboot源码,用于启动内核
            out目录:存放内核镜像
                存放交叉编译工具链
            tool,整个android镜像

        2、androidM是android目录,包含以下目录

|– Makefile (全局Makefile文件,用来定义编译规则)
|– abi (应用程序二进制接口)
|– art (ART运行环境)
|– bionic (bionic C库)
|– bootable (启动引导相关代码)
|– build (存放系统编译规则及generic等基础开发包配置)
|– cts (Android兼容性测试套件标准)
|– dalvik (dalvik JAVA虚拟机)
|– developers (开发者目录)
|– development (应用程序开发相关)
|– device (设备相关配置)
|– docs (参考文档目录)
|– external (android使用的一些开源的模组)
|– frameworks (核心框架——java及C++语言)
|– hardware (部分厂家开源的硬解适配层HAL代码)
|– libcore (核心库相关文件)
|– libnativehelper (动态库,实现JNI库的基础)
|– ndk (NDK相关代码,帮助开发人员在应用程序中嵌入C/C++代码)
|– out (编译完成后的代码输出与此目录)
|– packages (应用程序包)
|– pdk (Plug Development Kit 的缩写,本地开发套件)
|– prebuilts (x86和arm架构下预编译的一些资源)
|– sdk (sdk及模拟器)
|– system (底层文件系统库、应用及组件——C语言)
|– tools (工具文件)
|– toolchain(工具链文件)
|– vendor (厂商定制代码)

转载目录说明,原文链接:https://blog.csdn.net/2401_84149570/article/details/138383116
            
三、android系统编译命令的详解
    kernel目录
        1、实现配置和编译的脚本:build.sh

        2、配置:./build.sh config

        3、编译: ./build.sh

         4、编译完成 输出output/bImage文件

    androidM目录
        1、配置&编译步骤
            1、执行 build/envsetup.sh:  source build/envsetup.sh
                build/envsetup.sh是脚本,作用是在当前终端中向环境变量添加下面的功能(导入环境变量)
            2、执行lunch    根据提示选20  选择产品的配置
            3、执行 extract-bsp    
                copy编译好的内核Image文件和modules文件(驱动文件.ko),用于最后生成完整的android镜像文件
            4、执行make            make -j2  ,进行编译
            5、pack -d         打包
                将所有生成的单个模块,打包成一个整体镜像
                    /home/linux/fspad-733-6.0/lichee/tools/pack/sun8iw5p1_android_fspad-733_uart0.img
四、系统烧写3种方式
    1.整体镜像的烧写
        1.获得rom包,编译生成的系统镜像文件
        2.烧写工具:phoenixSuit
        3.连接设备:用usb连接电脑和设备
        4.烧写:

    2、单文件烧写
        1、android系统磁盘的分区


            bootloader分区:存储boot-resource.fex
            env分区存放环境变量
            boot分区:boot.img包含kernel和ramdisk
            system分区:system.img包含android的图形界面和文件系统

        2、分区对应存储的文件
            boot-resource.fex:
            boot.img
            system.img
        3、烧写
            工具:fastboot
            步骤:
                1、USB连接电脑和平板
                2、设备进入到fastboot模式,有两个方法
                3、pc端在fastboot文件夹中打开cmd
                4、开始烧写:fastboot  flash  分区   文件
                    fastboot.exe flash  bootloader boot-resource.fex
                    fastboot.exe flash   boot boot.img
                    fastboot.exe flash   system system.img
                5、在fashboot模式下重启:fastboot reboot

    3、recovery/SD卡强制刷机
        1、make otapackage   生成update.zip文件
        2、将update.zip文件copy到sd卡中
        3、将sd卡放到设备上
        4、和进入fastboot模式一样,处于选择界面时选择apply update from extsd
五、编译特定平台可执行文件
    1、配置交叉编译工具链
        工具链:linux@ubuntu:~/fspad-733-6.0/lichee/out/sun8iw5p1/android/common/buildroot/external-toolchain
        将external-toolchain复制到家目录中:/home/linux/external-toolchain/bin
        设置使得工具链生效3种方法
            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/external-toolchain/bin添加到path变量
                source /etc/environment
                sudo reboot

    2、执行编译命令:
            执行arm-linux-gnueabi-gcc  xxx.c
    3、将生成的可执行文件push到设备中运行


        


        


            

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值