根據(jù)運行的環(huán)境,操作系統(tǒng)可以分為桌面操作系統(tǒng),手機操作系統(tǒng),服務(wù)器操作系統(tǒng),嵌入式操作系統(tǒng)等。 1. 下載Android系統(tǒng)的源代碼包(不同的手機使用方式不同,請根據(jù)自己的情況進行下載,這不是介紹) 2. 解壓縮下載的源程序包(如果是.tar.gz文件,則解壓縮方法如下) tar -xzvf文件名 3. 在解壓縮后的包中的alps / packages / apps下創(chuàng)建一個新文件夾***(項目名稱),將數(shù)據(jù)復(fù)制到項目中主文件下,并將其放置在新創(chuàng)建的文件夾中,并將Java文件名更改為src. 最重要的一點是創(chuàng)建一個新的Android.mk文件. 該文件必須存在. 您可以參考下面的apps /項目中的.mk進行編寫. 最簡單的編寫如下: LOCAL_PATH: = $(call my-dir)//Android.mk文件和項目文件可以這樣寫在同一文件中 包括$(CLEAR_VARS) LOCAL_MODULE_TAGS: =可選 LOCAL_SRC_FILES: = $(調(diào)用all-java-files-under,src) LOCAL_PACKAGE_NAME: =項目名稱 包括$(BUILD_PACKAGE) 4. 編譯整個項目 ./ oneCmdMake系統(tǒng)項目名稱userdebug //可以是userdebug,eng,user 5. 單模塊編譯? p="">
./ moduleMake userdebug mmm包/應(yīng)用/項目名稱///請注意,此處的編譯選項必須相同,否則將很麻煩. 如果編譯成功,則可以開始閃爍. 如果編譯不成功,則可以看到錯誤提示. 如果閃爍后手機上沒有項目,請執(zhí)行./moduleMake userdebug snod 再次閃爍,通常很好 成功編譯整個項目后,無需將其整體編譯. 總體編譯是一項非常耗時的操作,通常大約需要一個小時,但是單個模塊的編譯非常快. 如果將來需要將自己的項目編譯到此系統(tǒng)中(已成功編譯),則只需直接編譯一個模塊并用snod打包即可. 我認為這是一種省時的方法. 另一種方法是配置自己的項目名稱. 轉(zhuǎn)到系統(tǒng)配置文件device.mk程序編譯到android系統(tǒng),模仿*** PACKAGES + =項目名稱,然后將其作為一個整體進行編譯,無需打包. 模塊編譯(將修改后的項目迅速推送到手機上) source build / envsetup.sh#源代碼用于運行Shell腳本. envsetup.sh中有一系列可用的命令程序編譯到android系統(tǒng),例如mm mmm mmmb,但是只有在運行腳本后才能使用內(nèi)部的命令 午餐+平臺名稱#加載平臺,該名稱可以在out / target /下看到,例如: 沒有正確大小寫的通用文件夾 mmm -B項目名稱#編譯修改后的項目,-B是可選的,此處的項目名稱應(yīng)對應(yīng)于其所在的路徑,編譯模塊的所有文件,-B選項是必需的,并且-B未添加,僅編譯更改的文件 adb root#獲取電話的root權(quán)限 adb重新安裝#安裝手機 adb push此項目生成的.apk和.odex文件的位置與電話中的位置相對應(yīng)#將經(jīng)過修改和編譯的生成的內(nèi)容推送到電話中 adb shell重啟#重啟手機 對于無法重新安裝的手機,您無法推動,可以在mmm一次編譯后將make -j16 snod(直接使用)打包,然后刷新機器,選擇系統(tǒng)并下載到手機,即可節(jié)省很多時間 Ali最近更新代碼后,如果您無法在root用戶身份后重新掛載,則需要執(zhí)行以下操作: 在adb root之后,輸入adb shell. 執(zhí)行命令echo“ enable 0;”> / proc / alog,就可以了. 注意: 如果不確定推送是否成功,可以轉(zhuǎn)到手機目錄以查看相應(yīng)文件的修改時間,例如 ls -l Utk.apk的結(jié)果將顯示文件的修改時間和權(quán)限. 僅當權(quán)限為666時才正確,該時間為您按下的時間 m: 編譯所有模塊 mm: 編譯當前目錄中的模塊,當前目錄中必須有一個Android.mk文件 mmm: 編譯指定路徑下的模塊,并且指定路徑下必須有一個Android.mk文件 eng: 工程版 用戶: 最終用戶版本 userdebug: 調(diào)試測試版本 測試: 測試版本 通常來說,測試和userdebug的兩個版本無法交付給最終用戶. 所犯的錯誤和最后的修改: 1. Userdebug用于整體編譯,而eng用于單個模塊. 編譯時我沒有注意到. 將其更改為同一文件后,它可以生成燕麥文件. 2. AppCompatActivity繼承自我的游戲項目,無法識別. 可能是由于軟件包或版本,最后更改為Activity. 3. 使用./moduleMake userdebug mmmb更改為./moduleMake userdebug snod來編譯單個模塊并成功打包 4. 評論應(yīng)盡可能不以中文顯示. 布局中的文本內(nèi)容最好在調(diào)用它之前用string.xml編寫 5,. / birdCopy 6118SOP_V17_AY_HD_MV1616用戶調(diào)試 ./ mk_aliphone.sh bird_6737m_35g_m0 userdebug adb new YUNOS_CARRIER_CUSTOM = CMCC_DEEP_COOP 這是為了編譯Ali平臺. “新建”意味著每次完成整體編譯后都會清除原始的編譯數(shù)據(jù). 如果編譯時間很短,則無法將其更改為重新制作 請參閱以提高代碼的編譯速度
|
溫馨提示:喜歡本站的話,請收藏一下本站!