Как заставить Proguard запутывать имена классов

Я бы хотел, чтобы proguard скрывал имена классов. У меня есть эта строка в Proguard.cfg

-keepclasseswithmembers class * {
public static <fields>;
}

-keepnames class * implements java.io.Serializable
-keep public class com.google.**

И я заметил, что не запутаны имена классов. Итак, запуская jdgui, я вижу com/test/abcd/ActualClass.java открытый класс ActualClassName расширяет Activity и т. д.

кроме того, я вижу методы, возвращающие настоящие имена классов. например

 ActualClassname aa();

и импортирует операторы типа

 import com.abcd.ActualClassName

Как заставить Proguard запутать само имя класса. Я вижу, что мои адаптеры не запутываются не только для действий. Ну, происходит обфускация, но не имена классов.

Предотвращают ли приведенные выше правила запутывание имен классов?

Обновление :С тех пор я удалил приведенные выше правила, и класс Utility, который ничего не расширяет от Android, не запутывается. Теперь мне интересно, существует ли какое-то неявное правило о сохранении имен классов классов, на которые ссылаются классы, которые сохраняются, как классы, производные от Activity? Классы, имена которых не запутываются, имеют несколько общих черт:

1 )Статические методы 2 )Импорт других типов, которые сохраняются, например, производные от активности или сериализуемые. 3 )У них есть методы с параметрами других классов (Некоторые из них, возможно, придется сохранить ).

Однако я нигде конкретно не требую, чтобы эти служебные классы были сохранены.

8
задан Code Droid 9 May 2012 в 18:40
поделиться