Skip to content

Grigory-Rylov/android-performance-test

Repository files navigation

Утилита позволяет замерить производительность 2х кусков кода на android устройстве.

Консольное приложение:

  1. Ищет исходники в папке in : в imports1.kt импорты первого тестируемого куска исходного кода в source1.kt сам первый тестируемый кусок кода аналогично imports2.kt и source2.kt для второго тестируемого куска кода.

  2. Собирает RELEASE сборку

  3. Ищет первое попавшееся подключенное android-устройство и запускает на нем оба куска кода по 500000 раз, делая замеры.

  4. В конце запуска в консоль выводится: название устройства : результаты первого куска кода vs результаты второго в мс.

Основной класс, который запускает все замеры - PerformanceLauncher.

Режим сравнения 2х apk

  1. Нужно создать config.json с конфигурацией запусков
{
  "appId": "ApplicationId приложения",
  "startActivityName": "Стартовая Activity приложения, либо пустая строка если нужна произвольная adb shell команда",
  "startActivityAdbShellCommand": "Adb shell команда для старта Activity"
  "measurementCount": Количество запусков на каждую сборку apk (не включая первый dry запуск),
  "measurementName1": "Название замера первой apk",
  "measurementName2": "Название замера второй apk",
  "shouldDeleteBeforeInstall": true - если нужно удалить приложение перед установкой новой apk, иначе - false,
  "apkPath1": "Путь к apk1",
  "apkPath2": "Путь к apk2",
  "logcatFilter": "Тэг, используемый для фильтрации логов",
  "logcatValuesRegexPattern": "Regex паттер, должен иметь минимум 2 группы, первая для имени замера, вторая для значения",
  "stopDryRunParameterName": "Стоп слово для завершения первого dry запуска, значения которого не учитываются",
  "lastParameterName": "Названия последнего замера, после которого можно остановить приложение",
  "permissions": [Список permission которые нужно дать приложению после установки]
}

Для построения графиков используется библиотека https://echarts.apache.org/en/index.html

About

Measures performance between two peace of source code

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published