導航:首頁 > 源碼編譯 > 安卓使用apk編譯apk

安卓使用apk編譯apk

發布時間:2024-03-09 14:33:46

❶ 求教安卓apk反編譯,添加廣告教程

工具:
apktool,作用:資源文件獲取,可以提取出圖片文件和布局文件進行使用查看
dex2jar,作用:將apk反編譯成java源碼(classes.dex轉化成jar文件)
jd-gui,作用:查看APK中classes.dex轉化成出的jar文件,即源碼文件

反編譯流程:
一、apk反編譯得到程序的源代碼、圖片、XML配置、語言資源等文件
下載上述工具中的apktool,解壓得到3個文件:aapt.exe,apktool.bat,apktool.jar ,將需要反編譯的APK文件放到該目錄下,
打開命令行界面(運行-CMD) ,定位到apktool文件夾,輸入以下命令:apktool.bat d -f test.apk test
(命令中test.apk指的是要反編譯的APK文件全名,test為反編譯後資源文件存放的目錄名稱,即為:apktool.bat d -f [apk文件 ] [輸出文件夾])

獲取成功之後,發現在文件夾下多了個test文件,點擊便可以查看該應用的所有資源文件了。
如果你想將反編譯完的文件重新打包成apk,那你可以:輸入apktool.bat b test(你編譯出來文件夾)便可
之後在之前的test文件下便可以發現多了2個文件夾:

build
dist(裡面存放著打包出來的APK文件)

二、Apk反編譯得到Java源代碼
下載上述工具中的dex2jar和jd-gui ,解壓
將要反編譯的APK後綴名改為.rar或則 .zip,並解壓,得到其中的額classes.dex文件(它就是java文件編譯再通過dx工具打包而成的),將獲取到的classes.dex放到之前解壓出來的工具dex2jar-0.0.9.15 文件夾內,
在命令行下定位到dex2jar.bat所在目錄,輸入dex2jar.bat classes.dex,
在改目錄下會生成一個classes_dex2jar.jar的文件,然後打開工具jd-gui文件夾里的jd-gui.exe,之後用該工具打開之前生成的classes_dex2jar.jar文件,便可以看到源碼了

android APK編譯流程

apk 是Android Package的簡寫, 在平時的開發過程中,通過點擊 Run app 按鈕 或者 在命令行中輸入

這樣Android Studio就會啟動構建流程,最終輸出一個我們想要的APK。

直達官網介紹

對於小白來說,上面一張圖已經可以解釋apk的構建過程了,不過對於Andoid開發者而言還需要了解一些更詳細的構建過程。

詳細的對應步驟 和 使用工具如下:

資源文件(res文件夾下的文件)通過 AAPT(Android Asset Packaging Tool)打包生成R.java類(資源索引表)、.arsc資源文件 和res文件。

resources.arsc 是一個App的資源索引表,通過R.java 文件 和 resources.arsc 可以定位到資源的內存地址,resources.arsc文件的作用是通過一樣的ID,根據不同的配置索引到最佳的資源顯示在UI中。

AIDL (Android Interface Definition Language), 是Android介面定義語言,是Android提供的IPC (Inter Process Communication,進程間通信)的一種獨特實現。
如果有aidl文件,這個階段會生成對應的Java介面文件。

R.java文件、工程源碼文件、aidl.java文件, 在這一步通過javac生成.class文件。

源碼.class文件和第三方jar或者library通過dx工具打包成dex文件

Android系統的Dalvik虛擬機的可執行文件為DEX格式,所以這里會將上一步中生成的.class文件 和 引用的第三方jar等過程中的.class 一起通過dx工具打包成dex文件

apkbuilder工具會將所有沒有編譯的資源、.arsc資源、.dex文件打包到一個完成apk文件中

tips:

apksigner工具會對未簽名的apk驗證簽名。得到一個簽名後的apk(signed.apk)

apksigner 是google 退出的V2簽名方式
Jarsigner 是之前一直使用的V1簽名方式

可以通過在命令行中輸入apksigner --help來獲取詳情信息,如果沒有特殊需求,使用下面命令即可完成簽名

release mode 下使用 aipalign進行align,即對簽名後的apk進行對齊處理

所謂對齊,主要過程是將APK包中所有的資源文件距離文件起始偏移為4位元組整數倍,這樣通過內存映射訪問apk文件時的速度會更快。對齊的作用主要是為了減少運行時內存的使用。

zipalign是一個android平台上整理APK文件的工具,它對apk中未壓縮的數據進行4位元組對齊,對齊後就可以使用mmap函數讀取文件,可以像讀取內存一樣對普通文件進行操作。如果沒有4位元組對齊,就必須顯式的讀取,這樣比較緩慢並且會耗費額外的內存。

參考文章:
Android-Studio配置構建
淺談Android打包流程
apk打包流程

END!

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

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

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

❹ 用apktool工具反編譯apk後怎麼得到源碼

一、工具准備:apktool , dex2jar , jd-gui

