導航:首頁 > 程序命令 > android編譯命令

android編譯命令

發布時間:2025-02-25 06:31:57

❶ 如何單獨編譯android源代碼中的模塊

一. 首先在Android源代碼目錄下的build目錄下,有個腳本文件envsetup.sh,執行這個腳本文件後,就可以獲得一些有用的工具:
USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh
注意,這是一個source命令,執行之後,就會有一些額外的命令可以使用:
- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the moles in the current directory.
- mmm: Builds all of the moles in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.
這些命令的具體用法,可以在命令的後面加-help來查看,這里只關注mmm命令,也就是可以用它來編譯指定目錄的所有模塊,通常這個目錄只包含一個模塊。
二. 使用mmm命令來編譯指定的模塊,例如Email應用程序:
USER-NAME@MACHINE-NAME:~/Android$ mmm packages/apps/Email/
編譯完成之後,就可以在out/target/proct/generic/system/app目錄下看到Email.apk文件了。Android系統自帶的App都放在這具目錄下。另外,Android系統的一些可執行文件,例如C編譯的可執行文件,放在out/target/proct/generic/system/bin目錄下,動態鏈接庫文件放在out/target/proct/generic/system/lib目錄下,out/target/proct/generic/system/lib/hw目錄存放的是硬體抽象層(HAL)介面文件
三. 編譯好模塊後,還要重新打包一下system.img文件,這樣把system.img運行在模擬器上時,就可以看到程序了。
USER-NAME@MACHINE-NAME:~/Android$ make snod
四. 參照Ubuntu上下載、編譯和安裝Android最新源代碼一文介紹的方法運行模擬器:
USER-NAME@MACHINE-NAME:~/Android$ emulator
這樣一切就搞定了。

❷ Qt6.3 for Android - 命令行CMake方式編譯打包APK

本文將闡述如何利用命令行CMake方式,編譯並打包Qt6.3 for Android至APK文件。首先,構建環境需預先搭建完成,具體指南可見鏈接。接著,我們藉助官方文檔指引,利用qt-cmake工具編寫編譯腳本。需注意,腳本中應包含-DANDROID_SDK_ROOT與-DANDROID_NDK_ROOT參數,並確保參數傳遞方式正確,避免使用~代替用戶特定路徑。引入外部庫或QML插件時,應在頂層CMakeLists尾部插入qt_finalize_project()以確保依賴正確打包。此操作在使用qtcreator進行編譯部署時可能會產生異常,但通過命令行編譯時則表現正常。此外,建議將Android SDK、NDK等組件放置於用戶目錄下以簡化許可權管理。完成腳本編寫後,需創建一個調度腳本來整合整個編譯流程。成功運行腳本後,通過adb命令安裝生成的APK文件,至此編譯打包過程圓滿結束。

❸ Android 如何對apk文件進行反編譯以及重新

第一:使用apktool直接反編譯apk

第六:把生成的hellodemo.apk安裝到手機,可以看到主界面上已經顯示的是hello,而不再是你好。說明反編譯重新打包成功!

❹ android studio工程使用命令直接編譯

在根目錄中,使用命畝絕源令

chmod 777 gradlew

./gradlew assembleRelease

即宏歷可。

生成的apk在app/build/迅態outputs/apk/release/目錄下

❺ Android反編譯(三)— 手動編譯

PS: 最近沒工作,沒工作就沒需求,沒需求就沒什麼技術總結的靈感,那就沒更新什麼。但是兩個月不更新了,要是三個月不更新就會出大事,所以這次打算做一件有意思又不難的事。
之前有發文章寫過反編譯,今天就來試試反編譯之正編譯,開玩笑的,就是試試手動編譯的過程, 平時我們在項目中編譯出包都是使用Gradle直接執行assemble任務就能解決,我打算試試手動模擬整個過程。當然我也是第一次這樣搞,所以如果有寫得不對的地方,還望指出。

眾所周知,apk實質上就是一個壓縮包。復習一下,我們寫個最簡單的Demo,然後打包,然解壓,注意是解壓,不是反編譯,意義是不同的。

注意我這個Demo很簡單,什麼都不引入

然後我們看看整個出包的過程,隨便從網上拿張圖

然後這里我們用Android SDK給我們提供的工具來完成整個流程,工具在sdk文件夾下的build-tools文件夾下,有什麼aapt.exe、dx.bat,用的就是這些

