1.安装64位Linux操作系统
2.安装必要的工具
sudo apt install git vim p7zip-full flex bison gperf build-essential zip curl valgrind lib32stdc++6 lib32ncurses5 lib32z1 libxml2-utils
3.安装JDK1.6
chmod 777 jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin
配置环境变量
/etc/profile末尾添加
export JAVA_HOME=/home/lxzha/Public/jdk1.6.0_45
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
重新登陆才生效
4.降级make
make-3.82版本
解压文件夹,切换到该目录下
执行./configure
执行sh build.sh
执行make install
重新登录才生效
5.拷贝Android源码到桌面,安装7z解压
下载安卓源码
(1).百度网盘链接
账号:http://pan.baidu.com/s/1miOLfZi
密码:9f8e
(2).Git和Repo下载
1.装Ubuntu系统
2.装Git工具 sudo apt-get install git
git --version
git config --global user.email "你的电子邮件地址"
git config --global user.name "你的名字"
3.安装curl工具,类似wget
sudo apt-get install curl -y
4.安装repo工具
//新建一个bin目录
mkdir ~/bin
//将bin目录写入环境变量(这样你在任何目录下都可以访问)
PATH=~/bin:$PATH
//轮到curl工具了,我们使用curl工具下载repo,并将其放置到bin目录
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
//更改repo权限(不要问为啥,跟着做)
chmod a+x ~/bin/repo
5.新建Android源代码文件夹
mkdir android
cd android
6.安装Vim编辑工具
sudo apt-get install vim
7.修改repo文件的REPO_URL
vim ~/bin/repo
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
8.初始化Repo
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.4_r1.2
9.bash脚本下载Android源码
#!/bin/bash
echo "======start repo sync======"
repo sync # 第一次下载android源代码
while [ $? != 0 ]; do
echo "======sync failed, re-sync again======"
sleep 2
repo sync # 如果出错,隔2秒后回继续调用repo sync下载android源代码
done
6.Android系统的编译
1.source build/envsetup.sh //导入需要的脚本工具
lunch 选择编译的产品
croot 切换到源码根目录
m 编译整个源码,无需切换到源码根目录
mm 编译当前目录下的所有模块,但是不编译它们的依赖模块
mmm 编译指定目录下的所有模块,但是不编译它们的依赖模块
mma 编译当前目录下的所有模块并编译它们的依赖模块
mmma 编译指定目录下的所有模块并编译它们的依赖模块
cgrep 对系统所有的C/C++文件执行grep命令
jgrep 对系统所有的Java文件执行grep命令
ggrep 对系统中所有的本地Gradle文件执行grep命令
resgrep 对系统所有res目录下的XML文件执行grep命令
sgrep 对系统的所有源文件执行grep命令
godir 查找并切换到该目录
2.lunch/choosecombo //选择产品
TARGET_PRODUCT:产品名(aosp_arm/aosp_x86)
TARGET_BUILD_VARIANT:eng/user/userdebug
TARGET_TYPE:release/debug
3.make -j8 //开始编译
make droid
make clean
make snod
make help
make sdk
make offline-sdk-docs
make doc-comment-check-docs
make libandroid_runtime
make framework
make services
7.运行Android模拟器
设置环境变量
/etc/profile末尾添加
export PATH=$PATH:/home/lxzha/Desktop/Android442/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=/home/lxzha/Desktop/Android442/out/target/product/generic
export ANDROID_SWT=/home/lxzha/Desktop/Android442/out/host/linux-x86/framework
export ANDROID_BUILD_TOP=/home/lxzha/Desktop/Android442
再执行
emulator
-system '/home/lxzha/Desktop/Android442/out/target/product/generic/system.img'
-data '/home/lxzha/Desktop/Android442/out/target/product/generic/userdata.img'
-ramdisk '/home/lxzha/Desktop/Android442/out/target/product/generic/ramdisk.img'