1

我正在尝试为 Android 平台开发一个 API 来衡量应用程序的性能。例如,我需要以下内容来衡量一个 android 应用程序。我需要专家建议

  1. 应用程序登录需要多长时间?通过后端系统登录。用户名和密码保存在数据库服务器中,android 应用程序将从数据库服务器中检查用户名和密码。应用程序检查需要多长时间?一种常见的解决方案:用户名/密码检查功能的开始时间和结束时间,然后(结束时间 - 开始时间)将给出需要登录检查的应用程序的实际时间。专家还有什么其他建议吗?

  2. 计算所有这些 UI 组件(TextView、ImageView 等)成功加载所需的渲染时间。ImageView 图像将从服务器加载。也需要专家的建议。我可以在这里应用#1 刻度,但想听专家的意见 :)

谢谢阿雷芬

4

4 回答 4

2

要衡量您的应用程序的性能,使用一种简单Stopwatch的实用程序是一个公平的选择。或者您也可以使用像 Android 的traceview这样的标准工具。

但是,如果您想了解您的应用在用户中的表现如何,那么像New Relic这样的解决方案会非常方便。它允许您测量应用程序对各种 HTTP 请求的性能。

最后,要跟踪您的应用在渲染对象时的表现,最好使用 Android 自己的Hierarchy Viewer

于 2013-07-01T18:15:55.803 回答
2

如果您担心本地 CPU 使用率,请不要使用挂钟时间(即墙上时钟显示的时间)。Android 包含一个带有静态方法threadCpuTimeNanos()的Debug类,它更适合该目的:

long startTime = Debug.threadCpuTimeNanos();
    // your computation goes here
long endTime = Debug.threadCpuTimeNanos();

// If this comes out as 0, you probably don't need to worry about performance :-)
long cpuTimeInMilliseconds = (endTime - startTime) / 1000000;
于 2013-07-01T18:22:50.410 回答
0

我认为(结束时间 - 开始时间)是一个很好的解决方案。没有必要让它比它更复杂......

于 2013-07-01T18:11:33.097 回答
0

你能看看:https ://firebase.google.com/docs/perf-mon/get-started-android吗?

您可以使用自定义跟踪来衡量一段代码的性能(通过在该代码周围添加 Trace.start()、Trace.stop())或使用 @AddTrace 注释来跟踪特定方法。

启用后,Firebase 性能会自动测量应用启动时间和网络请求延迟、请求/响应大小等。

于 2017-05-26T16:43:51.667 回答