Как определить количество меток метода? - программирование
Подтвердить что ты не робот

Как определить количество меток метода?

Я сталкиваюсь с проблемами с моим приложением, имеющим слишком много методов.

В последнем посте в приведенной ниже ссылке плакат отправляет счетчик методов для своего приложения (с разбивкой по пакету). Я не могу найти, как я могу получить эту информацию для своего приложения, любые предложения?

https://code.google.com/p/android/issues/detail?id=20814

4b9b3361

Ответ 1

Я использую

cat build/dex/debug/classes.dex | head -c 92 | tail -c 4 | hexdump -e '1/4 "%d\n"'

Я получаю 55176. Предел 64k: D

Ответ 2

Чтобы получить отчет о подсчете метода для каждой сборки, сделайте следующее:

в app/build.gradle:

buildscript {
    repositories {
        mavenCentral() // or jcenter()
    }

    dependencies {
        classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.7.3'
    }
}

// make sure this line comes *after* you apply the Android plugin
apply plugin: 'com.getkeepsafe.dexcount'

Он покажет количество методов для каждого пакета, для вашего собственного проекта и библиотек, которые вы используете.

От: https://github.com/KeepSafe/dexcount-gradle-plugin

Ответ 3

Существует инструмент APK method count, который подсчитывает количество методов в вашем apk.

Существует также служба methodscount.com для проверки количества меток методов. Эта служба также имеет плагин Android Studio/IntelliJ, который анализирует зависимости вашей библиотеки Android и показывает, что методы считаются удобным подсказкой.

Ответ 5

Попробуйте использовать статический анализатор кода; Source Monitor, например, является бесплатным SW и имеет счет, который вы ищете.

Или, если вы предпочитаете делать это без дополнительных плагинов, попробуйте сделать это (только Eclipse):

  • Нажмите Ctrl-H (Поиск), затем выберите вкладку "Поиск по Java" (если она не появится, нажмите кнопку "Настроить..." в левом нижнем углу)
  • Поместите * в поле поиска
  • Выберите "Метод" в поле "Поиск"
  • Выберите "Объявления" в поле "Лимит до"
  • Выберите "Источники" в поле "Поиск в поле"
  • Выберите "Рабочее пространство" в поле "Область действия"
  • Нажмите "Поиск"

После завершения поиска вы увидите сообщение "XXXX declarations in..." в окне поиска и это будет ваш результат.

Надеюсь, что это поможет!

Ответ 8

Чтобы найти и использовать метод метода Android с поддержкой поддержки multidex:

find | grep classes.dex | xargs -I {} hexdump -e '"%d {}\n"' -s 0x58 -n 4 {}