Intereting Posts
TextView: добавление текста после многоточия или изменение эллипсиса Поделиться изображением с URL через приложение Twitter – Android Как получить высоту строки состояния и панели кнопок софт-клавиш? Как добавить контакт с именем и фамилией с помощью намерения Ошибка при импорте проекта андроида («Неверное местоположение» или «Причина: неожиданный конец данных блока») Proguard обфускает имена операций в манифесте объединенной библиотеки Android – пользовательский интерфейс для переноса текста Метод Android onClick не работает на пользовательском представлении Как публиковать частное приложение для Android бета-версии на рынке? Ошибка GameHelper на onConnectionFailed () Студия Android – развертывание apk версии вместо отладки Помощь в первой активности Android Как избежать httpsURLConnection.getInputStream () в Android, зависающем, если указаны неверные учетные данные? Отключить инкрементную сборку для kapt Mp4parser запускается на устройстве из Android Studio, но сбой при установке APK вручную

* Vs ** vs *** в Proguard?

В чем разница между подстановочными знаками * , ** и *** в Proguard? Например:

 -keep class com.mypackage.* 

против

 -keep class com.mypackage.** 

против

 -keep class com.mypackage.*** 

 * matches any part of a method name. OR matches any part of a class name not containing the package separator. ** matches any part of a class name, possibly containing any number of package separators. *** matches any type (primitive or non-primitive, array or non-array). 

Обратите внимание, что подстановочные символы и * никогда не будут соответствовать примитивным типам. Кроме того, только подстановочные знаки * будут соответствовать типам массива любого измерения. Например, « get * ()» соответствует "java.lang.Object getObject()" , но не "float getFloat()" , ни "java.lang.Object[] getObjects()" .

 * matches any part of a filename not containing the directory separator. ** matches any part of a filename, possibly containing any number of directory separators.