1. 程式人生 > >Android編譯過程中的碎碎念

Android編譯過程中的碎碎念

刷機不是用rom包嗎?怎麼可以使用fastboot flashall -w將*.img檔案刷入呢?

在Mac上面可以參考這篇文章進行刷機.概括來說解釋從官方下載rom包,解壓後執行./flash-all.sh指令碼。在這裡我下載了Nexus 6p的官方的rom包,我們看看這個檔案中的內容是什麼?
下面就是指令碼檔案的內容

fastboot flash bootloader bootloader-angler-angler-02.45.img
fastboot reboot-bootloader
sleep 5
fastboot flash radio radio-angler-angler-02.50.img
fastboot reboot-bootloader
sleep 5
fastboot -w update image-angler-mmb29p.zip

image-angler-mmb29p.zip又是什麼呢?解開後就是這麼幾個檔案:

android-info.txt boot.img cache.img recovery.img system.img userdata.img vendor.img

有沒有很熟悉,其實就是我們編譯後,生成的幾個Image檔案。

Nexus 6P 怎麼沒有提供驅動包呢?到哪裡去下載呢?

在製作rom包的過程中,我們還需要特定Nexus機器的驅動包,因為這些驅動包不屬於AOSP,需要單獨下載跟其他AOSP產生的*.img檔案一起打包才成為一個完整的rom包.以往的驅動包,google都會提供,這次的驅動包google沒有提供了.從

Hamilton Turner的回答中,我們知道Nexus 5x/6p的刷機包中驅動不再是必須的,因為這兩款機型中所有的驅動都存在於一個單獨的vendor分割槽,因此沒有必要在編譯的時候就放入system.img中。

執行lunch命令的時候,彈出Can not find SDK 10.6錯誤

具體的錯誤如下所示:

myhost:android-4.4.4_r2.0.1 carl$ lunch aosp_x86-eng
build/core/combo/HOST_darwin-x86.mk:65: *****************************************************
build/core/combo/HOST_darwin-x86.mk:66: * Can not find SDK 10.6 at /Developer/SDKs/MacOSX10.6.sdk
build/core/combo/HOST_darwin-x86.mk:67: *****************************************************
build/core/combo/HOST_darwin-x86.mk:68: *** Stop..  Stop.

具體錯誤的原因是,在編譯指令碼中會檢查當前的Xcode sdk的版本是否是相容的,這可能是因為你mac上的xcode版本比較新,在Android原始碼中還沒有新增上.理論上說應該用Android程式碼對應的Xcode SDK版本來編譯,不然可能會有相容性的問題。但是我自己實測最新的xcode版本是可以正常編譯Android原始碼的,具體的方法如下所示:
你可以到Xcode的sdk路徑下(/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs)檢視當前系統的SDK版本是多少。比如我的SDK版本是MacOSX10.11.sdk,接下來編輯build/core/combo/mac_version.mk中的mac_sdk_versions_supported所在的行新增10.11就行了。在執行下lunch命令,是不是就好了。

相關推薦

Android編譯過程

刷機不是用rom包嗎?怎麼可以使用fastboot flashall -w將*.img檔案刷入呢? 在Mac上面可以參考這篇文章進行刷機.概括來說解釋從官方下載rom包,解壓後執行./flash-all.sh指令碼。在這裡我下載了Nexus 6p的官方的rom包,我們看看這個檔案中的內容是什麼? 下面就是指令

編譯Android原始碼過程遇到的錯誤

編譯環境:(1)ubuntu15.04(2)jdk1.6 JDK環境設定:     export JAVA_HOME=/home/zr/jdk1.6.0_45        export JRE_HOME=${JAVA_HOME}/jre       export CL

Android編譯過程總結及android各種img檔案的作用以及系統啟動過程

編譯環境:ubuntu 10.04(或者更高)(windows平臺目前不被支援) 本文以編譯android2.3為例,64位作業系統 1、編譯環境的準備  (1)確保安裝有ubuntu系統或者虛擬機器 (2)安裝JDK1.6(對於Android2.3以上程式碼) $ sud

編譯Android原始碼過程出現的錯誤

錯誤1:Can't locate Switch.pm in @INC (you may need to install the Switch module) (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/

