1. 程式人生 > >使用ProGuard混淆Android程式碼

使用ProGuard混淆Android程式碼

輸入輸出選項

-include {filename}    從給定的檔案中讀取配置引數  

-basedirectory {directoryname}    指定基礎目錄為以後相對的檔案名稱  

-injars {class_path}    指定要處理的應用程式jar,war,ear和目錄  

-outjars {class_path}    指定處理完後要輸出的jar,war,ear和目錄的名稱  

-libraryjars {classpath}    指定要處理的應用程式jar,war,ear和目錄所需要的程式庫檔案  

-dontskipnonpubliclibraryclasses    指定不去忽略非公共的庫類。  

-dontskipnonpubliclibraryclassmembers    指定不去忽略包可見的庫類的成員。 

保留選項  

-keep {Modifier} {class_specification}    保護指定的類檔案和類的成員  

-keepclassmembers {modifier} {class_specification}    保護指定類的成員,如果此類受到保護他們會保護的更好 

-keepclasseswithmembers {class_specification}    保護指定的類和類的成員,但條件是所有指定的類和類成員是要存在。  

-keepnames {class_specification}    保護指定的類和類的成員的名稱(如果他們不會壓縮步驟中刪除)  

-keepclassmembernames {class_specification}    保護指定的類的成員的名稱(如果他們不會壓縮步驟中刪除)  

-keepclasseswithmembernames {class_specification}    保護指定的類和類的成員的名稱,如果所有指定的類成員出席(在壓縮步驟之後)  

-printseeds {filename}    列出類和類的成員-keep選項的清單,標準輸出到給定的檔案  

壓縮選項

-dontshrink    不壓縮輸入的類檔案  

-printusage {filename}  

-whyareyoukeeping {class_specification}      

優化選項

-dontoptimize    不優化輸入的類檔案  

-assumenosideeffects {class_specification}    優化時假設指定的方法,沒有任何副作用  

-allowaccessmodification    優化時允許訪問並修改有修飾符的類和類的成員  

混淆選項

-dontobfuscate    不混淆輸入的類檔案  

-printmapping {filename}  

-applymapping {filename}    重用對映增加混淆  

-obfuscationdictionary {filename}    使用給定檔案中的關鍵字作為要混淆方法的名稱  

-overloadaggressively    混淆時應用侵入式過載  

-useuniqueclassmembernames    確定統一的混淆類的成員名稱來增加混淆  

-flattenpackagehierarchy {package_name}    重新包裝所有重新命名的包並放在給定的單一包中  

-repackageclass {package_name}    重新包裝所有重新命名的類檔案中放在給定的單一包中  

-dontusemixedcaseclassnames    混淆時不會產生形形色色的類名  

-keepattributes {attribute_name,...}    保護給定的可選屬性,例如LineNumberTable, LocalVariableTable, SourceFile, Deprecated, Synthetic, Signature, and InnerClasses.  

-renamesourcefileattribute {string}    設定原始檔中給定的字串常量

常規選項

--verbose    記錄處理過程中的詳細資訊

-dontwarn { class_specification }    不能解析的引用或其他重要的出錯不給出提示

-ignorewarnings    列印不能解析的引用或其他重要的出錯資訊,但是處理不中斷