liuyuqi-dellpc 4 years ago
commit
0bec4ad251

+ 17 - 0
README.md

@@ -0,0 +1,17 @@
+## docker-android
+
+
+| images     | desc | other |
+| -------- | ---- | ---- |
+| android-dev |   基于Ubuntu的Android编译环境。   |      |
+| android-source     |  基于Ubuntu的安卓系统源码编译。    |      |
+|          |      |      |
+
+## usage
+
+1. 启动docker环境
+
+```
+docker-compose up -d
+```
+

+ 13 - 0
android-dev/.dockerignore

@@ -0,0 +1,13 @@
+node_modules
+npm-debug.log
+Dockerfile*
+docker-compose*
+.dockerignore
+.git
+.gitignore
+.env
+*/bin
+*/obj
+README.md
+LICENSE
+.vscode

+ 27 - 0
android-dev/Dockerfile

@@ -0,0 +1,27 @@
+FROM ubuntu:18.10
+
+ENV ANDROID_COMPILE_SDK 25
+ENV VERSION_SDK_TOOLS 3859397
+ENV ANDROID_HOME "/sdk"
+ENV PATH "${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools"
+
+RUN sed -i "s|http://archive.ubuntu.com|http://mirrors.aliyun.com|g" /etc/apt/sources.list && apt-get -y update
+
+RUN apt-get install -qqy --no-install-recommends \
+    curl unzip lib32stdc++6 lib32z1 lib32ncurses5 lib32gcc1 lib32stdc++6 libc6-i386 html2text openjdk-8-jdk \
+    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
+
+# download android-sdk
+RUN curl -s -o sdk-tools.zip https://dl.google.com/android/repository/sdk-tools-linux-${VERSION_SDK_TOOLS}.zip && \
+    unzip /sdk-tools.zip -d /sdk && rm -v /sdk-tools.zip
+
+RUN mkdir -p $ANDROID_HOME/licenses/ && \
+    echo "8933bad161af4178b1185d1a37fbf41ea5269c55\nd56f5187479451eabf01fb78af6dfcb131a6481e" > $ANDROID_HOME/licenses/android-sdk-license && \
+    echo "84831b9409646a918e30573bab4c9c91346d8abd" > $ANDROID_HOME/licenses/android-sdk-preview-license
+
+# Upadte sdkmanager
+RUN mkdir -p /root/.android && \
+    touch /root/.android/repositories.cfg && \
+    sdkmanager --update
+
+CMD ["/bin/bash" ,"-c" ,"while true;do echo hello docker;sleep 1;done"]

+ 28 - 0
android-dev/README.md

@@ -0,0 +1,28 @@
+## docker-android
+
+
+| images     | desc | other |
+| -------- | ---- | ---- |
+| android-dev |   基于Ubuntu的Android编译环境。   |      |
+| android-source     |  基于Ubuntu的安卓系统源码编译。    |      |
+|          |      |      |
+
+## 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 \
+
+```

+ 8 - 0
android-dev/docker-compose.debug.yml

@@ -0,0 +1,8 @@
+version: '2.1'
+
+services:
+  docker-android-sdk:
+    image: docker-android-sdk
+    build:
+      context: .
+      dockerfile: Dockerfile

+ 5 - 0
android-dev/docker-compose.yml

@@ -0,0 +1,5 @@
+version: '2.1'
+
+services:
+  docker-android-sdk:
+    image: docker-android-sdk

+ 9 - 0
android-dev/tools/build_project.sh

@@ -0,0 +1,9 @@
+
+
+aapt package -f \
+-M AndroidManifest.xml \ 
+-I "$ANDROID_HOME/platforms/android-N/android.jar" \
+-S res/ \
+-J gen/ \
+-m \
+

+ 13 - 0
android-source/.dockerignore

@@ -0,0 +1,13 @@
+node_modules
+npm-debug.log
+Dockerfile*
+docker-compose*
+.dockerignore
+.git
+.gitignore
+.env
+*/bin
+*/obj
+README.md
+LICENSE
+.vscode

+ 13 - 0
android-source/Dockerfile

@@ -0,0 +1,13 @@
+FROM ubuntu:18.10
+
+WORKDIR /root/aosp
+
+RUN sed -i "s|http://archive.ubuntu.com|http://mirrors.aliyun.com|g" /etc/apt/sources.list && apt-get -y update
+
+RUN apt-get install -y git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev \ 
+gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev \ 
+lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip openjdk-7-jdk python	
+
+VOLUME [ "/root/aosp" ]
+
+CMD ["/bin/bash" ,"-c" ,"while true;do echo hello docker;sleep 1;done"]

+ 46 - 0
android-source/README.md

@@ -0,0 +1,46 @@
+## 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左右。这个可以直接插上已经下载好Android系统源码的磁盘,然后把指定目录挂载到docker精选即可。
+
+```
+cd xx/aosp
+docker-composer up -d
+```
+
+3、编译源码
+
+```
+source build/envsetup.sh
+export USER=$(whoami)
+lunch aosp_hammerhead-eng
+make -j16
+
+```
+
+4、测试
+
+编译后,在 build会有对象的系统镜像文件,最好真机中刷机体验。或者虚拟机中更加镜像创建,这个时候就需要可视化环境,也就不能在docker中跑了,windows系统中安装好emulator,不是某某模拟器,某某模拟器自带镜像:
+
+```
+emulator -kernel ./kernel/goldfish-android-3.4/arch/x86/boot/zImage &
+```
+

+ 8 - 0
android-source/docker-compose.debug.yml

@@ -0,0 +1,8 @@
+version: '2.1'
+
+services:
+  docker-android-sdk:
+    image: docker-android-sdk
+    build:
+      context: .
+      dockerfile: Dockerfile

+ 7 - 0
android-source/docker-compose.yml

@@ -0,0 +1,7 @@
+version: '2.1'
+
+services:
+  android-source:
+    image: android-source
+    volumes:
+      - .:/root/aosp

+ 5 - 0
android-source/tools/build_src.sh

@@ -0,0 +1,5 @@
+
+source build/envsetup.sh
+export USER=$(whoami)
+lunch aosp_hammerhead-eng
+make -j16

+ 16 - 0
android-source/tools/download_android_repo.sh

@@ -0,0 +1,16 @@
+#!bin/sh
+
+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