<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 147  文章 - 71  trackbacks - 0
    <2009年11月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    常用鏈接

    留言簿(1)

    隨筆分類(146)

    隨筆檔案(147)

    文章分類(28)

    文章檔案(28)

    喜歡的Blog

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    ProGuard是一個(gè)免費(fèi)的java類文件壓縮,優(yōu)化,混淆器.它探測(cè)并刪除沒有使用的類,字段,方法和屬性.它刪除沒有用的說明并使用字節(jié)碼得到最大優(yōu)化.它使用無意義的名字來重命名類,字段和方法.
     
    ProGuard的使用是為了:
     
    1.創(chuàng)建緊湊的代碼文檔是為了更快的網(wǎng)絡(luò)傳輸,快速裝載和更小的內(nèi)存占用.
    2.創(chuàng)建的程序和程序庫很難使用反向工程.
    3.所以它能刪除來自源文件中的沒有調(diào)用的代碼
    4.充分利用java6的快速加載的優(yōu)點(diǎn)來提前檢測(cè)和返回java6中存在的類文件.
     
    參數(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è)置源文件中給定的字符串常量

     因?yàn)槲覀冮_發(fā)的是webwork+spring+hibernate的架構(gòu)的項(xiàng)目,所有需要很詳細(xì)的配置。(經(jīng)過n次失敗后總結(jié))

     Example:

        -injars <project>.jar

        -outjars <project>_out.jar 

        -libraryjars <java.home>/lib/rt.jar

        -libraryjars <project.home>/webroot/WEB-INF/lib/webwork.jar

        .......

         # 保留實(shí)現(xiàn)Action接口類中的公有的,友好的,私有的屬性 和 公有的,友好的方法。其它的全部壓縮,優(yōu)化,混淆。

        # 因?yàn)榕渲梦募械念惷且粋€(gè)完整的類名,如果經(jīng)過處理后就有可能找不到這個(gè)類。

        # 屬性是jsp頁面所需要的,如果經(jīng)過處理jsp頁面就無法得到action中的數(shù)據(jù)。

        -keep public class * implements com.opensymphony.xwork.Action{

            public protected private <fields>;

            public protected <methods>;

        }

         # 保留實(shí)現(xiàn)了Serializable接口類中的公有的,友好的,私有的成員(屬性和方法)

        # 這個(gè)配置主要是對(duì)應(yīng)實(shí)體類的配置。

        -keep public class * implements java.io.Serializable{

            public protected private *;

        } 

    然后在命行端輸入:proguard @配置文件  

    總結(jié):

        proguard在處理web application方面還行,但不是很完美。如果的框架設(shè)計(jì)的不是很好的話配置加多不說,處理效果也是很好。在簡(jiǎn)單說一個(gè)jocky,它在處理桌面的程序應(yīng)該時(shí)較完美的。如果處理應(yīng)用了spring框架的程序我想是不可能的。

    posted on 2009-11-30 20:32 飛翔天使 閱讀(808) 評(píng)論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 免费a级毛片18以上观看精品| 亚洲国产精品激情在线观看| 亚洲欧美日韩中文字幕在线一区| 国产不卡免费视频| 久久免费视频网站| 亚洲人AV在线无码影院观看| 中文亚洲成a人片在线观看| 国产高清不卡免费在线| 老湿机一区午夜精品免费福利| 亚洲大片在线观看| 国产在线观看免费完整版中文版 | 亚洲国产另类久久久精品黑人| 亚洲免费在线观看视频| 另类图片亚洲校园小说区| 青青草原精品国产亚洲av| 免费一看一级毛片| 2015日韩永久免费视频播放| 狼人大香伊蕉国产WWW亚洲| 久久香蕉国产线看观看亚洲片| 国产一级淫片视频免费看| 最刺激黄a大片免费网站| 成人免费网站久久久| 亚洲一区二区三区在线网站 | 亚洲AV无码专区在线电影成人| 亚洲国产精品无码AAA片| 国产成人综合久久精品免费| 99精品视频在线观看免费播放| 久久久亚洲精华液精华液精华液| 亚洲自偷自偷精品| 亚洲日韩精品无码专区网址| 免费高清av一区二区三区| 最近中文字幕免费2019| 中国人免费观看高清在线观看二区| 中文无码亚洲精品字幕| 久久精品国产亚洲AV无码娇色| 中文字幕亚洲第一| 四虎永久在线精品免费观看地址| 1000部国产成人免费视频| 精品成人免费自拍视频| 国产va免费精品| 黄网站在线播放视频免费观看|