Пользовательские события Systrace не отображаются в сборке выпуска приложения

Я использую systrace/perfetto для захвата трассировки. Я следую приведенному ниже способу добавления пользовательских событий из моего кода — https://developer.android.com/topic/performance/tracing/custom-events

Я вижу пользовательские события в сборке отладки, но не вижу в сборке выпуска.

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


person Rishi    schedule 31.03.2021    source источник


Ответы (3)


Начиная с Android API 29 (Q), появился новый флаг profileable. в манифесте, который включает некоторые данные профилирования (например, пользовательские события systrace) для неотлаживаемых сборок.

person Yi Yang    schedule 08.04.2021

Я думаю, что создание отлаживаемой сборки релиза поможет. добавьте следующее в файл build.gradle вашего модуля приложения

  buildTypes {
    release {
        debuggable true
    }
}
person DinkarKumar    schedule 31.03.2021
comment
Когда я делаю debuggable true, тогда также включается утечка канари и строгий режим (который обернут вот так — if (BuildConfig.DEBUG) {}). Поскольку я выполняю перфотестирование, я не хочу, чтобы это влияло на производительность приложения. - person Rishi; 31.03.2021
comment
по какой причине вы хотите, чтобы ваш вариант выпуска был протестирован с пользовательским событием, а не с вариантом отладки? - person DinkarKumar; 31.03.2021
comment
В моем варианте отладки у меня есть строгий режим и включена утечка. Я хочу избежать этих 2, потому что это повлияет на производительность - person Rishi; 31.03.2021
comment
трассировка предназначена для тестирования производительности, если вы не хотите, чтобы строгий режим и утечка канарейки мешали во время тестирования с использованием трассировки, вы можете отключить их при выполнении трассировки. - person DinkarKumar; 31.03.2021

Вы добавили имя пакета своего приложения при захвате трассировки. Вы можете указать это с помощью тега -a. Добавление имени пакета является обязательным для просмотра пользовательских событий в сборке выпуска.

например:

python systrace.py -o trace_file.html -a package_name sched freq idle am wm gfx view binder_driver hal dalvik camera input res
person Mayuri Khinvasara    schedule 02.08.2021