注意:本小节,介绍的源码指的是“20170803”以及后续新增的源码。java
5.4.1.1 uboot 的编译android
Android4.4.4 对应 uboot 的源码,编译器,参数配置,编译脚本以及编译参数和git
Android4.0.3 的 uboot 所有如出一辙。vim
5.4.1.2 Linux 内核的编译浏览器
源码目录jvm
网盘下载 Android4.4.4 对应的源码。在网盘“iTOP-4412 开发板系统源码及镜像(其ui
他)”→“android_4.4.4 源码及镜像”目录下,在最新日期的文件夹下的“iTop4412-内存
android4.4-kernel_xxxx.tar.gz”压缩包,xxxx 表示日期。开发
编译器get
Android4.4.4 对应内核的编译器和 Android4.0.3 的内核编译器如出一辙。
参数配置
内核的编译是组合式配置文件,基本的配置文件名是“config_for_android_XX_YY”,
XX,YY 表示用下表所示的参数替代。POP 和 SCP 分别对应核心板的 POP 和 SCP;elite 和
super 分别对应精英版和全能版;no_wifi 参数仅用于精英版,表示不支持 WiFi 模块(若是没
有 WiFI 模块,那么就须要配置为 no_wifi)。
如上表所示,若是须要 Android4.4.4 支持 WiFi,则须要配置对应的参数,不支持 WiFi
也须要进行对应配置。
编译生成内核镜像举例
和 Android4.0.3 内核同样,若是须要编译对应核心板的内核,首先使用 cp 命令将对应
的配置文件覆盖掉“.config”。
若是用户要使用 5 寸屏幕,先要参考用户手册“5.5 支持 5 寸屏的内核补丁文件”,给内
核打补丁,而后使用命令“vim .config”,在文件中搜索关键词
“CONFIG_TOUCHSCREEN_GT9XX=y”,在“CONFIG_TOUCHSCREEN_GT9XX=y”之
后添加一行“CONFIG_TOPEET_LCD5X0=y”,添加完成以后,以下图所示。若是用户不使
用 5 寸屏幕,则能够跳过这一步。
最后执行编译命令“make zImage”。
生成内核镜像的目录也是“arch”-->“arm”-->“boot”。
例如:开发板是精英版,POP 核心板,须要支持 WiFi 模块,那么缺省文件就须要配置为
“config_for_android_pop_elite”。
开发板是精英版,POP 核心板,不支持 WiFi 模块,那么缺省文件就须要配置为
“config_for_android_pop_no_wifi”。
5.4.1.3 Android4.4.4 的编译
更新环境 javap
编译 Android4.4.4,还缺乏一个“javap”命令,使用命令:
“update-alternatives --install "/usr/bin/javap" "javap"
"/usr/lib/jvm/jdk1.6.0_43/bin/javap" 1”
更新一下,以下图所示。
内核以及 Android 源码路径
编译 Android4.4 源码的时候,必定要注意内核源码的目录。在和 Android 源码目录
“ iTop4412_KK4.4_git ”的同一级目录下,将内核源码解压。
例如,以下图所示,做者将内核源码和 Android4.4 源码压缩包放到“/home/iTOP-
4412-Android4.4”目录下,解压“iTop4412_KK4.4_git_xxx.tar.gz”和“iTop4412-
android4.4-kernel_xxx.tar.gz”,Android 源码解压以后获得“iTop4412_KK4.4_git”和
“kernel”目录。“iTop4412_KK4.4_git”目录下就是 Android 源码,
“kernel/iTop4412_Kernel_3.0”目录下就是内核源码。
另外在编译 Android4.4 以前,必须成功编译 Android4.4 对应的内核。
而后进入 Android4.4.4 源码解压后获得文件夹“iTop4412_KK4.4_git”中,使用命令
“./build_android.sh”,运行一键编译脚本,开始编译 Android4.4.4。注意:编译
Android4.4.4 必须保证给 Ubuntu 系统提供 3G 以上内存。这里“提供 3G 以上内存”的意
思,不单单是指在 VMware Workstations 虚拟机中设置分配 3G 内存。例如,用户在编译的
时候,PC 机的内存一共是 4G,在虚拟机中设置分配 3G 内存,可是在 Windows 系统下,开
着 QQ,杀毒软件,音乐播放器,浏览器等等,这样在 Windows 下占用的内存就快 2G 了,
那么虚拟机会自动调整到只占用 2G,甚至不到 2G 的内存,这样是无法编译经过的。
正确的分配内存方法是,首先给虚拟机分配 3G 以上内存,而后在 Windows 下关掉尽可能
多的没必要要的应用,关掉尽可能多应用的后台程序。
固然,若是用户的 PC 是 8G 或者 16G 内存,随意就成。
编译完成以后,在文件夹“iTop4412_KK4.4_git/out/target/product/smdk4x12”中,
生成镜像“system.img”和“ramdisk-uboot.img”。
这里还须要注意的是,Android4.4.4 源码须要占用较大的空间,用户须要确认有足够的
空间才可以成功编译。Android4.0.3 编译完成后总共大约占用 18G 的空间,Android4.4.4 编
译完成后总共占用大约 36G 的空间。
用户彻底按照步骤编译错误,可使用“df -l”查看一下盘符剩余空间还剩下多少,若是
是已使用 100%,则是空间不足。