需要把反編譯的apk存放到apktools同級文件夾目錄下,然后運行要查看的安裝包,具體操作如下:
專注于為中小企業(yè)提供網(wǎng)站制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)運城免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
1、首先把反編譯的apk存放到apktools同級文件夾目錄下,如下圖所示。
2、按住shift+鼠標右鍵打開命令窗口,運行代碼 apktool d yd.apk(安裝包的名字)。
3、apk后綴名改成zip,解壓雙擊打開xml格式文件如下圖所示。
4、打開cmd命令窗口,如下圖所示依次輸入命令。
5、將classes.dex打包成jar包 需要用到dex2ja。
6、然后就可以查看需要的源代碼,如下圖所示。
當(dāng)前的Android?代碼托管在兩個方:? 和??之前在 android.git.kernel.org?上也有托管,不過現(xiàn)在重定向到了??好在都支持git訪問。
google?提供的?repo?工具實際上是一個內(nèi)部操作git工具來簡化操作Android源碼的Python腳本。經(jīng)過嘗試,直接使用git?工具在ubuntu?下可以實現(xiàn)clone?Android?源碼。下面介紹一下方法:
1.?獲取當(dāng)前的在github?上托管的Android?git?repositories:
github頁面為:??。不過這個頁面不支持通過?wget?""?或者?curl?""?的方式訪問,?錯誤信息如下:
這樣一來,獲取這個頁面內(nèi)容并解析出其中的git?repositories就需要手工完成了。好在方法也很簡單:?瀏覽器中打開這個頁面,然后"查看源文件"并保存為文本文件,比如保存為"android_git.html"。最后,通過下面的一行腳本來取出?Android?git?repositories.
grep?-o?"span?class=\"repo\".*/span"?./android_git.html?|?cut?-d?""?-f2?|?cut?-d?""?-f1??android_git.txt
2.?基于第1步獲取的Android?git?repositories?來生成clone?git的腳本:
執(zhí)行如下的一行awk腳本
awk?'BEGIN{i=1;?print?"#!/usr/bin/env?bash"?}{?print?"\n\necho?\"begin?clone?android?git?["i"]:?"?$1?"\"";?print?"git?clone?
"?$1?".git";?print?"echo?\"finish?clone?android?git?["i"]:?"?$1?"\""?;?i=i+1;?}'?./android_git.txt??
git_clone_android.sh
現(xiàn)在用于clone?android?git的腳本生成好了,一共有?103?個?git?repository.
3.?執(zhí)行g(shù)it_clone_android.sh這個腳本即可。
整體Android?源碼的代碼量是相當(dāng)龐大,完成所有的clone?任務(wù)后,大概占用了?7G?磁盤空間,歷時20多個小時,這是在網(wǎng)速比較快的情況下達到的效果:
其間也有許多問題,比如多次出現(xiàn)如下的錯誤:
這個時候需能做的只能是"try?again"了。
需要說明的是"不要試圖同時并發(fā)執(zhí)行多個git?clone?命令",這樣會導(dǎo)致大量出現(xiàn)上面貼圖中的錯誤,另外,整個clone過程中耗時最多的git?repository?如下:
kernel_common.git?kernel_msm.git?platform_frameworks_base.git?platform_prebuilt.git?其中?platform_prebuilt.git?是google?提供的預(yù)編譯好的二進制文件,包含:?各種庫文件,jar?包,可執(zhí)行程序等等,如果只是閱讀Android?源代碼,這個git?repository?可以不用clone.
當(dāng)我們在eclipse中開發(fā)android程序的時候,往往需要看源代碼(可能是出于好奇,可能是讀源碼習(xí)慣),那么如何查看Android源代碼呢?
比如下面這種情況
假設(shè)我們想?yún)⒖碅ctivity類的源代碼,按著Ctrl鍵,左擊它,現(xiàn)實的結(jié)果卻看不到代碼的,提示的信息便是“找不到Activity.class文件”。
此時點擊下面的按鈕,“Change Attached Source…”,選擇android源代碼所在位置,便彈出圖三的對話框。
第一種是選擇工作目錄,即已經(jīng)存在的android應(yīng)用程序源代碼。
第二種分兩種方式
(1)選擇External File…按鈕,添加Jar格式文件或者zip格式文件路徑;
(2)選擇External Floder…按鈕,添加文件夾所在路徑。
下面問題就來了,源代碼在哪里?不能憑空產(chǎn)生阿。
可以通過Android SDK Manager進行源代碼下載;(推薦該種方法),如圖四
勾選Source for Android SDK,進行下載即可。
此外也可通過其他途徑下載,網(wǎng)上有很多共享的資源。
這里選擇第二種方式的(2)方法,選擇源碼所在目錄(即圖四下載源代碼目錄所在路徑),如圖五
點擊“OK”按鈕,此時,Activity文件便能夠查看源代碼了,如圖六。
這樣就大功告成了?。。?/p>
當(dāng)前文章:android的源代碼,android app源碼
瀏覽路徑:http://weahome.cn/article/dscccds.html