标签: systrace

是否应该对RecyclerView项目视图使用数据绑定?

我正在研究为什么我的一些RecyclerViews表现不佳.当需要绘制视图的整个内容时,UI尤其滞后.
使用systrace我遇到了一个大框架,其中RecyclerView布局其视图:

在此输入图像描述

如您所见,重复绘制相同的视图.在systrace中,我在RecyclerView框架上找到了以下描述:

OnLayout has been called by the View system. If this shows up too many times in Systrace, make sure the children of RecyclerView do not update themselves directly. This will cause a full re-layout but when it happens via the Adapter notifyItemChanged, RecyclerView can avoid full layout calculation.

我的RecyclerView的视图使用谷歌的数据绑定与可观察的值.
更新TextView的意思我不使用,textView.setText(titleTxt)title.set(titleTxt)在哪里title类型ObservableField<String>.
显然我不是在调用,notifyItemChanged而只是更新绑定到布局的对象上的可观察字段.

在这种情况下使用数据绑定在性能方面是错误的吗?如果是这样,那么数据绑定的意义何在?移动UI主要由列表组成.

performance android systrace android-recyclerview android-databinding

6
推荐指数
1
解决办法
554
查看次数

找不到 systrace.py Android Studio

我目前正在尝试运行 systrace 工具来分析我的用户界面性能。我按照此处所述设置环境:https ://developer.android.com/studio/command-line/systrace.html#syntax

但当我尝试跑步时

python systrace.py --time=10 -o mynewtrace.html gfx
Run Code Online (Sandbox Code Playgroud)

在 Android Studio 终端中,我收到以下错误:

/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python:无法打开文件“systrace.py”:[Errno 2]没有这样的文件或目录

我还没有找到可行的解决方案。

android systrace android-studio

6
推荐指数
1
解决办法
3459
查看次数

Android systrace是否需要root访问权限?

我试图在非root设备上运行systrace.如果选择了任何跟踪事件,它总是会出现以下错误:

无法找到跟踪开始标记'TRACE:':错误打开/ sys/kernel/debug/tracing/events/cpufreq_interactive/enable:没有这样的文件或目录

如果没有选择跟踪事件,它可以工作,但跟踪不是很好.

systrace是否需要root访问权限?

请注意,我在Windows-7上直接从Eclipse(DDMS)运行systrace.

android systrace

5
推荐指数
1
解决办法
3138
查看次数

如何为jank和frames触发最新的Android Systrace命令标记?

最新的Android Systrace页面 - http://developer.android.com/tools/debugging/systrace.html#options-4.3 - 显示'警报'和'框架'跟踪线,其中包含发生不良事件的圆圈.

尽管看到很多jank,我还是无法使用这些标记创建trace.html文件.

有谁知道谷歌可能用来创建他们截获的页面的命令?遗憾的是,他们没有提供它.

android systrace

5
推荐指数
1
解决办法
329
查看次数

无法在HTC One M8 Lollipop上进行systrace

我正在尝试使用Android Studio中的systrace和默认的systrace选项集.我没有扎根电话.HTC Sense v6.0,Android 5.0.1,HTC SDK API等级6.55.当我这样做时,我得到了可怕的"无法收集系统跟踪.原因:收集系统跟踪时出现意外错误".使用adb shell,我确定/ sys/kernel/debug存在,但/ sys/kernel/debug/tracing不存在.有人用systrace和HTC One M8 /棒棒糖运气好吗?

android systrace

5
推荐指数
0
解决办法
159
查看次数

Android应用程序首次启动非常慢,systrace显示30秒的bindApplication

我目前正在开发Android应用并试图改善开始时间.为了做到这一点,我正在使用Systrace工具.

我第一次运行应用程序(安装后),启动需要大约40秒,我得到了这个跟踪:

第一次运行

如您所见,标题为30秒浅紫色标签bindApplication.

在此之后,我关闭应用程序(从最近的活动中删除)并重新打开它.这次bindApplication标签只有4秒钟:

第二次运行

  • 有人知道第一次运行这么长时间是否正常?
  • 我该怎么做才能改善它?

我的猜测是,这bindApplicationonCreateApp方法中的繁重工作有关,但我不知道如何发生这种情况.万一它onCreate有所帮助:在我初始化以下库:Parse,Crashlytics,T​​imber,ParseFacebookUtils和Google Analytics.

编辑:

这是App子类代码:

public class MyApp extends Application {

  private Tracker tracker;

