咖啡伴侶

          呆在上海
          posts - 163, comments - 156, trackbacks - 0, articles - 2

          proguard ant 混淆

          Posted on 2011-08-24 14:39 oathleo 閱讀(2500) 評論(0)  編輯  收藏 所屬分類: Android
              <property name="proguard-home" value="D:/proguard4.4/lib"/>
              
          <property name="android-jar" value="D:\android3.0\android-sdk_r12-windows\android-sdk-windows\platforms\android-8\android.jar"/>
          //指定 proguard 地址和 android地址


          <java jar="${proguard-home}/proguard.jar" fork="true" failonerror="true">
                      
          <jvmarg value="-Dmaximum.inlined.code.length=32" />
                      
          <arg value="-injars ${target_temp_jar}" />
                      
          <arg value="-outjars ${target_jar}" />
                      
          //第三方包
                      <arg value="-libraryjars ${android-jar}" />
                      
          <arg value="-libraryjars lib/android_script.jar" />

                      
          <!--  <arg value="-libraryjars ${external-libs}/*.jar"/>-->
                      
          <arg value="-dontpreverify" />
                      
          <arg value="-dontoptimize" />
                      
          <arg value="-dontusemixedcaseclassnames" />
                      
          <arg value="-repackageclasses ''" />
                      
          <arg value="-allowaccessmodification" />
                      
                      
          <!--保護public字段-->
                      
          <arg value="-keepclassmembers public class * { public protected *; }" />
                      
          <!--保護泛型-->
                      
          <arg value="-keepattributes Signature" />

                      
          <arg value="-keep public class com.xxxcore.*" />
                      
          <arg value="-keep public class com.xxxviewer.**" />
           
                      
          <arg value="-optimizationpasses 7" />
                      
          <arg value="-verbose" />
                      
          <arg value="-dontskipnonpubliclibraryclasses" />
                      
          <arg value="-dontskipnonpubliclibraryclassmembers" />
                  
          </java>

                  
          <signjar jar="${target_jar}" keystore="${sign.keystore}" alias="${sign.alias}" keypass="${sign.keypass}" storepass="${sign.storepass}"/>
                  
          <delete file="${target_temp_jar}" />
              
          </target>




          參數:

          -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}    設置源文件中給定的字符串常量
          主站蜘蛛池模板: 扶风县| 嘉义市| 铅山县| 屯门区| 龙门县| 城口县| 莎车县| 镇沅| 旺苍县| 昭觉县| 小金县| 澄江县| 东山县| 麦盖提县| 砚山县| 巩义市| 台东县| 漳平市| 疏勒县| 海林市| 城步| 北宁市| 洛川县| 井陉县| 峡江县| 建水县| 汽车| 红桥区| 宜兴市| 驻马店市| 阳江市| 阳谷县| 祥云县| 牟定县| 兴文县| 泗洪县| 偏关县| 石渠县| 高青县| 太保市| 江津市|