【问题标题】:Android systrace not showing my app's custom sectionsAndroid systrace 未显示我的应用的自定义部分
【发布时间】:2018-11-09 13:59:05
【问题描述】:

尝试使用 systrace 在 RecyclerView 中滚动时分析滞后:

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

但是没有自定义跟踪部分的条目。

我正在使用以下代码进行跟踪

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)
            }
        }
    }
}

【问题讨论】:

  • 那么您找到解决方案了吗?

标签: android performance systrace


【解决方案1】:

您需要使用这些命令为您的应用启用 systrace

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

默认情况下禁用。而要获取 systrace,只需像这样在命令行中指定您的 appname。

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

【讨论】:

  • 应用名称可以是什么?是像“com.google.calendar”这样的完整包名吗?
  • @XueQing 是的。这是您在 AndroidManifest.xml 中的名称
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-07-28
  • 2011-09-09
  • 2011-07-20
  • 2016-03-21
  • 1970-01-01
  • 1970-01-01
  • 2017-02-13
相关资源
最近更新 更多