# Android | images | desc | other | | -------- | ---- | ---- | | android-dev-eclipse | 基于 Ubuntu 的 Android 项目开发编译环境。 | eclipse项目打包apk比较复杂 | | android-dev-studio | 基于 Ubuntu 的 Android 项目开发编译环境。 | studio打包,需要管理依赖 | | android-source | 基于 Ubuntu 的 Android 系统源码编译。 | | | | | | ## usage 1. 启动 docker 环境 ``` docker-compose up -d ``` 2. 进入容器编译项目 ``` aapt package -f \ -M AndroidManifest.xml \ -I "$ANDROID_HOME/platforms/android-N/android.jar" \ -S res/ \ -J gen/ \ -m \ ``` ## android-source android 系统源码编译,android源码特别大,所以不要放到镜像中打包,所以本质上本镜像就是一个 Ubuntu附带gcc等编译工具而已。 **系统要求** * docker中Ubuntu18 * 内存16G * 磁盘200G SSD ## 使用 1、启动编译系统(略),下面通过docker-compose启动。 ``` docker run --name aosp6 -it android-source /bin/bash ``` 2、下载源码,启动编译系统 下载源码可能耗时一两天,大概50G,解压80G,在aosp还原则会120G左右。 ``` sh tools/download_android_repo.sh ``` 这个可以直接插上已经下载好Android系统源码的磁盘,然后把指定目录挂载到docker精选即可。 ``` cd xx/aosp docker-composer up -d ``` 3、编译源码 ``` sh tools/build_src.sh ``` 4、测试 编译后,在 build会有对象的系统镜像文件,最好真机中刷机体验。或者虚拟机中更加镜像创建,这个时候就需要可视化环境,也就不能在docker中跑了,windows系统中安装好emulator,不是某某模拟器,某某模拟器自带镜像: ``` emulator -kernel ./kernel/goldfish-android-3.4/arch/x86/boot/zImage & ``` ## android 源码构建 **下载源码** 采用repo工具同步多个git项目: ``` mkdir ~/bin PATH=~/bin:$PATH curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo # 创建一个空目录用来保存android源代码 mkdir ~/aosp cd ~/aosp # 指定从清华的镜像,只下6.0.1版本Android repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-6.0.1_r46 #同步源码树,并发设置为8,不要太大 repo sync -j8 ``` **构建源码** ``` source build/envsetup.sh export USER=$(whoami) lunch aosp_hammerhead-eng make -j16 ```