Я использовал ворс (Analyze-> Проверка кода...) и обнаружил неиспользуемые методы и ресурсы. Все неиспользуемые ресурсы удалены с помощью Refractor-> Удалить неиспользуемые ресурсы, но не найдено ни одной опции, подобной этой, для удаления классов и методов Java. Есть ли какая-либо функция в андроид студии или любой плагин, который может удалить все классы Java, методы, которые не используются в коде для сохранения рефракции вручную?
Удалите все неиспользуемые классы, методы из проекта Android Studio
Ответ 1
Это может быть достигнуто с помощью встроенной инспекции Java | Declaration redundancy | Unused declaration
Java | Declaration redundancy | Unused declaration
Java | Declaration redundancy | Unused declaration
.
Чтобы запустить его для всего проекта, зайдите в Analyze → Run inspection by name...
, введите Unused declaration
и выберите желаемую область. Затем внимательно проверьте вывод и отметьте некоторые классы как точки входа, если это необходимо.
Теперь вы можете выбрать узел Unused declaration
в списке и выполнить действие Safe delete
для всех неиспользованных объявлений.
Для Kotlin есть аналогичное обследование Kotlin | Redundant constructs | Unused symbol
Kotlin | Redundant constructs | Unused symbol
Kotlin | Redundant constructs | Unused symbol
Ответ 2
Android поставляется с ProGuard и может делать то, что вы хотите. Если вы используете Gradle в качестве системы сборки, вы можете добавить следующие строки в свой build.gradle
файл:
android {
// ... other configurations
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt')
signingConfig signingConfigs.release
}
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules-debug.pro'
}
}
}
В вашем файле proguard-rules-debug.pro
должна содержаться только одна строка
-dontobfuscate
С помощью этих дополнений ваша версия сборки будет сжата и запутана, однако ваша сборка отладки будет уменьшаться, т.е. удаляется ненужный код. Обратите внимание, что ProGuard работает на сборке, а не на исходном коде.
Часто задаваемые вопросы ProGuard содержит дополнительную информацию о том, что он может сделать.