Android開發者指南(9) —— ProGuard – Android移動開發技術文章_手機開發 Android移動開發教學課程

前言

  本章內容為開發者指南(Dev Guide)/Developing/Tools/ProGuard,本章內容為”混淆器”,版本為Android3.0 r1,翻譯來自:”Jim”,歡迎與他交流:”litaojun@gmail.com”,再次感謝”Jim” !期待你一起參與翻譯Android的相關資料,聯系我over140@gmail.com。

原文


         http://developer.android.com/guide/developing/tools/proguard.html


 


混淆器(ProGuard)


  在本文中(In this document)


    Enabling ProGuard


    Configuring ProGuard


    Decoding Obfuscated Stack Traces


      Debugging considerations for published applications


  參見


    ProGuard Manual »


    ProGuard ReTrace Manual »


混淆器通過刪除從未用過的代碼和使用晦澀名字重命名類、字段和方法,對代碼進行壓縮,優化和混淆。結果是一個比較小的.apk文件,該文件比較難進行逆向工程。因此,當你的應用程序對安全敏感(要求高),例如當你授權應用程序的時候,混淆器是一種重要的保護手段。


混淆器被集成在android 構建系統中,所以你不必手動調用它。同時混淆器僅在發佈模式下進行構建應用程序的時候才會運行起來,所以在調試模式下構建程序時,你不必處理混淆代碼。讓混淆器運行起來是可選擇的,但是推薦選上。


這個文檔描述瞭怎樣啟用並配置混淆器,以及使用跟蹤(retrace)工具對混淆的堆棧跟蹤信息(stack traces)進行解碼。


 


 


啟用混淆器Enabling ProGuard


         當你新建瞭一個Android工程之後,一個proguard.cfg文件會在工程的根目錄下自動創建。這個文件定義瞭混淆器是怎樣優化和混淆你的代碼的,所以懂得怎樣根據你的需要來定制是非常重要的。缺省的配置文件僅覆蓋到瞭通常情況,所以根據你的需求,很可能需要編輯它。接下來的內容是關於通過定制混淆器配置文件來對混淆器配置


         為瞭讓啟用混淆器作為Ant或者Eclipse構建過程中一部分,可以在<project_root>/default.properties文件中,設置proguard.config屬性。路徑可以是絕對路徑或者工程根目錄的相對路徑。


         如果你讓proguard.cfg文件在缺省位置(工程的根目錄),你可以像這樣指定位置:

proguard.config=proguard.cfg


         同樣,你可以把該文件放到任意的位置,並指定它的絕對路徑。

proguard.config=/path/to/proguard.cfg


         當你在發佈模式下,或者通過運行ant release,或者通過使用Eclipse中的Export Wizard構建你的應用程序的時候,構建系統都會自動地去檢查proguard.config屬性是否被設置瞭。如果被設置瞭,混淆器在把所有東西打包成.apk文件之前,自動地對應用程序字節碼進行混淆處理。而在調試模式中構建則不會調用混淆器,因為那樣調試會更加繁重。


         運行混淆器之後輸出的文件有:


         dump.txt


                   描述.apk包中所有class文件的內部結構。


         mapping.txt


<P align=le

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *