admin管理员组文章数量:1614304
一 . 安装Ubuntu虚拟机
参考在VirtualBox 6虚拟机上安装Ubuntu Linux 18.04操作系统
这里我是参考这篇博客的安装的,需要注意的是Ubuntu的版本一定要是稳定版的,官方长期维护的(带LTS)
二 . 下载repo工具
这里我们只要知道repo是使用Python对git进行封装的工具就行,还有就是repo的作用是方便管理Android源码繁多的git库,它的使用时简化了git版本库的管理。
安装git:
sudo apt-get install git
创建bin,并加入到PATH中:
mkdir ~/bin
PATH=~/bin:$PATH
安装curl库:
sudo apt-get install curl
下载repo并设置权限:
curl https://mirrors.tuna.tsinghua.edu/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo
安装python,repo初始化时会用到:
sudo apt-get install python
三 . 下载源码
建立工作目录:
mkdir aosp
cd aosp
这里如果想使用清华镜像来更新repo,可以加上如下内容到你的~/.bashrc中:
export REPO_URL=‘https://mirrors.tuna.tsinghua.edu/git/git-repo/’
设置身份,添加自己的git邮箱和密码:
git config --global user.email “usergmail@gmail”
git config --global user.name “username”
初始化仓库:
repo init -u https://aosp.tuna.tsinghua.edu/platform/manifest
初始化指定版本:
repo init -u https://aosp.tuna.tsinghua.edu/platform/manifest -b android-9.0.0_r8
// 这里的版本有很多,最好选一个稳定版的
同步源码:
repo sync
接下来是漫长的等待,这里我用了6个小时。。。
四 . 编译环境准备
安装 jdk8:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
这里可以自己配一下java环境变量,很简单就不说了。
使用 ubuntu 14+,需要安装以下依赖包:
sudo apt-get install 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 ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
五 . 源码整编
在AOSP的根目录,输入如下的命令初始化环境:
source build/envsetup.sh
// 编译前删除build文件夹A
make clobber
这里实际的操作就是执行build文件夹下的envsetup.sh这个脚本
选择编译目标:
lunch
lunch命令是envsetup.sh里定义的一个命令,用来让用户选择编译目标。
这里我们选择5,具体的编译目标类型自己可以去查看哦。
lunch 5
下面开始编译:
通过-jN参数来设置编译的并行任务数,以提高编译速度,在此前我的CPU核心数为6,这里N值最好选在6到12之间,这里我们设置6个并行任务进行编译(注意:这里看自己的电脑配置,如果配置低,N值选小一点)
make -j6
运行模拟器:
在编译完成之后,就可以通过以下命令运行Android虚拟机了,命令如下:
source build/envsetup.sh
lunch 5
emulator
如果是在编译完后运行虚拟机,由于之前已经执行过source和lunch命令了,可以直接运行:
emulator
这里需要注意的是如果是在虚拟机上编译模拟器上不会运行成功,但是如果是直接在Linux电脑上就可以运行成功,我自己的是Ubuntu16的虚拟机。
最后编译成功会显示绿色的successfully字样!
最终会在 out/target/product/generic_x86/目录生成了三个重要的镜像文件: system.img、userdata.img、ramdisk.img。
六 . 源码单编
比如我们要编译系统的Settings应用模块,
在AOSP根目录执行:
source build/envsetup.sh
lunch 5
进入Settings的目录:
cd packages/apps/Settings
mm编译当前目录下的模块,不编译依赖模块:
mm
最后编译成功会显示绿色的successfully字样!
最终会生成Settings.odex文件,还会在out/target/product/generic_x86/system/priv-app/Settings目录下生成Settings.apk。
最后,啦啦啦,九九八十一难,总算编译成功啦。但是安装我这个流程来下载和编译,中途肯定会遇到一些小错误的,这里小伙伴们自行在网上找原因~ ~ ~
本文标签: 源码下载
版权声明:本文标题:Android9.0 源码下载和编译 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1728673148a1169281.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论