前期准备工作: sudo apt install repo sudo apt install curl
1.安装git仓库 sudo apt-get install git git config --global user.email “test@test.com” git config --global user.name “test” 通过执行以下命令实现repo工具的下载和安装 2.安装repo mkdir ~/bin PATH=~/bin:$PATH curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo chmod a+x ~/bin/repo repo环境变量配置
- echo ‘export PATH=
P
A
T
H
:
PATH:
PATH:HOME/bin’ >> ~/.bashrc
- export PATH=
P
A
T
H
:
PATH:
PATH:HOME/bin
下面参考AOSP(Android) 镜像使用帮助 https://mirrors.ustc.edu.cn/help/aosp.html (ps:新的帮助文档老的已废弃)
初始同步方法 2Permalink 按照 Google 官方教程 https://source.android.com/source/downloading.html 将 https://android.googlesource.com/platform/manifest 替换为 git://mirrors.ustc.edu.cn/aosp/platform/manifest 。 具体做法摘录如下(以防墙抽风): 首先下载 repo 工具。 mkdir ~/bin PATH=~/bin:$PATH curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
如果上述 URL 不可访问,可以用下面的:
curl -sSL ‘https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT’ |base64 -d > ~/bin/repo
chmod a+x ~/bin/repo
然后建立一个工作目录(名字任意) mkdir WORKING_DIRECTORY cd WORKING_DIRECTORY
初始化仓库: repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的:
REPO_URL = ‘https://gerrit-googlesource.proxy.ustclug.org/git-repo’
3.安装指定版本的Android源码 AOSP | 镜像站使用帮助 | 北京外国语大学开源软件镜像站 | BFSU Open Source Mirror 清华大学镜像不稳定了 repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-6.0.0_r6
repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-9.0.0_r9 如果要同步10.0 androidQ用下面的地址 repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r10
repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-8.1.0_r45
repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-7.0.0_r9 android11我使用 外国语大学的镜像同步的 repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r37 repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r27 repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r17
repo初始化完成后开始同步代码 repo sync repo同步出错解决方案: https://www.cnblogs.com/jiangxinnju/p/14274982.html
安转opengjdk OpenJDK 1.6 下载地址 OpenJDK 1.7 下载地址 OpenJDK 1.8 下载地址 OpenJDK 1.9 下载地址 下载一致版本的三个安装包: openjdk-7-jre-headless_7u121-2.6.8-1ubuntu0.12.04.3_amd64.deb openjdk-7-jre_7u121-2.6.8-1ubuntu0.12.04.3_amd64.deb openjdk-7-jdk_7u121-2.6.8-1ubuntu0.12.04.3_amd64.deb
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 export CLASSPATH=
J
A
V
A
H
O
M
E
/
l
i
b
:
JAVA_HOME/lib:
JAVAH?OME/lib:JAVA_HOME/jre/lib export PATH=:
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAH?OME/bin:JAVA_HOME/jre/bin:
P
A
T
H
e
x
p
o
r
t
J
R
E
H
O
M
E
=
PATH export JRE_HOME=
PATHexportJREH?OME=JAVA_HOME/jre export LC_ALL=C 如果是安装openjdk7要结合下面链接一起参考: https://blog.csdn.net/u014735704/article/details/82929808 Ubuntu18.04安装openjdk 7 1.首先需要下载 jdk7 以及 jdk7 依赖的类库: openjdk-7-jdk openjdk-7-jre
openjdk-7-jre-headless
libjpeg62-turbo
libfontconfig1
fontconfig-config
2.下载的时候要选择和自己平台匹配的 deb 包,我安装的是 64 位的 Ubuntu 系统,所以我下载的是 arm64 的 deb 包。然后把下载的这六个 deb 文件放在一个空文件夹里面,执行以下命令: sudo dpkg -i *.deb
如果出错,接着执行下面命令 sudo apt-get -f install
执行下面的命令查看当前安装的所有 jdk 版本: update-java-alternatives --list
设置系统默认jdk 版本
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-openjdk-amd64/bin/java 1071 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-openjdk-amd64/bin/javac 1071 sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java-7-openjdk-amd64/bin/jar 1071 sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/java-7-openjdk-amd64/bin/javah 1071 sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/java-7-openjdk-amd64/bin/javap 1071
执行下面命令切换你要用的版本: sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javah
sudo update-alternatives --config javap
安装依赖android6.0 sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g+±multilib sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev sudo apt-get install git-core gnupg flex bison gperf build-essential sudo apt-get install zip curl zlib1g-dev gcc-multilib g+±multilib sudo apt-get install libc6-dev-i386 sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev sudo apt-get install lib32z-dev ccache sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
//android 7.0以上包含7.0 sudo apt-get install openjdk-8-jdk sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g+±multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g+±multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
sudo apt-get install libssl-dev
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
依赖安装完之后: source build/envsetup.sh 或者 . build/envsetup.sh lunch 这里6.0的话选择第一个arm-eng的版本,10.0建议选择aosp_x86-eng的版本 make 下图是6.0源码成功编译的截图:
 最后一步命令: emulator 即可启动模拟器 可能会遇到以下错误: 在ubuntu虚拟机中,使用X86_64架构的Android模拟器,有时候会出现如下错误:
emulator: ERROR: x86_64 emulation currently requires hardware acceleration! Please ensure KVM is properly installed and usable.
CPU acceleration status: KVM is not installed on this machine (/dev/kvm is missing). vmware中启动模拟器时报错kvm遇坑解决 vmware cpu先开启嵌套虚拟化
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils sudo adduser id -un libvirtd sudo adduser id -un kvm sudo kvm-ok 设置完成之后重启虚拟机,然后再启动emulator,一切正常! 参考连接: https://blog.csdn.net/fengxingzhe001/article/details/78060126
//单独编译Settings模块 mmm packages/apps/Settings/ make snod //清除数据启动模拟器 emulator -wipe-data sdk编译 SDK的编译和模块编译非常相似,其命令如下: 首先是初始化编译环境:
source build/envsetup.sh 接下来是设定编译目标
lunch sdk-eng 最后通过以下命令编译SDK make sdk 出现以下提示表示编译完成,不出意外,在out/host/linux-x86/sdk就可以看到了: 注:SDK编译完后,之前编译的system.img等文件会被删除,所以,在编译SDK之前,建议自行备份一下.当然,如果被移除了也没关系,可以通过make命令再编译. 另外,某些命令也会删除sdk,因此在编译SDK后,我们将其备份到另外一个目录,以备不时之需
如果编译的是x86的版本,虚拟器要开启嵌套虚拟化: 下面时Hyper-V工具开启嵌套虚拟化的方式 https://www.idcsmart.com/helps_content/159.html
//android10.0编译详解 https://blog.csdn.net/yiranfeng/article/details/109082489
命令说明: croot 切换到源码树的根目录 m 在源码树的根目录执行 make mm Build 当前目录下的模块 mmm Build 指定目录下的模块 cgrep 在所有 C/C++ 文件上执行 grep jgrep 在所有 Java 文件上执行 grep resgrep 在所有 res/*.xml 文件上执行 grep godir 转到包含某个文件的目录路径 printconfig 显示当前 Build 的配置信息 add_lunch_combo 在 lunch 函数的菜单中添加一个条目
|