這步應該是整個流程最簡單的吧,我感覺,所以從最簡單的開始。
我們先看看生成的dex有什麼

對比項目,我是一開始最基本的項目,什麼都沒動,所以只有一個MainActivity.clas,所以這里肯定是要先想辦法得到BuildConfig.class和R.class。

輸入命令:
aapt p -f -m -J <輸出路徑> -S <res路徑> -I <android.jar路徑> -M <Manifest路徑>

下一步,我們需要BuildConfig.class
這個BuildConfig.java是由gradle在我們配置好gradle之後自己幫我們生成的,所以我們直接拿來用,然後再javac就得到class文件了

然後我們再編譯我們的MainActivity.java並將它們放到同一個文件夾下, MainActivity因為引用了Android.jar和R文件,所以編譯時注意點,我為此被動好好的復習了一遍javac,都是淚

最後一步,我們用dx工具就能打出dex文件了

然後執行命令就得到一個Dex文件,看看這個文件裡面和上面直接打出的apk中的Dex文件有什麼不同:

看圖,我們上一步已經生成.dex了,那麼我們需要和compiled Resource 還有 Other Resource 一起生成APK。

我們先來生成compiled Resource,也就是resources.arsc
發現之前使用aapt生成R文件的時候沒寫完整,當時可以加一個-F參數直接生成arsc和Manifest

導出的abc.zip裡面就有resources.arsc和AndroidManifest.xml。
因為之前寫漏了,所以肯定要重新編一次MainActivity.java和Dex

我們把剛才的dex文件和aapt生成的resources.arsc、AndroidManifest.xml和res放到一個文件夾裡面。
PS:res文件夾也是上面aapt的命令生成的
然後我們對比這個文件夾和之前apk解壓的文件夾

最後運行

看來是成功了。

再說說遇到的還有兩個問題,並說下我解決問題的思路
(1)我把它們都放到一個文件夾之後,我壓縮成壓縮包,然後改後綴成.apk,然後發現安裝不了,我就直接反編譯,發現發編譯失敗,提示包有問題,以我多點玩包的經驗,我感覺就是壓縮工具出了問題,然後我去下個「好壓」(這不是廣告啊),然後就能正常反編譯了。
(2)但是還是安裝不了,再根據我多年的玩包經驗,我感覺是簽名問題,然後我隨便給這個包上一個簽名,就能正常安裝得到上圖的結果了。

總體來說,還真挺好玩的,這整個過程,就是翻車了幾次。做完之後感覺非常牛逼,為什麼這樣說,因為我知道這整個過程,我就可以做到,我不經過gradle來打包,我自己寫個python腳本來調用aapt和dx來打包也是能做到的。
當然上面純屬異想天開,因為這是個什麼都沒有的Demo所以覺得簡單,要是一個真實的項目,我感覺肯定要有很多坑,別的先不說,一個項目那麼多依賴關系,我這javac要搞死人。
最後如果有不對的地方,希望有大佬能夠指出,畢竟能運行也不能證明完全沒問題。然後我使用的build-tools是28的,不敢保證其它版本包括以後版本的玩法都一樣。

閱讀全文

與android編譯命令相關的資料

熱點內容
沈陽氣體壓縮機有限公司 瀏覽:600
胸椎壓縮性骨折飲食 瀏覽:270
如何看伺服器系統的版本號 瀏覽:26
龍吟平衡車如何用app使用 瀏覽:576
數字生態森林app怎麼種樹 瀏覽:18
python3非零返回 瀏覽:419
雲頁pdf 瀏覽:320
小米編譯器app 瀏覽:868
加油吧程序員怎麼樣 瀏覽:829
cad線條拉伸命令快捷鍵 瀏覽:546
可以復制加密門禁的軟體 瀏覽:45
電腦文件夾是默認共享的嗎 瀏覽:758
網頁pdf怎麼轉word 瀏覽:68
如何使用cs伺服器中文id 瀏覽:102
珠海稅務局伺服器地址和埠號 瀏覽:887
加密狗型號有什麼用 瀏覽:383
阿里雲怎麼開啟伺服器埠 瀏覽:89
ftp伺服器如何判斷已經傳送了 瀏覽:793
程序員折999朵玫瑰花 瀏覽:215
加密文件是不是不可以解壓 瀏覽:388