如何不预测Android / gradle依赖项

时间:2017-01-02 08:55:20

标签: android proguard

我想知道是否有更好的方法阻止proguard混淆我们的依赖项。 现在我们基本上手动保留所有依赖项(如果语句可能是冗余的,则有些因为它没有正确清理)。

这是我们的proguard文件的一部分,它试图保留我们的gradle依赖项所需的一切:

-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 class org.altbeacon.** {
       *;
}

# support library
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep public class * extends android.support.v4.app.ListFragment
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.support.v4.app.DialogFragment
-keep public class * extends android.support.v4.app.FragmentActivity

# Crittercism
-keep public class com.crittercism.**
-keepclassmembers public class com.crittercism.*
{
    *;
}

# keep logback-android logs
-keep class ch.qos.** { *; }
-keep class org.slf4j.** { *; }

# ZBar / QRCode-scanner
-keep class net.sourceforge.zbar.** { *; }

这是我们的gradle依赖项:

compile('de.keyboardsurfer.android.widget:crouton:1.8.4@aar')
compile files('app/libs/zbar.jar')
compile 'com.google.android.gms:play-services:9.0.1'
compile 'com.android.support:multidex:1.0.0'
compile 'org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.0'
compile 'com.google.guava:guava:14.0.1'
compile 'com.google.protobuf:protobuf-java:2.4.1'
compile 'org.slf4j:slf4j-api:1.7.0'

现在我觉得可能有一些选项可以告诉proguard只是为了模糊我的应用程序中的类。但是我找不到任何东西。 我找到了-libraryjars,但据我所知,这不适用于此。

我现在提出的最好的是以下com.mycompany.myfirstapp是我的应用程序包:

-keep class !com.mycompany.myfirstapp.** { *; }

这是要走的路还是有人知道一个更方便的选择? 我不需要混淆或缩小我的依赖项,我也不想指定每个(也许忘记一个)。

这不仅对我的应用程序很重要,而且我们公司也提供和SDK,所以我想给我们的客户提供一些指导,这些指导似乎有时会与proguard斗争。

0 个答案:

没有答案