首頁 > 軟體

Ubuntu 16.04下編譯Android 7.1.1

2020-06-16 17:11:05

首先先要了解在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,如圖:

通過鍵盤傳送GIFs

?》 app shortcuts 類似於 iOS 的 3D Touch 功能,看圖吧。

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/


IT145.com E-mail:sddin#qq.com