Android 混淆後的代碼調試

來源:互聯網
上載者:User

標籤:一個   注意   tac   txt   too   儲存   linu   proguard   cat   

ProGuard的輸出檔案及用處

混淆之後,會給我們輸出一些檔案,在gradle方式下是在<project_dir>/build/proguard/目錄下,ant是在<project_dir>/bin/proguard目錄,eclipse構建在<project_dir>/proguard目錄影。
分別有以下檔案:
+ dump.txt 描述apk檔案中所有類檔案間的內部結構。
+ mapping.txt 列出了原始的類,方法,和欄位名與混淆後代碼之間的映射。
+ seeds.txt 列出了未被混淆的類和成員
+ usage.txt 列出了從apk中刪除的代碼

當我們發布的release版本的程式出現bug時,可以通過以上檔案(特別時mapping.txt)檔案找到錯誤原始的位置,進行bug修改。同時,可能一開始的proguard配置有錯誤,也可以通過錯誤記錄檔,根據這些檔案,找到哪些檔案不應該混淆,從而修改proguard的配置。

注意:重新release編譯後,這些檔案會被覆蓋,所以沒吃發布程式,最好都儲存一份設定檔。

調試Proguard混淆後的程式

上面說了輸出的幾個檔案,我們在改bug時可以使用,通過mapping.txt,通過映射關係找到對應的類,方法,欄位等。

另外Proguard檔案中包含retrace指令碼,可以將一個被混淆過的堆疊追蹤資訊還原成一個可讀的資訊,window下時retrace.bat,Linux和mac是retrace.sh,在<sdk_root>/tools/proguard/檔案夾下。文法為:

retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]

例如:

retrace.bat -verbose mapping.txt obfuscated_trace.txt

如果你沒有指定<stacktrace_file>,retrace工具會從標準輸入讀取。

Android 混淆後的代碼調試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.