2013-07-13 29 views
0

我試圖保證我的代碼這次,因爲我有我的一些應用程序在那裏複製!但我不似乎知道正確的方式做的ProGuard,IV甚至嘗試在線網站加密,但它似乎沒有工作,我添加此到project.properties還可以訪問proguard apk嗎?

要啓用ProGuard的後縮小並混淆您的代碼,取消註釋 (可用屬性:sdk.dir,user.home): proguard.config = $ {sdk.dir} /tools/proguard/proguard-android.txt:proguard-project.txt

我仍然可以使用dex2jar訪問我的java文件!任何人都知道一種方法來保護java android代碼?

+0

是的,您可以在proguard之後訪問java文件,但它非常複雜且易於理解流程。 – Nas

回答

0

當您執行發佈版本(Eclipse中的導出選項)時,代碼將被混淆。

您還可以將proguard配置保存在proguard.cfg中與project.properties相同的目錄中。通過這種方式,您可以使用某些項目特定的設置修改文件。

  • project.properties
# Project target. 
target=android-15 

#Proguard config 
proguard.config=proguard.cfg 
  • proguard.cfg(在相同的目錄中project.properties)
-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 * extends android.app.backup.BackupAgentHelper 
-keep public class * extends android.preference.Preference 
-keep public class com.android.vending.licensing.ILicensingService 

-keepclasseswithmembernames class * { 
    native <methods>; 
} 

-keepclasseswithmembers class * { 
    public <init>(android.content.Context, android.util.AttributeSet); 
} 

-keepclasseswithmembers class * { 
    public <init>(android.content.Context, android.util.AttributeSet, int); 
} 

-keepclassmembers class * extends android.app.Activity { 
    public void *(android.view.View); 
} 

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

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

-assumenosideeffects class android.util.Log { 
    public static *** d(...); 
    public static *** v(...); 
} 
+0

我做到了這一點,仍然沒有,我仍然可以用dex2jar訪問它,任何想法? – Cairoeditor

+0

你有項目屬性中的以下行嗎? #Proguard配置 proguard.config = proguard.cfg –

+0

NOP,但我確實有這個#爲ProGuard的萎縮,混淆你的代碼,取消這個(可用的屬性:sdk.dir,的user.home): #proguard .config = $ {sdk.dir} /tools/proguard/proguard-android.txt:proguard-project.txt – Cairoeditor