二、使用dex2jar + jd-gui 得到apk的java源碼
1.用解壓工具從 apk包中取出 classes.dex 文件
用命令(dex2jar.bat classes.dex)得到一個 jar文件
2.用jd-gui反編譯工具將得到.jar文件反編譯成.java文件

三、使用apktool得到apk的xml文件
1.用命令(apktool d xxx.apk xxx_xml)反編譯xxx.apk包
2.從 xxx_xml 文件夾得到xml文件

四、第二步 得到的程序源代碼 和 第三步 得到的xml文件組合下,即可得到完整的apk源碼。

五、應用: 漢化/去廣告,加 values-zh-rCN, values-zh-rTW, values-de, values-fr
1.在步驟三的文件夾xxx_xml/res/ 下, 建文件夾: values-zh-rCN,values-zh-rTW
2.1復制values\strings.xml 到 values-zh-rCN 並翻譯.
2.2 去廣告見;
3.重建APK,用命令(apktool b xxx) ,輸出到ABC/dist/out.apk
或命令( apktool b xxx out.apk)

六、重新打包 和 簽名

❺ 如何利用apktool反編譯apk

首先的知道一下幾條指令的意思
1,apktool d SysteUI.apk 12意思是將SystemUI.apk解包到12文件下,12文件夾不用創建,會自動生成
2,apktool b 12打包12文件夾(將會自動把12文件夾里的修改過得APK解包後修改完後自動打包,生成resources.arsc,文件,這就是我們反編譯的主要目的,當然還有其他目的,後面將會說明怎麼apktool需要反編譯的目的,生成的文件。
3,apktool if framework-res.apk這條語句很重要很多時候我們容易忽略這條語句導致打包不成功,這句語句的意思是,有些時候我們解包apk文件需要用framework-res.apk(framework是指系統框架。有時也會用到apktool if twframework-res.apk,同樣我們只需在前面輸入就行。當然得把framework-res.apk 這個文件目錄下。
4,apktool if twframework-res.apk ,當然 twframework-res.apk 也應該放在文件目錄下,不如反編譯Mms.apk.....會用到
知道這四條語句我們就可以進行反編譯了。
已反編譯SystemUI.apk為例,,下面開始講解
現在cmd下輸入apktool if framework-res.apk(並把framework-res.apk 放在文件目錄下)apktool if twframework-res.apk( twframework-res.apk 也應該放在文件目錄下 )其實這兩部就是搭建安卓系統環境 ,輸入完後在解包,apktool d SystemUI.apk 12就行了

❻ Android 將 apk 反編譯為源碼

將 apk 解壓,在解壓後的文件夾中可以找到 classes.dex 文件。(除了 classes.dex 文件,可能還會有 classes2.dex , classes3.dex 等等,本文以 classes.dex 為例,對其他幾個 dex 文件的操作是類似的)

使用 dex2jar 工具,將 dex 文件轉換為 jar 文件

使用方式:

執行命令後,生成的 classes-dex2jar.jar 就是我們需要的 jar 文件。

使用 Luyten 工具查看 jar 文件,就能看到反編譯後的源碼了。

本例中, classes.dex 文件中存儲的是 android 的一些基礎庫,實際編寫的源碼在 classes3.dex 中,對 classes3.dex 執行第二步,查看生成的 classes3-dex2jar.jar 文件,可以看到如下內容:

這就是反編譯 apk 的基本操作了。

Cmder 是一個非常好用的命令行工具。

效果如下:

只需要執行 apk2jar 命令,就可以實現把 apk 解壓到 apk_ 文件夾中,並將 apk_ 文件夾中的 classes.dex 文件轉換為 jar 。原理就是通過 Cmder 添加別名,把上述的第一步和第二步中執行的命令行組合起來了。

為 Cmder 添加別名很簡單,編輯 Cmder安裝目錄\config\user_aliases.cmd 文件,將別名添加到裡面即可。本例添加的別名如下:

其中:

閱讀全文

與安卓使用apk編譯apk相關的資料

熱點內容
爬山演算法相關題目 瀏覽:720
vc編程大全 瀏覽:114
excel表格單列數據加密 瀏覽:646
給同事的解壓話語 瀏覽:990
linux關閉網卡命令行 瀏覽:452
史上最漂亮程序員 瀏覽:768
java實現excel的導入 瀏覽:758
光遇賬號如何轉移安卓 瀏覽:266
5分之13除以26的演算法 瀏覽:342
蘭州安寧區買解壓包子 瀏覽:641
php接收圖片代碼 瀏覽:668
hci命令 瀏覽:662
福建伺服器大區雲空間 瀏覽:840
筆桿子程序員 瀏覽:745
手機軟體易驗證加密 瀏覽:589
文檔加密只讀模式也不能看到 瀏覽:431
把jpg轉換成pdf的軟體 瀏覽:874
linuxeth0mac 瀏覽:192
windows編程知乎 瀏覽:442
壓縮工期超過40 瀏覽:249