2021-05-12 14:32:11
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,如圖:
通過鍵盤傳送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/
相關文章