Для начала нужно:
ВАЖНО! При каждом обновлении в ерсии SDK настоятельно рекомендуется делать clean build
.
В вашем <project>/settings.gradle.kts
добавьте репозитории с плагином Трейсера и рантаймом Трейсера:
pluginManagement { repositories { // другие репозитории c вашими зависимостями mavenCentral() } } dependencyResolutionManagement { repositories { // другие репозитории c вашими зависимостями mavenCentral() } }
В вашем <project>/<app-module>/build.gradle.kts
настройте необходимые параметры (подробнее в разделе Настройки конфигурации):
plugins { id("ru.ok.tracer").version("1.1.0") } tracer { create("defaultConfig") { // См. в разделе _«Настройки»_ pluginToken = "PLUGIN_TOKEN" appToken = "APP_TOKEN" // Ваши параметры конфигурации (подробее см. выше) // Например: uploadMapping = true uploadNativeSymbols = true additionalLibrariesPath = projectDir.toString() + "/aVeryNonstandardLibsDirectory" } // Также можно задавать конфигурацию для каждого flavor, buildType, buildVariant. // Конфигурации наследуют defaultConfig. create("debug") { // Параметры... } create("demoDebug") { // Параметры... } } dependencies { implementation(platform("ru.ok.tracer:tracer-platform:1.1.0")) // Плагины независимы друг от друга. Можно подключать только те, // которые необходимы в данный момент. // Сбор и анализ крешей и ANR implementation("ru.ok.tracer:tracer-crash-report") // Сбор и анализ нативных крешей implementation("ru.ok.tracer:tracer-crash-report-native") // Сбор и анализ хипдапмов при OOM implementation("ru.ok.tracer:tracer-heap-dumps") // Анализ потребления дискового места на устройстве implementation("ru.ok.tracer:tracer-disk-usage") // Семплирующий профайлер implementation("ru.ok.tracer:tracer-profiler-sampling") // Систрейс implementation("ru.ok.tracer:tracer-profiler-systrace") }
В вашем Application.kt
реализуйте интерфейс HasTracerConfiguration
class MyApplication : Application(), HasTracerConfiguration { override val tracerConfiguration: List<TracerConfiguration> get() = listOf( CoreTracerConfiguration.build { // опции ядра трейсера }, CrashReportConfiguration.build { // опции сборщика крэшей }, CrashFreeConfiguration.build { // опции подсчета crash free }, HeapDumpConfiguration.build { // опции сборщика хипдампов при ООМ }, DiskUsageConfiguration.build { // опции анализатора дискового пространства }, SystraceProfilerConfiguration.build { // опции systrace-профайлера в продакшене }, SamplingProfilerConfiguration.build { // опции семплирующего профайлера }, ) }
Проперти HasTracerConfiguration.tracerConfiguration
будет запрошена ровно один раз при старте процесса до вызова Application.onCreate
но после Application.attachBaseContext
. В геттере уже можно обращаться к контексту приложения, но еще рано обращаться к тому, что проинициализируется в onCreate
.
Подробное описание опций:
CoreTracerConfiguration
— далее на этой страницеCrashReportConfiguration
и CrashFreeConfiguration
— на странице Crash и ANRHeapDumpConfiguration
— на странице Heap DumpsDiskUsageConfiguration
— на странице Disk UsageSystraceProfilerConfiguration
— на странице Systrace ProfilerSamplingProfilerConfiguration
- на странице Sampling ProfilerВ том редком случае, когда вы захотите сконфигурировать ядро трейсера в вашем проекте, нужно вернуть CoreTracerConfiguration
из HasTracerConfiguration
class MyApplication : Application(), HasTracerConfiguration { override val tracerConfiguration: List<TracerConfiguration> get() = listOf( CoreTracerConfiguration.build { // ваши опции }, ) }
Опции CoreTracerConfiguration.Builder
:
Опция | Описание |
---|---|
setApiUrl или provideApiUrl | Изменяет адреса api Tracer-а. Используйте с умом. |
setOverrideAppToken или provideOverrideAppToken | Переопределяет appToken из конфигурации gradle-плагина. Используйте с умом. |
setDebugUpload | Отвечает за включение/выключение загрузки данных в дебажной сборке приложения. По умолчанию загрузка данных выключена. |
setOverrideEnvironment | Переопределяет значение environment из конфигурации gradle-плагина. Используйте с умом. |
setInitialKey или setInitialKeys | Позволяет установить ключи для событий, как только проинициализиурется Трейсер. Используйте, если хотите определять значения ключей как можно раньше (пока в приложении ничего не успело случиться) |
setExperimentalMaxKeysCount | Позволяет установить максимальное количество ключей, которые может хранить. По умолчанию установлено 30. Рекомендуется использовать только для тестов! |
setTrafficStatsTag | Позволяет установить тег для потока, который генерирует сетевой трафик. Поможет ограничить количество ворнингов StrictMode UntaggedSocketViolation . |
setIoExecutor | Позволяет установить IO-executor для Трейсера. Используйте только в случае крайней необходимости, если уверены в том, что делаете. |
setBgExecutor | Позволяет установить executor, в котором Трейсер будет выполнять фоновые операции (в т.ч. критическ ие для работы Tracer). Используйте только в случае крайней необходимости, если уверены в том, что делаете. |
Deprecated
-опции CoreTracerConfiguration.Builder
, от которых мы откажемся в ближайшем будущем:
Опция | Описание |
---|---|
setExperimentalMaxTagsCount | Позволяет установить максимальное количество ключей, которые может хранить. По умолчанию установлено 30. Рекомендуется использовать только для тестов! |
Ознакомиться с примером интеграции можно в нашем демо проекте