2016-11-03 3 views
1

私のアンドロイドスタジオでプロガードを使用しています。私はproguard-rules.proファイルにProguardを実装しました。しかし、apkをリリースした後、コードは難読化されていません。ここでProguardでコードがわかりにくくならない?

は、このために問題になる可能性がどのようなproguard-rules.proファイル

# Add project specific ProGuard rules here. 
# By default, the flags in this file are appended to flags specified 
# in /home/chitra/Android/Sdk/tools/proguard/proguard-android.txt 
# You can edit the include path and order by changing the proguardFiles 
# directive in build.gradle. 
# 
# For more details, see 
# http://developer.android.com/guide/developing/tools/proguard.html 

# Add any project specific keep options here: 

# If your project uses WebView with JS, uncomment the following 
# and specify the fully qualified class name to the JavaScript interface 
# class: 
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { 
# public *; 
#} 

-optimizationpasses 5 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-dontskipnonpubliclibraryclassmembers 
-dontpreverify 
-verbose 
-dump class_files.txt 
-printseeds seeds.txt 
-printusage unused.txt 
-printmapping mapping.txt 
-printmapping out.map 
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 

-allowaccessmodification 
-keepattributes *Annotation*,Signature,InnerClasses 
-renamesourcefileattribute SourceFile 
-keepattributes SourceFile,LineNumberTable 
-keepattributes InnerClasses 
-keepattributes Exceptions 
-dontoptimize 
-repackageclasses '' 
-dontwarn android.support.** 
-dontwarn org.apache.harmony.awt.** 
-dontwarn com.sun.mail.imap.protocol.** 
-dontwarn javax.activation.CommandInfo 
-dontwarn com.google.zxing.** 
-dontwarn com.actionsmicro.androidkit.ezcast.imp.googlecast.** 
-dontwarn org.apache.http.entity.mime.** 
-dontwarn com.thetransactioncompany.jsonrpc2.server.MessageContext 
-dontwarn com.actionsmicro.d.a.a 
-dontwarn okio.Okio.** 
-dontwarn okio.DeflaterSink.** 
-dontwarn java.nio.file.** 
-dontwarn retrofit2.** 
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 
-dontwarn android.support.design.** 

# The official support library. 
-keep class android.support.v4.app.** { *; } 
-keep interface android.support.v4.app.** { *; } 
-keep class android.support.v7.app.** { *; } 
-keep interface android.support.v7.app.** { *; } 
-keep class android.support.v7.widget.** { *; } 
-keep interface android.support.v7.widget.** { *; } 

# The official design library. 
-keep class android.support.design.** { *; } 
-keep interface android.support.design.** { *; } 
-keep public class android.support.design.R$* { *; } 

# Keep fragments 
-keep public class * extends android.support.v4.app.Fragment 
-keep public class * extends android.app.Fragment 

-keep public class * extends android.app.Activity 
-keep public class * extends android.support.v7.app.ActionBarActivity 
-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 * extends android.app.backup.BackupAgentHelper 
-keep public class * extends android.preference.Preference 
-keep public class com.android.vending.licensing.ILicensingService 

# EventBus 3.0 
-keep class de.greenrobot.event.** { *; } 
-keep interface de.greenrobot.event.** { *; } 

-keep class com.** { *; } 
-keep interface com.** { *; } 

# crashlytics android 
-keep class com.crashlytics.android.** { *; } 
-keep interface com.crashlytics.android.** { *; } 

# digits sdk android 
-keep class com.digits.sdk.** { *; } 
-keep interface com.digits.sdk.** { *; } 

# firebase, google services and gson 
-keep class com.google.** { *; } 
-keep interface com.google.** { *; } 

# square picasso 
-keep class com.square.picasso.google.** { *; } 
-keep interface com.square.picasso.** { *; } 

-keepnames class * implements java.io.Serializable 

-keepclassmembers class * implements java.io.Serializable { 
    static final long serialVersionUID; 
    private static final java.io.ObjectStreamField[] serialPersistentFields; 
    !static !transient <fields>; 
    !private <fields>; 
    !private <methods>; 
    private void writeObject(java.io.ObjectOutputStream); 
    private void readObject(java.io.ObjectInputStream); 
    java.lang.Object writeReplace(); 
    java.lang.Object readResolve(); 
} 

# Native Methods 

-keepclasseswithmembernames class * { 
    native <methods>; 
} 

# Android Support Library 

-keep class android.** {*;} 

# Button methods 

-keepclassmembers class * { 

public void *ButtonClicked(android.view.View); 

} 

# Reflection 

-keepclassmembers class com.elsinga.sample.proguard.SensorDescriptionFragment { 

public void updateFields(com.elsinga.sample.proguard.SensorData); 

} 

-keep class * implements android.os.Parcelable { 
    public static final android.os.Parcelable$Creator *; 
} 

-keepclassmembers enum * { 
    public static **[] values(); 
    public static ** valueOf(java.lang.String); 
} 

# Remove Logging 
-assumenosideeffects class android.util.Log { 
    public static *** e(...); 
    public static *** w(...); 
    public static *** wtf(...); 
    public static *** d(...); 
    public static *** v(...); 
} 

のですか?私にお知らせください。

答えて

0

理由は、ルール内で独自のコードを除外した可能性が高いためです。

コードで難読化が実行されていません。

質問からあなたのネームスペースを認識しませんが、次の行は、最初にcom.のものに影響します。

したがって、ネームスペースがcom.my.namespaceの場合、難読化から除外されます。

あなた自身のものと衝突しないように、次の行を削除するか、隠すべき名前空間を完全に定量化することを検討してください。

-keep class com.** { *; } 
-keep interface com.** { *; } 

更新:

また、あなたが書かれている活動を拡張するすべてのクラス、最も可能性が高いフラグメントなど、コードのすべての単一のページを維持しています。

# Keep fragments 
-keep public class * extends android.support.v4.app.Fragment 
-keep public class * extends android.app.Fragment 

-keep public class * extends android.app.Activity 
-keep public class * extends android.support.v7.app.ActionBarActivity 
-keep public class * extends android.app.Application 

これには正当な理由はありません。上記を削除してみてください。

+0

あなたが言及したコードを削除しました。しかし、まだそれは動作していません。 – Seenu69

+0

@ Seenu69プロガードファイルを書きましたか?またはどこかからコピーしますか?あなたはgradleビルドファイルでそれを有効にしましたか?無視するすべてのライブラリを使用していますか、それともすべての冗長コードですか? – Doomsknight

+0

@Doomskinght私はプロガードで言及したライブラリをすべて使用します。また、build.gradleファイルのproguardも有効にしました。 – Seenu69

関連する問題