/android-perftracking

Performance Tracking for Android Apps

Primary LanguageJavaMIT LicenseMIT

Performance Tracking

codecov CircleCI

Measure performance of android applications.

How it works

A gradle plugin instruments android applications code, adding measurement calls to the UI lifecycle, network connections and a few standard listeners. These measurement calls are collected by a runtime component and sent to a backend periodically.

The modules are:

Core

  • Annotations & configuration for instrumentation, packages core.annotations, core.base, core.detours, core.mixins and core.wrappers
  • Measurement collection & sending to backend, core package

Stubs

  • Stubs of and instrumented APIs

Plugin

  • Android Gradle Transformation that instruments the application code using ASM

Runtime

  • Fetches configuration from backend & starts collection of measurements
  • Runtime API for applications to start and prolong measurements and metrics

How to build it

$ git submodule init
$ git submodule update
$ ./gradlew Runtime:assemble Plugin:assemble \
    -PDEFAULT_CONFIG_URL_PREFIX="url to your configuration server" \
    -PDEFAULT_LOCATION_URL_PREFIX="url to your location server"

How to use it

Currently we do not host a public APIs but you can fork it and use your own (dummy) apis

Contributing

See Contribution guidelines