Android应用程序的性能
我正在尝试为Android平台开发一个API来衡量应用程序的性能。例如,我需要以下东西来衡量android应用程序的性能。我需要专家的建议Android应用程序的性能,android,performance,Android,Performance,我正在尝试为Android平台开发一个API来衡量应用程序的性能。例如,我需要以下东西来衡量android应用程序的性能。我需要专家的建议 应用程序登录需要多长时间?通过后端系统登录。用户名和密码保存在数据库服务器中,android应用程序将从数据库服务器检查用户名和密码。检查应用程序需要多少时间?一个常见的解决方案是:用户名/密码检查功能的开始时间和结束时间,然后(结束时间-开始时间)将给出需要进行登录检查的应用程序的实际时间。专家还有其他建议吗 计算所有这些UI组件(TextView、Ima
我认为(结束时间-开始时间)是一个很好的解决方案。我认为(结束时间-开始时间)是一个很好的解决方案。没有什么比它更复杂的了…为了衡量你的应用程序的性能,使用一个简单的
秒表
工具是一个公平的选择。或者你也可以使用标准的工具,比如Android
然而,如果你想了解你的应用程序在用户中的表现,那么像这样的解决方案会非常方便。它允许您测量各种HTTP请求的应用程序性能
最后,为了跟踪你的应用程序在渲染对象时的表现,最好使用Android自己的工具。为了衡量你的应用程序的性能,使用一个简单的
秒表
工具是一个公平的选择。或者你也可以使用标准的工具,比如Android
然而,如果你想了解你的应用程序在用户中的表现,那么像这样的解决方案会非常方便。它允许您测量各种HTTP请求的应用程序性能
最后,要跟踪你的应用程序在渲染对象时的表现,最好使用Android自己的。如果你担心本地CPU的使用,那么不要使用挂钟时间(即墙上的时钟显示的时间)。Android包含一个带有静态方法的类,更适合于此目的:
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;
如果您担心本地CPU的使用,那么不要使用墙上的时钟时间(即墙上的时钟显示的时间)。Android包含一个带有静态方法的类,更适合于此目的:
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;
你能看一下吗
您可以使用自定义跟踪来测量代码段的性能(通过在代码周围添加Trace.start()、Trace.stop()),也可以使用@AddTrace注释来跟踪特定的方法
启用后,Firebase performance会自动测量应用程序启动时间和网络请求延迟、请求/响应大小等。您能看一下吗:
您可以使用自定义跟踪来测量代码段的性能(通过在代码周围添加Trace.start()、Trace.stop()),也可以使用@AddTrace注释来跟踪特定的方法
启用后,Firebase performance会自动测量应用程序启动时间和网络请求延迟、请求/响应大小等。谢谢@anirvan.Hierachy Viewer是一个工具,我可以在代码/API中使用吗?我想,我不能这样做。即使这是可能的(假设你找到了它的来源),我也不认为这种复杂性值得这么做。我通常坚持本I/o演讲中列出的指导原则,并使用HierarchyViewer进行测量。但我会环顾四周,以编程的方式分享任何可能允许这样做的东西。谢谢@anirvan.Hierachy Viewer是一个工具,我可以在我的代码/API中使用吗?我想,我不能这样做。即使这是可能的(假设你找到了它的来源),我也不认为这种复杂性值得这么做。我通常坚持本I/o演讲中列出的指导原则,并使用HierarchyViewer进行测量。但我会环顾四周,并以一种程序化的方式分享任何可能允许这样做的东西。谢谢@Dan Breslau,你的想法太棒了!我需要一个更多的信息,如果你知道,请让我通知。通过adb命令在我的设备中安装apk后,我想自动运行应用程序。没有用户交互,应用程序将运行并从一个屏幕导航到另一个屏幕。但是所有的屏幕都应该被打开。你有什么想法吗?提前谢谢。如果我没弄错的话。。。我这样做的方式是创建第二个应用程序,它只供您(或其他测试您的应用程序的人)使用,其中包含您的“真实”应用程序处理的意图列表。此测试应用程序将定期从列表中触发其中一个意图,直到到达列表末尾,然后退出。我没有时间提供更多细节;如果你需要进一步探讨这个问题,我建议你提出一个新问题。这也是你的一个很酷的想法,再次感谢你。我将在SO发布一个新问题。我已发布,请检查您是否感兴趣。如果您需要我这边的更多信息,请告诉我。谢谢@Dan Breslau,您的想法太棒了!我需要一个更多的信息,如果你知道,请让我通知。通过adb命令在我的设备中安装apk后,我想自动运行应用程序。没有用户交互,应用程序将运行并从一个屏幕导航到另一个屏幕。但是所有的屏幕都应该被打开。你有什么想法吗?提前谢谢。如果我没弄错的话。。。我这样做的方式是创建第二个应用程序,它只供您(或其他测试您的应用程序的人)使用,其中包含您的“真实”应用程序处理的意图列表。此测试应用程序将定期从列表中触发其中一个意图,直到到达列表末尾,然后退出。我愿意