前段时间回顾了一下C和JAVA的一些基础和进阶书籍,接下来让我们真正进入Android系统源码的怀抱吧,我会根据一个月之前写的《Android取经之路–学习启动篇》的知识点一步步的往下进行分析及学习,最终的目的是希望完成一个中间件,能够完成其他service到Framework,最终能到Modem的相关操作。
我使用的环境为Windows + Ubuntu16.04虚拟机.
源码下载及环境搭建参考了 AOSP - 清华大学TUNA 镜像源
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
环境搭建—(在Ubuntu中搭建):
1.安装JDK1.7并完成配置:
在www.java.com中 下载jdk-7u79-linux-x64.tar.gz —这个根据个人的电脑配置来
环境变量配置方法:新建文件夹-解压-设置环境变量-测试环境变量
1)解压JDK
新建文件夹-解压
sudo mkdir /usr/lib/jvm
sudo tar zxvf jdk-7u79-linux-x64.tar.gz -C /usr/lib/jvm
2)设置环境变量
sudo gedit /etc/profile
3)加入环境变量内容
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
4)设置默认的JDK
sudo update-alternatives –install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_79/bin/java 300
sudo update-alternatives –install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_79/bin/javac 300
5)重启一下/efc/profile
source /efc/profile
6)测试
java -version
7)显示JDK版本则配置成功
root@ubuntu:/home/ubuntu/Public# java -version
java version “1.7.0_79”
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
2.安装 git
sudo apt-get install git-core
3.安装curl
sudo apt-get install git-core curl
4## .安装repo, 通过curl下载repo
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
5.新建一个目录,然后进入该目录。
cd /home/tianger
mkdir AP6.0 //创建一个目录,这个目录用来保存源码
cd AP6.0
6.版本下载:
1)初始化git仓库
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-6.0.0_r26
如果提示下面错误:
Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
可以修改~/bin/repo下面的REPO_URL
sudo gedit ~/bin/repo
修改REPO_URL = ‘https://gerrit-google.tuna.tsinghua.edu.cn/git-repo’
2)下载代码
repo sync
基本上等上一到两晚上就能下载成功
7.版本编译:
先用build/envsetup.sh设置环境变量,再调用 lunch 命令选择构建目标。
之后即执行 make -jN 进行编译。我用的参数为 -j4 编译了大约两个小时:
8.编译方法:
1) source build/envsetup.sh
2) lunch full-eng
3) make -j4
这里的j4标示使用4个线程,可以用多个线程,根据自己CPU决定
4) adb reboot bootloader
5)fastboot flashall -w
6)emulator
#=========================#
微信公众号:天歌的编程小结
公众号ID:vipgty