Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用程序的性能_Android_Performance - Fatal编程技术网

Android应用程序的性能

Android应用程序的性能,android,performance,Android,Performance,我正在尝试为Android平台开发一个API来衡量应用程序的性能。例如,我需要以下东西来衡量android应用程序的性能。我需要专家的建议 应用程序登录需要多长时间?通过后端系统登录。用户名和密码保存在数据库服务器中,android应用程序将从数据库服务器检查用户名和密码。检查应用程序需要多少时间?一个常见的解决方案是:用户名/密码检查功能的开始时间和结束时间,然后(结束时间-开始时间)将给出需要进行登录检查的应用程序的实际时间。专家还有其他建议吗 计算所有这些UI组件(TextView、Ima

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

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

  • 计算所有这些UI组件(TextView、ImageView等)成功加载所需的渲染时间。ImageView映像将从服务器加载。还需要专家的建议。我可以在这里打1个勾,但喜欢听专家说:)

  • 谢谢
    我认为(结束时间-开始时间)是一个很好的解决方案。我认为(结束时间-开始时间)是一个很好的解决方案。没有什么比它更复杂的了…

    为了衡量你的应用程序的性能,使用一个简单的
    秒表
    工具是一个公平的选择。或者你也可以使用标准的工具,比如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后,我想自动运行应用程序。没有用户交互,应用程序将运行并从一个屏幕导航到另一个屏幕。但是所有的屏幕都应该被打开。你有什么想法吗?提前谢谢。如果我没弄错的话。。。我这样做的方式是创建第二个应用程序,它只供您(或其他测试您的应用程序的人)使用,其中包含您的“真实”应用程序处理的意图列表。此测试应用程序将定期从列表中触发其中一个意图,直到到达列表末尾,然后退出。我愿意