android 程式碼混淆 proguard 指令碼 proguard.cfg

來源:互聯網
上載者:User

android 代碼混淆1 proguard.cfg,這就是混淆所需的proguard指令碼啊。 其代碼如下: [java]  view plain  -optimizationpasses 5   -dontusemixedcaseclassnames   -dontskipnonpubliclibraryclasses   -dontpreverify   -verbose   -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*   -keep public class * extends android.app.Activity   -keep public class * extends android.app.Application   -keep public class * extends android.app.Service   -keep public class * extends android.content.BroadcastReceiver   -keep public class * extends android.content.ContentProvider   -keep public class com.android.vending.licensing.ILicensingService   -keepclasseswithmembernames class * {       native <methods>;   }   -keepclasseswithmembernames class * {       public <init>(android.content.Context, android.util.AttributeSet);   }   -keepclasseswithmembernames class * {       public <init>(android.content.Context, android.util.AttributeSet, int);   }   -keepclassmembers enum * {       public static **[] values();       public static ** valueOf(java.lang.String);   }   -keep class * implements android.os.Parcelable {     public static final android.os.Parcelable$Creator *;   }    從指令碼中可以看到,混淆中保留了繼承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本組件。並保留了所有的Native變數名及類名,所有類中部分以設定了固定參數格式的建構函式,枚舉等等。(詳細資料請參考<proguard_path>/examples中的例子及注釋。)2 在工程的"default.properties"中添加這樣一句話“proguard.config=proguard.cfg”  打包簽名後的.apk就是混淆的,其實我們只要做一步就可以了就是在"default.properties"中添加這樣一句話“proguard.config=proguard.cfg”就可以了。 出現錯誤:[INFO] Warning: there were 294 unresolved references to classes or interfaces.[INFO]          You may need to specify additional library jars (using '-libraryjars').[INFO] Warning: there were 3 unresolved references to program class members.      You should consider explicitly keeping the mentioned class members      (using '-keep' or '-keepclassmembers').[INFO]          Your input classes appear to be inconsistent.[INFO]          You may need to recompile them and try again.[INFO]          Alternatively, you may have to specify the option[INFO]          '-dontskipnonpubliclibraryclassmembers'.[INFO] java.io.IOException: Please correct the above warnings first.[INFO]  at proguard.Initializer.execute(Initializer.java:321)[INFO]  at proguard.ProGuard.initialize(ProGuard.java:211)[INFO]  at proguard.ProGuard.execute(ProGuard.java:86)[INFO]  at proguard.ProGuard.main(ProGuard.java:492)解決方案如下:解決方案找到了,在proguard.cfg檔案中加入-ignorewarnings就可以跳過這個錯誤了。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.