Android Developers:ProGuard,androidproguard

來源:互聯網
上載者:User

Android Developers:ProGuard,androidproguard

ProGuard工具通過刪除未使用的代碼,使用語義模糊的名字重新命名類、欄位和方法的方式,減少、最佳化和混淆你的代碼。結果產生一個更小的,更難被反向工程的.apk檔案。因為ProGuard使你的應用程式更難反向工程,當你發布的應用程式使用對安全敏感功能的時候,使用它尤為重要。 

 

ProGuard已經被整合到Android的構建系統中,所以你不需要手動的調用它。ProGuard僅僅當你在release模式構建你的應用程式時運行,所以你不需要在Debug模式的時候處理被混淆的代碼。運行ProGuard是完全可選的,但是強烈推薦。 

 

這個文檔描述了如何啟動和配置ProGuard,以及使用retrace工具解碼被混淆的堆疊追蹤。 

 

啟動ProGuard 

————————————————————————————————————————————————————————————  

當你建立一個Android項目,在項目的根目錄下自動產生一個proguard.cfg檔案。這個檔案定義了ProGuard如何最佳化和混淆你的代碼,所以你知道如何根據你的需要定製它是非常重要的。預設的設定檔僅僅涵蓋一般情況,所以你很可能為了你自己的需求必須編輯它。閱讀下面Configuring ProGuard的章節瞭解定製ProGuard設定檔的資訊。 

 

為了啟動ProGuard使它作為Ant或者Eclipse構建的一部分,設定<project_root>/project.properties檔案中的proguard.config屬性。這個路徑可以是絕對路徑或者一個相對項目根目錄的路徑。 

 

注意:當使用Android Studio,你必須向你的gradle.build檔案添加構建類型。更多資訊,查閱Gradle Plug User Guid。 

 

如果你放置proguard.cfg檔案在它的預設位置(項目的跟目錄),你像這樣指定它的位置: 

proguard.config=proguard.cfg 

 

你也能將檔案移動到任意你想要的位置,並且指定它的絕對路徑: 

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

 

當你以Release模式構建你的應用程式,通過運行ant發布或者通過使用Eclipse的匯出嚮導,構建系統自動檢查是否proguard.config屬性是否設定。如果它設定了,ProGuard在把所有東西打包到.apk檔案之前自動處理應用程式位元組碼。在Debug模式不調用ProGuard,以為它使得調試更難處理。 

 

在ProGuard運行後輸出下面的檔案: 

 

dump.txt 

描述了在apk檔案所有class檔案的內部結構 

mapping.txt 
列出了原始和被混淆類,方法和成員之間名稱的映射。這個檔案當你從release構建收到Bug報告的時候非常重要,因為它將混淆的堆棧轉義回原來的類,方法,和成員名稱。更多資訊查閱Decoding Obfuscated Stack Traces。 

seeds.txt 
列出了沒有被混淆的類和成員。 

usage.txt 
列出了從.apk被刪除的代碼 

這些檔案被放置在下面的目錄: 

  • <project_root>/bin/proguard如果你使用Ant。 

  • <project_root>/proguard如果你使用Eclipse。 

注意:每次你在release模式運行一次構建,這些檔案都被ProGuard最新產生的檔案覆蓋。每次你發布你的應用程式儲存它們的複本,為了從你的release構建反混淆Bug報告。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.