与模拟器和Web相比,在真实的Android设备中响应时间更慢

8ljdwjyq  于 2023-01-11  发布在  Android
关注(0)|答案(4)|浏览(137)

我正在从Android设备调用一个restful API来填充列表视图。
我已经使用swagger codegen生成我的客户端改造。
依赖注入的匕首2
设备:华硕Zenfone 5
我试过从 Postman ,网络和模拟器(Genymotion)中打电话,它比真实的的设备快得多。
有趣的是,每次当我重新启动我的手机两到三个请求的响应时间是正常的,之后越来越慢。
我读了一些关于okHTTP中的gzip压缩的博客,并试图实现它,但没有效果。
如果有人能帮我解决这个问题,那将非常有帮助。

ktca8awb

ktca8awb1#

在改造过程中,主要完成以下工作:
1.生成Retrofit类。
1.动态代理接口的实现
1.根据注解解析并创建Http请求。
1.使用ThreadPool中的OkHttp发送和接收HTTP(套接字)IO(在Android中,无法在主线程上完成网络)。
1.用一些lib(例如gson)反序列化你的Http主体。
1.在回调中更新UI。
在你的手机里,我认为1,2,3是不必要的,他们甚至可以在主线程或缓存中完成。在我的设备(Qcom 615,2Gram),这将需要不到一毫秒。
所以你需要调试你的网络。
逐一解决问题:
1.您的服务器使用HTTPS或no-cacahe或no-gzip?Logging您的数据,并告诉您的服务器的合作伙伴,他们可以给予你一些建议。
1.为converters尝试更快的库。
1.改进你视图代码(例如,取消重绘/重布局,取消主线程中的长时间工作)。

xqkwcwgp

xqkwcwgp2#

React慢与你的手机无关,可能是由于几个原因。我知道的一些值得注意的原因如下所述。
1)您设备上的互联网连接可能比使用计算机网络连接(wifi或局域网连接)的模拟器慢。
2)有多个应用程序在后台使用您设备上的Internet。请检查正在运行后台进程的应用程序并停止它们。
为了确保使用speedtest.net在您的设备上测试您的互联网速度。希望它能帮助您。

unguejic

unguejic3#

当我在调试器中运行我的应用程序时,它慢得无法使用。当我在调试器外运行它时,它的性能更好。
所以结论是,提到的问题与我正在使用的工具和库无关。问题是与USB调试有关。
由于我是新的Android开发,我不知道在USB调试模式下的应用程序的性能.

vi4fp9gy

vi4fp9gy4#

当从retrofit create创建示例时使用singleton模式,因为它使用reflection API。同时,确保使用尽可能轻的接口。

相关问题