  @Override public void onCreate() {
    super.onCreate();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
      Trace.beginSection("MyApp");
    }
    Fabric.with(this, new Crashlytics());

    // Parse setup
    Parse.enableLocalDatastore(this);
    ParseObject.registerSubclass( ... );

    Parse.Configuration.Builder parseConfigBuilder = new Parse.Configuration.Builder(this).applicationId(
        getString(R.string.parse_application_id))
        .server(getString(R.string.parse_server_url));

    if (BuildConfig.DEBUG) {
      // add logs
      Timber.plant(new DebugTree());
      Parse.setLogLevel(Parse.LOG_LEVEL_VERBOSE);
      parseConfigBuilder.addNetworkInterceptor(new ParseLogInterceptor());
    }

    Parse.initialize(parseConfigBuilder.build());

    ParseFacebookUtils.initialize(this);

    ParseInstallation.getCurrentInstallation().saveInBackground();

    AnalyticsManager.getInstance().init(this);
    AnalyticsManager.getInstance().debugMode(BuildConfig.DEBUG);

    if (BuildConfig.DEBUG) …
Run Code Online (Sandbox Code Playgroud)

performance android systrace

5
推荐指数
1
解决办法
943
查看次数

如何在 systrace React 本机分析中找出昂贵的度量或布局传递?

我正在使用 systrace 分析我的 React Native 应用程序。当我选择丢帧时,主要有两个警报

  1. 昂贵的措施/布局通行证

    描述:测量/布局花费了大量时间,导致卡顿。避免在动画期间触发布局。

  2. 调度延迟

    描述:生成此帧的工作被推迟了几毫秒,导致卡顿。确保 UI 线程上的代码不会阻塞其他线程上正在完成的工作,并且后台线程(例如执行网络或位图加载)在 android.os.Process#THREAD_PRIORITY_BACKGROUND 或更低级别运行,因此它们不太可能中断用户界面线程。这些后台线程应该以 130 或更高的优先级数出现在内核进程下的调度部分。

如果我收到类似这样的其他警报(例如要遵循的任何方法),我如何确定可以优化的位置以及如何进行?

performance multithreading android systrace react-native

5
推荐指数
0
解决办法
778
查看次数

Systrace输出错误

我在我的android studio项目上运行systrace以找到一些性能错误但是在跟踪过程结束后,我得到以下错误,如果我在chrome中打开trace.html输出文件,则跟踪视图为空:

Starting tracing (10 seconds)
Tracing completed. Collecting output...
Exception in thread Thread-13:
Traceback (most recent call last):
  File "C:\Python27\lib\threading.py", line 801, in __bootstrap_inner
    self.run()
  File "C:\Python27\lib\threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "C:\Users\Steli\AppData\Local\Android\sdk\platform-tools\systrace\catapult\systrace\systrace\tracing_agents\atrace_agent.py", line 194, in _collect_and_preprocess
    self._trace_data = self._preprocess_trace_data(trace_data)
  File "C:\Users\Steli\AppData\Local\Android\sdk\platform-tools\systrace\catapult\systrace\systrace\tracing_agents\atrace_agent.py", line 272, in _preprocess_trace_data
    trace_data = strip_and_decompress_trace(trace_data)
  File "C:\Users\Steli\AppData\Local\Android\sdk\platform-tools\systrace\catapult\systrace\systrace\tracing_agents\atrace_agent.py", line 332, in strip_and_decompress_trace
    trace_data = zlib.decompress(trace_data)
error: Error -5 while decompressing data: incomplete or truncated stream

Outputting Systrace results...
Tracing complete, writing results
Traceback (most …
Run Code Online (Sandbox Code Playgroud)

html android google-chrome systrace android-studio

5
推荐指数
1
解决办法
998
查看次数

尝试在 android 设备上运行 systrace 但生成的 html 显示错误

无法选择主时钟域,因为找不到从“SYSTRACE”到“LINUX_FTRACE_GLOBAL”的路径。

android systrace android-studio-3.0

5
推荐指数
1
解决办法
1984
查看次数

在我的本地 android sdk 文件夹中找不到 `systrace.py`

由于我无法在和找到该文件,如何访问systrace.py本地 android sdk 文件夹?/tools/platform-tools

下面是我的本地计算机上安装的当前 SDK 的图像。

ANDROID_SDK

以下是当前内容的图片,可供参考。

图像

performance android android-sdk-tools systrace android-sdk-manager

5
推荐指数
1
解决办法
2287
查看次数