嵌入式系统移植 - ANDROID6.0
功能定义硬件定义软件功能
获取源码首次编译开始移植uBootKernelFrameworkSystem-APP
功能定义
硬件定义
类型模组说明
SOCRK3126CPMURK816TPGSL1680LCD3.9寸(ST7701S SPI+RGB)RFAP6212(BT+WIFI)LED双色灯一枚(NotificationLED / PowerLED)KEY五个物理按键(Power / Volume- / Volume+ / Func1 / Func2)FlashFORESEE NCEMAD9D-16GDDRSAMSUNG 16bit 1G
软件功能
支持硬件基础功能SystemUI 界面定制
Tips:
Android 5.0 之前使用的是 Dalvik 编译器,当时是边解释边执行,效率偏低。
Android 5.1 之后使用的是 Art 编译器,就是在APP首次安装时,便解释成机器语言,这样做虽然可以提高速度,但是APP安装的速度会变慢。
Android 7.0 中加入了 Jit ,Art 与它同时运行,Art 负责核心代码编译,Jit 则是将没有编译的部分在执行时进行编译。
获取源码
从代码仓库同步代码 repo init --repo-url ssh://git@localhost/repo.git -u ssh://git@localhost/rk_repo/platform/manifest.git -b android6.0 -m tower_smartdream_v1.0.xml'
根据项目名切出一份目标分支 repo forall -c 'git checkout -b develop'
首次编译
$
> source build/envsetup.sh
$
> lunch 13
$
> ./build.sh
顺序执行以上三个动作, 编译完成后会在
/RKTools/linux/Linux_Pack_Firmware/rockdev/ 下生成 Update.img
1. prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8//x86_64-linux/bin/ld: error: /home/hains/android/system/out/host/linux-x86/obj32/SHARED_LIBRARIES/libart_intermediates/arch/x86/quick_entrypoints_x86.o: unsupported reloc 43 against global symbol art::Runtime::instance_
解决方法:
cp /usr/bin/ld.gold prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8/x86_64-linux/bin/ld
开始移植
uBoot
添加关机充电(cmd_charge.c)动画优化 RK816 PMU-LDO 控制逻辑
Kernel
修改内核打包方式添加客制化启动Log信息添加客制化内核配置项添加后门脚本rk312x支持内置声卡切换左右声道
Framework
修改 Android 系统默认配置项修改 Android 系统过场动画时间修改 wpa_supplicant 支持首次开机默认 AP 配置 修改 wpa_supplicant.conf 文件权限添加 5 个自定义保留按键添加边缘左右手势动作客制化系统 API 接口给到应用
System-APP
定制 SystemUI 界面