Ubuntu 16.04下编译Android 7.1.1

首先先要了解在Android 7.0新增了哪些功能?

2016年3月9日,Google发布android N的开发者预览版本,并开放下载。 主要更新如下:
    》支持多视窗模式
    》加入应用在 Android Wear 上的 RemoteInput notification API
    》强化Doze 的省电功能
    》加入暗色主题
    》强化Smart Lock 功能
    》加入 Tile API ,允许应用程序开发者在“快速设置”中添加瓷块

在Android 7.1.1中有新增了几个酷炫的功能

从最新的发布中我看到了 A sweet update to Nougat : Android 7.1.1中提到了

》​更多的交流方式:给出了Gifs,如图:

Ubuntu 16.04下编译Android 7.1.1

通过键盘发送GIFs

​》 app shortcuts 类似于 iOS 的 3D Touch 功能,看图吧。

Ubuntu 16.04下编译Android 7.1.1

Launch actions on your favorite apps by simply long pressing the app icon,说的就是长按会出来这些工作,类似于之前的弹窗,但这实在桌面就可喔,酷炫吧,再也不要说Ios有的Android没有了。

​接下来就不说废话了,开始吧。

获取Android 7.1.1 源代码
1.下载repo工具 建立一个PATH路径

> mkdir bin->cd bin
将bin添加到PATH中
> PATH=~/bin:$PATH
获取repo
> curl https://storage.googleapis.com/git-repo-downloads/repo
> ~/bin/repo
> vim ~/bin/repo
将google地址修改为https://aosp.tuna.tsinghua.edu.cn/
修改repo文件权限
> chmod a+x ~/bin/repo
在bin中建立一个source文件夹,并下载
> wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar #
下载初始化包解压
> tar vxf aosp-last.tar -> cd aosp
> repo sync #
正常同步一遍即可得到完整目录 或 repo sync -l 仅checkout代码

进入aosp可能会遇到的情况

如果出现error 可以多试几次。如果还不行就中断吧 Ctrl + c

解决:cd ~/bin/source/aosp/.repo/manifest.xml中打开xml文件修改

fetch="https://android.googlesource.com"修改成fetch="https://aosp.tuna.tsinghua.edu.cn"
进入:cd ~/bin/source/aosp/.repo/manifests.git/config, 将

url = https://android.googlesource.com/platform/manifest,
修改成

url = https://aosp.tuna.tsinghua.edu.cn/platform/manifest

在使用repo sync 的时候可能会出现

error: .repo/manifests/: contains uncommitted changes

解决方案:

> cd .repo manifests,

> Git stash,

> git clean -f -d,

之后重新

> repo sync -j4(并发数4)

如果出现正在检出文件,就证明成功了,repo sync命令中途会经常中断可能由于网络或者其他原因,建议是在凌晨的时候进行同步操作。

开始编译之前可能需要一些准备工作,安装openJdk8​

$ sudo apt-get install openjdk-8-jre

$ sudo apt-get install openjdk-7-jre(7安装)

安装Python

$ apt-get install python

-------------------------------------编译-----------------------------------------

2.开始编译Android 7.1.1,环境Ubuntu 16.04 LTS

为了提高效率,设置编译器高速缓存


> echo export USE_CCACHE=1 >> ~/.bashrc

设置缓存


> prebuilts/misc/Linux-x86/ccache/ccache -M 50G,记住这里不是x64.

导入编译源代码


> source build/envsetup.sh 或者 . build/envsetup.sh 之后直接敲回车

可能出现找不到vendor,这个文件夹存放的是厂商一些驱动和核心内容


> lunch or lunch aosp_arm-eng

选择1 回车


> make -j4(后面的数字是cpu核心数的两倍)

编译完成启动模拟器

> emulator​

可能会遇到的问题,经常会中断,导致终端的原因有很多,中间可能爆出一下error,不要惊慌。我是用一台电脑通过xShell控制老电脑。速度有点慢。

官方说可能会出现的错误会后Java version错误,可能需要7或者8,我用的是8,目前没有报这个错​,还有python 版本也会引起错误​,repo工具需要的python2,如果系统没有安装就会报错,很幸运我目前没有遇到这些情况,所以前期工作需要准备好。

​最后我想表达,其实互联网需要的是分享和感谢。

清华开源镜像站-速度真的很快:https://mirrors.tuna.tsinghua.edu.cn/

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13707.html