ubuntu ffmpeg 4.0.1 android 編譯過程記錄

參考:https://blog.csdn.net/bobcat_kay/article/details/80889398 https://github.com/RoyGuanyu/build-scripts-of-ffmpeg-x264-for-android-ndk 音視訊教學:連結: h

android開發過程一些遇到的問題

記錄android開發過程中遇到的問題。 1.在一個xml中能否使用同一個include多次 http://www.apkbus.com/android-104152-1-1.html android中include標籤的使用 http://

Android 等待過程的轉圈動畫

private CustomProgressDialog progressDialog; //例項化自定義CustomProgressDialog progressDialog = new CustomProgressDialog(context, R.style.progressDialog);

Android開發過程的坑及解決方法收錄(四)

1.某個控制元件要放在Linearlayout佈局的底部(底部導航條) <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.

Android開發過程的坑及解決方法收錄

  1.某個控制元件要放在Linearlayout佈局的底部(底部導航條)      <LinearLayout      android:layout_width="match_parent"      android:orientation="vertical"      android:layou

JVM調優——Java動態編譯過程的記憶體溢位問題

由於測試環境專案每2小時記憶體就溢位一次, 分析問題,發現Java動態載入Class並執行那塊存在記憶體溢位問題, 遂本地調測。 一、找到動態編譯那塊的程式碼,具體如下 /** * @MethodName : 編譯java程式碼到Object * @Descrip

記錄反編譯過程遇到的問題

1.反編譯過程中遇到如下異常: I: Baksmaling... I: Loading resource table... Exception in thread "main" brut.androlib.AndrolibException: Could not de

Ant編譯過程出現錯誤:找不到符號

Ant進行javac編譯時,如果出現找不到符號的錯誤,則可能是缺少類路徑,則需要配置依賴的jar包,使用Ant<classpath>的標籤,載入依賴的jar包。 如圖所示: 但是我遇到的

android 開發過程涉及到的清除快取操作

android 開發過程中會遇到很多快取,常常使人摸不清楚,這裡總結一下,希望下次遇到快取相關問題能有所幫助。 Clean Project 點選 Clean Project 會執行 clean、:

Android 開發過程遇到的問題Error:Execution failed for task ':app:processDebugManifest'

在開發過程中遇到了這樣一個問題: 問題1: Error:Execution failed for task ':app:processDebugManifest'.> Manifest merger failed with multiple errors, see l

Oprofile編譯過程出錯解決辦法

“liberty library not found” error when configuring Oprofile 解決辦法: $sudo apt-get install libiberty-dev     “bfd library not found”

bitcoind編譯過程的問題

本文列出個人在編譯比特幣程式bitcoind以及啟動執行中遇到的問題。 1 執行autogen.sh libtool沒有安裝 Makefile.am:10: error: Libtool library used but 'LIBTOOL' is undefined Ma

android.intent.action.SCREEN_ON和android.intent.action.SCREEN_OFF待機廣播在TV android開發過程,不響應原因.

待機廣播,又叫螢幕喚醒廣播:android.intent.action.SCREEN_ON和android.intent.action.SCREEN_OFF 在使用過程中需要主要以下兩點: 1.需要在AndroidManifest.xml添如下許可權: <uses

下載android程式碼過程,提示以下錯誤: error: Failed connect to android.googlesource.com:443;

下載android程式碼過程中,提示以下錯誤: error: Failed connect to android.googlesource.com:443;Connection refused while accessinghttps://android.googles

Android 開發過程平時遇到的一些問題及總結

相信大家都有面試的經歷,相對比面試官的問的一些問題其實都是基礎的知識,但就是一些基礎的知識我們也不是很完美的回答出來,我們也知道現在的開發人員很多,一家公司一個崗位就會有很多的開發者投遞,在那麼多開發者中你如何讓面試官很深的認識你,給面試官一個很深的印象,能讓他

Android tips(十三)-->Android開發過程使用Lambda表示式

新的Java8 API中提供了不少新的特性,其中就有Lambda表示式。而本文我們將主要介紹一下在Android開發過程中如何使用Lambda表示式,這裡主要是為我們後續介紹RxAndroid、RxJava相關知識做鋪墊的。 Lambda表示式的概念