2010-11-01 50 views
7

我的系統中有android源代碼,並且工作正常。但是當我在android源文件中進行一些更改並運行「make」時,它不會生成/更新任何文件 如果我錯了,請糾正我的錯誤,如何在android源文件中進行更改後重新編譯android源代碼

i)如果更改,系統應該生成一個新的system.img文件已經進行了它的源代碼

II),即使我們做的源代碼

另一個問題的任何變化,如果我中創建一個新的庫文件夾的Android內核文件的zImage文件不與任何的改變而改變/ libcore會在編譯時自動獲取。爲了在/ libcore之外創建一個新的庫文件夾,我在/build/core/main.mk和.classpath文件中添加了它的路徑。編輯過程中還沒有找到。是否有人可以確認,所有我們必須做出改變外線增加一個新的庫文件/ libcore

問候, 約傑什

+0

從未有過這個問題,也許是因爲我使用Android的MOTODEV Studio的(全蝕安裝插件)http://developer.motorola.com/docstools/motodevstudio/download/你在用什麼? – Jim 2010-11-01 20:38:32

+2

我不打算爲android構建應用程序,而是想對android內置文件進行一些更改並重新編譯源文件,以便將其發送到模擬器,在其上運行所有應用程序。 – JoshMachine 2010-11-01 20:45:16

+0

@JoshMachine我也有同樣的問題。我在源文件中添加了一些日誌並做了一個make。你是如何解決你的問題的? – 2016-05-10 15:01:55

回答

10

這取決於你已經簽出確切的資料庫。但對於大部分人以下幾招將工作:

http://source.android.com/source/download.html

請注意,如果您使用的是最新的構建必須有64位系統

UPDATE:出於某種原因,網頁上面是缺少一些重要步驟。所以,在這裏,他們是

你完成後「回購同步」的步驟(需要一段時間,但我認爲你做,因爲你的源文件),請執行以下操作:

$ . build/envsetup.sh 
$ lunch 

最後的命令給你一個你想要建立的平臺的選項列表。如果你想爲模擬器構建,請選擇full-eng。否則,爲您的特定設備供應商選擇一個。

選擇平臺後,請確保首先完成所有事情,因爲整個android平臺是非常相互依賴的。所以你需要確保你有所有的組件。

開發時,您可以非常快地構建單個組件。通過使用下面的命令:

mmm <component_directory_name> 

例如:

mmm external/rsync 

此外,構建系統不改變把輸出和中間文件的源代碼。一切進入/目標目錄。

+0

你好弗拉德,所以如果我在源文件做一些改變。可以說我添加了一些日誌,然後做一個make,out/target/product中的新圖像是否會得到這些更改? – 2016-05-10 15:00:19

+0

對不起,我還沒有做過這樣的年齡的Android構建。對於舊版本,沒有圖像不會改變,你必須建立完整的重建來獲得新的圖像。不知道這種情況下有哪些新的Android平臺。 – Vlad 2016-05-10 16:40:45

+0

我對AndroidManifest.xml做了一些更改,並通過mm -B編譯該應用程序,但在重新打開該文件後,我的更改消失了! – 2016-09-13 08:18:13

4

這取決於你想做的改變。

在一個簡單的情況下,如果變化是局部的(例如,增加了一些新的線路到名爲xxx.c現有的Android的源文件),你可以輕鬆地運行:

mm -B (under the root directory of xxx.c) 
adb remount 
adb sync 
adb reboot 

在其他情況下,比方說,你創建一個新的系統服務來替換在啓動時啓動的舊服務,如init.rc文件中所示。然後,你可能需要:

  1. 更新init.rc文件
  2. 構建完整的Android源
  3. 閃存新形象
+1

'adb root'可能是必需的,adb remount的工作原理。 'adb root'和'adb remount'僅在用戶調試和eng版本的android上可用 – 2017-02-16 13:33:50

相關問題