У меня есть проект библиотеки Android со следующей структурой:
- com.domain
------------.internal //internal classes of the library
------------.thirdPartyLib //3rd party library package renamed
------------.library.publicclasses //All the public classes of the library
Идея состоит в том, чтобы настроить progrard на:
- Don't remove any unused classes (since it is a library)
- Obfuscate and optimize everything (including class and methods names) except the classes under **publicclasses** that should keep their names and public elements unchanged
В настоящее время мой конфигурационный файл proguard:
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-keep,allowobfuscation class com.domain.** {*;}
-keep class com.domain.library.publicclasses.** {public *;}
-keep class com.domain.library.publicclasses.Foo {public protected *;}
Результат этой конфигурации:
- com.domain.library.publicclasses //All the public classes of the library
- a.a.a /// all the internal and thirdPartyLib classes
Моя проблема в том, что a.a.a
классы сталкиваются с другими обфусцированными классами библиотеки, поэтому я хотел бы, чтобы структура окончательного класса тоже была
- com.domain.library
--------------------.publicclasses //All the public classes of the library
--------------------.a /// all the internal and thirdPartyLib classes
Сохранение запутанных классов в моем домене, чтобы они не могли столкнуться.
Как мне этого добиться?