咖啡伴侶

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

          proguard ant 混淆

          Posted on 2011-08-24 14:39 oathleo 閱讀(2505) 評論(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}    設置源文件中給定的字符串常量
          主站蜘蛛池模板: 敦化市| 雅江县| 南陵县| 昌图县| 秦安县| 柘城县| 共和县| 克什克腾旗| 盐池县| 平定县| 泊头市| 页游| 衡阳县| 宁陵县| 常州市| 南京市| 营口市| 和硕县| 蓬安县| 上高县| 疏勒县| 焦作市| 高青县| 山西省| 会理县| 泗洪县| 洛南县| 海门市| 广南县| 原平市| 夏邑县| 六枝特区| 黄浦区| 华坪县| 隆林| 和林格尔县| 太康县| 普洱| 五家渠市| 宽城| 略阳县|