改进与仿真器和networking相比,在真实的android设备中响应时间更慢

我正在从Android设备进行一个安静的API调用来填充列表视图。

我用swagger codegen生成我的翻新客户端。

匕首2dependency injection

设备:华硕Zenfone 5

我试图从邮差,networking和模拟器(genymotion)打电话,它比真实的设备要快得多。

而有趣的是,每次当我重新启动我的手机两三个请求的响应时间是正常的,然后变慢。

我读了一些关于okHTTP的gzip压缩的博客,并试图实现,但没有效果。

如果有人能帮我弄清楚这个问题,那真的很有帮助。

Solutions Collecting From Web of "改进与仿真器和networking相比,在真实的android设备中响应时间更慢"

慢响应与您的手机没有任何关系,可能是由于几个原因。 我知道一些明显的原因在下面提到。

1)您的设备上的互联网连接可能会比使用您的机器的networking连接(无线或局域网连接)的模拟器慢一些。

2)在您的设备上有多个应用程序在后台使用互联网。 检查应用程序运行后台进程并停止它们。

要确保使用speedtest.net在您的设备上testing您的互联网速度。 希望它可以帮助你。

在改造中,它做了以下工作:

  1. build立Retrofit类。
  2. 使用DynamicProxy实现接口
  3. parsing和创buildHttp请求accourding到注释。
  4. 使用ThreadPool中的OkHttp发送和接收HTTP(套接字)IO(在Android中,networking无法在主线程上完成)。
  5. 用一些lib(例如.gson)反序列化你的Http体。
  6. 在callback中更新UI。

在你的手机中,我认为1,2,3是不必要的,甚至可以在主线程或caching中完成。 在我的设备(Qcom615,2Gram)中,它将不到一个毫秒。

所以你需要debugging你的networking。

解决问题一个一个:

  1. 你的服务器是否使用HTTPS或不使用cacahe或no-gzip? logging您的数据并告诉您的服务器的合作伙伴,他们可以给你一些build议。
  2. 尝试更快的lib 转换器 。
  3. 改善你的视图的代码(例如,void redraw / reloadout,在主线程中使一个长时间的工作无效)。

当我在debugging器中运行我的应用程序时,速度很慢。 当我在debugging器外部运行它时,性能会更好。

所以,结论是提到的问题与我使用的工具和库没有关系。 问题在于USBdebugging。

由于我是新来的android开发,我没有意识到在USBdebugging模式下APP的性能。