クラス名を難読化するようにプロガードしたいと思います。Proguard.cfg にこの行があります
-keepclasseswithmembers class * {
public static <fields>;
}
-keepnames class * implements java.io.Serializable
-keep public class com.google.**
そして、難読化されていないのはクラス名であることに気付きました。したがって、jdguiを実行すると、com/test/abcd/ActualClass.java public class ActualClassName extends Activity などが表示されます
さらに、実際のクラス名を返すメソッドが表示されます。お気に入り
ActualClassname aa();
そして、次のようなステートメントをインポートします
import com.abcd.ActualClassName
Proguard でクラス名自体を難読化するにはどうすればよいですか。アダプターが難読化されていないのは、アクティビティだけではありません。難読化が行われていますが、クラス名はありません。
上記のルールは、クラス名が難読化されるのを防ぐものですか?
更新: 上記のルールを削除したため、Android から何も拡張しない Utility クラスは難読化されていません。アクティビティ派生クラスのように保持されているクラスから参照されるクラスのクラス名を保持することについて、暗黙のルールがあるかどうか疑問に思っていますか? 名前が難読化されていないクラスには、いくつかの共通点があります。
1) 静的メソッド 2) アクティビティから派生したものやシリアライズ可能なもののように保持される他の型のインポート。3) 他のクラスのパラメーターを持つメソッドがあります (一部は保持する必要がある場合があります)。
ただし、これらのユーティリティ クラスを維持するように特に要求しているところはありません。