Android開發人員指南(9) —— ProGuard

來源:互聯網
上載者:User

前言

  本章內容為開發人員指南(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檔案,該檔案比較難進行逆向工程。因此,當你的應用程式對安全敏感(要求高),例如當你html">授權應用程式的時候,混淆器是一種重要的保護手段。

混淆器被整合在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

聯繫我們

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