一、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到设备中运行

被折叠的 条评论
为什么被折叠?



