咖啡伴侶

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

          proguard ant 混淆

          Posted on 2011-08-24 14:39 oathleo 閱讀(2500) 評(píng)論(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" />
                      
                      
          <!--保護(hù)public字段-->
                      
          <arg value="-keepclassmembers public class * { public protected *; }" />
                      
          <!--保護(hù)泛型-->
                      
          <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>




          參數(shù):

          -include {filename}    從給定的文件中讀取配置參數(shù)

          -basedirectory {directoryname}    指定基礎(chǔ)目錄為以后相對(duì)的檔案名稱

          -injars {class_path}    指定要處理的應(yīng)用程序jar,war,ear和目錄

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

          -libraryjars {classpath}    指定要處理的應(yīng)用程序jar,war,ear和目錄所需要的程序庫文件

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

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


          保留選項(xiàng)
          -keep {Modifier} {class_specification}    保護(hù)指定的類文件和類的成員

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

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

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

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

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

          -printseeds {filename}    列出類和類的成員-keep選項(xiàng)的清單,標(biāo)準(zhǔn)輸出到給定的文件

          壓縮
          -dontshrink    不壓縮輸入的類文件

          -printusage {filename}

          -whyareyoukeeping {class_specification}    

          優(yōu)化
          -dontoptimize    不優(yōu)化輸入的類文件

          -assumenosideeffects {class_specification}    優(yōu)化時(shí)假設(shè)指定的方法,沒有任何副作用

          -allowaccessmodification    優(yōu)化時(shí)允許訪問并修改有修飾符的類和類的成員

          混淆
          -dontobfuscate    不混淆輸入的類文件

          -printmapping {filename}

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

          -obfuscationdictionary {filename}    使用給定文件中的關(guān)鍵字作為要混淆方法的名稱

          -overloadaggressively    混淆時(shí)應(yīng)用侵入式重載

          -useuniqueclassmembernames    確定統(tǒng)一的混淆類的成員名稱來增加混淆

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

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

          -dontusemixedcaseclassnames    混淆時(shí)不會(huì)產(chǎn)生形形色色的類名

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

          -renamesourcefileattribute {string}    設(shè)置源文件中給定的字符串常量
          主站蜘蛛池模板: 乌审旗| 台湾省| 红原县| 武邑县| 延津县| 礼泉县| 建平县| 广饶县| 平江县| 福海县| 昌宁县| 上虞市| 满洲里市| 嘉定区| 旅游| 临朐县| 武川县| 磐安县| 达州市| 遵化市| 沁阳市| 卢龙县| 武川县| 巩义市| 武清区| 盐边县| 晋城| 柳州市| 积石山| 枞阳县| 霍林郭勒市| 嘉峪关市| 海淀区| 乐亭县| 太保市| 镇平县| 辉县市| 鹿泉市| 读书| 县级市| 莱阳市|