【问题标题】:How can I improve performance of my android Application?如何提高我的 android 应用程序的性能?
【发布时间】:2017-02-21 09:18:52
【问题描述】:

我正在开发一个应用程序,其中整个数据都来自 API。我主要在我的应用程序中使用片段,我的应用程序没有花费太多时间。但是在某些 Fragment 显示 Layout 需要很长时间。当我调试应用程序时,我看到数据来得很快,但显示数据需要时间。在日志中,我收到一条消息“此应用程序在其主线程中执行大量任务”。有什么方法可以提高应用程序的性能吗?

【问题讨论】:

  • 将任务从主线程移开
  • 我在后台线程中完成的所有网络任务。
  • 正如我告诉我的应用程序需要时间来显示一些数据。这是复杂布局的问题吗?
  • 因为您没有发布任何代码(您应该发布)所以这只是一个疯狂的猜测。可能你正在做一些其他的任务,比如获取联系人等。它们也应该被移动到后台线程
  • 你使用LinearLayout的属性weight吗?

标签: android android-layout


【解决方案1】:

您可以使用 volley 库快速下载数据,图像使用 picaso,数据库使用 relm 数据库,它的快速 api 不要使用旧式 httpcliant 或 json 解析器,它的速度很慢。首先显示数据库中的数据,然后将 api 的数据存储在数据库中并在一段时间后再次以 onpause 方法从数据库中显示(我们的数据需要多少时间来加载)。如果您在 json 中有大量数据,请使用分页 tachniq。

【讨论】:

  • 我在某些布局中使用了 volley,正如我上面提到的那样,它工作得很好
  • relm 数据库速度快 10 倍
  • 先显示数据库中的数据并将服务器数据存储在后台,然后过一段时间再显示
  • 在邮递员或任何其他收费中查看 json 响应时间,如果 json 响应超过 2000 毫秒,那么您必须考虑服务器响应
【解决方案2】:

在我的情况下,当我尝试将 JSON 结果解析为 GoogleMap 中的标记时,我遇到了同样的问题。对于 1000 时,我的应用程序挂起并且它加载时间过长。这里我做了什么来解决这个问题

我假设您正在处理 JSon Data。

  1. 根据某些条件减小 JSON 结果的大小。

  2. 为 JSon 标签使用小标签(例如,代替标签纬度使用 l,而不是经度使用lo)

  3. 避免使用 HttpClient 进行网络调用,根据您的要求使用适当的网络库(如 volly、Retrofit、OkHttp)NetworkLibraries Difference

  4. 如果您对结果数据有任何计算,请尝试完成 尽可能从服务器端

  5. 删除 JSON 结果中不需要的数据。

【讨论】:

    【解决方案3】:

    请按照此指南进行 Android 应用开发Click here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 2011-08-02
      • 1970-01-01
      相关资源
      最近更新 更多