Android systrace не показывает пользовательские разделы моего приложения - PullRequest
0 голосов
/ 09 ноября 2018

Попытка профилировать задержки при прокрутке в RecyclerView с помощью systrace:

python systrace.py -o ~/tmp/newtrace.html -app=<my package>

Но нет записи для пользовательских участков трассировки.No entry for my custom sections

Я отслеживаю, используя следующий код

override fun onCreateViewHolder(parent: ViewGroup): RecyclerView.ViewHolder {
    trace(sectionName = "GalleryDelegate.onCreateViewHolder") {
        val view = layoutInflater.inflate(R.layout.item_upload, parent, false)
        return ProfileMediaHolder(view, delegate)
    }
}

override fun onBindViewHolder(items: List<ProfileDataEntry>, position: Int, holder: RecyclerView.ViewHolder, payloads: MutableList<Any>) {
    trace(sectionName = "GalleryDelegate.onBindViewHolder") {
        val item = items[position] as ProfileDataEntry.MediaItem
        val castedHolder = holder as ProfileMediaHolder
        when (item) {
            is ProfileDataEntry.MediaItem.Item -> {
                castedHolder.bind(item.value)
            }
            is ProfileDataEntry.MediaItem.Placeholder -> {
                castedHolder.bind(item.type)
            }
        }
    }
}

1 Ответ

0 голосов
/ 14 июня 2019

Вам необходимо включить systrace для вашего приложения с помощью этих команд

adb shell "setprop debug.atrace.app_number 1" adb shell "setprop debug.atrace.app_0 appname"

По умолчанию отключено. А для получения systrace просто укажите свое имя приложения в командной строке следующим образом.

python systrace.py -t 4 -a appname -o mynewtrace.html perf sched gfx

...