Android 如何为远程服务库编写proguard配置

Android 如何为远程服务库编写proguard配置,android,eclipse,class,proguard,aidl,Android,Eclipse,Class,Proguard,Aidl,我将支持sdk给其他用户。导出jar文件对其他应用程序很好。 但事实上,我需要对这个sdk文件进行proguard,我已经编写了一个proguard配置文件 -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!cla

我将支持sdk给其他用户。导出jar文件对其他应用程序很好。 但事实上,我需要对这个sdk文件进行proguard,我已经编写了一个proguard配置文件

    -optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-injars libs/sdk.jar
-outjars libs/SDK.jar

# we need line numbers in our stack traces otherwise they are pretty useless
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable

-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
-keep class android.support.v4.** { *; }
-keep interface android.support.v4.** { *; }
-keep interface org.apache.** { *; }

-keepclasseswithmembernames class com.ctv.android.sdk.** {*;}

-keep class **.R$* { *; }

-keepclassmembers class **.R$* {
public static <fields>;
}

-dontwarn org.apache.**
-dontwarn android.support.v4.**

-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 *;
}
-keep public class * extends android.os.IInterface

-keepattributes Signature
-keepattributes *Annotation*
内部类,这是非常重要的

二,

-keep class com.ctv.android.sdk.IP2PService$**{
公众;
公众;
}
-保留com.ctv.android.sdk.IP2PService类$Stub.*{
公众;
公众;
}
-保留接口com.ctv.android.sdk.IP2PService$**{*;}

仅此而已。

谢谢您演示如何操作。我不知道为什么没人觉得这有用。也许你应该把答案放进去,而不是把它放在问题里面?谢谢你的回答。这真的很有帮助。请单独提及您的答案,以便更好地理解。
-renamesourcefileattribute SourceFile
-keepattributes Exceptions,InnerClasses,Signature,SourceFile,LineNumberTable,*Annotation*
-keep class com.ctv.android.sdk.IP2PService$** {
    public <fields>;
    public <methods>;
}

-keep class com.ctv.android.sdk.IP2PService$Stub.** {
    public <fields>;
    public <methods>;
}

-keep interface com.ctv.android.sdk.IP2PService$** {*;}