我正在从Android设备调用一个restful API来填充列表视图。我已经使用swagger codegen生成我的客户端改造。依赖注入的匕首2设备:华硕Zenfone 5我试过从 Postman ,网络和模拟器(Genymotion)中打电话,它比真实的的设备快得多。有趣的是,每次当我重新启动我的手机两到三个请求的响应时间是正常的,之后越来越慢。我读了一些关于okHTTP中的gzip压缩的博客,并试图实现它,但没有效果。如果有人能帮我解决这个问题,那将非常有帮助。
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.改进你视图代码(例如,取消重绘/重布局,取消主线程中的长时间工作)。
Retrofit
xqkwcwgp2#
React慢与你的手机无关,可能是由于几个原因。我知道的一些值得注意的原因如下所述。1)您设备上的互联网连接可能比使用计算机网络连接(wifi或局域网连接)的模拟器慢。2)有多个应用程序在后台使用您设备上的Internet。请检查正在运行后台进程的应用程序并停止它们。为了确保使用speedtest.net在您的设备上测试您的互联网速度。希望它能帮助您。
unguejic3#
当我在调试器中运行我的应用程序时,它慢得无法使用。当我在调试器外运行它时,它的性能更好。所以结论是,提到的问题与我正在使用的工具和库无关。问题是与USB调试有关。由于我是新的Android开发,我不知道在USB调试模式下的应用程序的性能.
vi4fp9gy4#
当从retrofit create创建示例时使用singleton模式,因为它使用reflection API。同时,确保使用尽可能轻的接口。
4条答案
按热度按时间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.改进你视图代码(例如,取消重绘/重布局,取消主线程中的长时间工作)。
xqkwcwgp2#
React慢与你的手机无关,可能是由于几个原因。我知道的一些值得注意的原因如下所述。
1)您设备上的互联网连接可能比使用计算机网络连接(wifi或局域网连接)的模拟器慢。
2)有多个应用程序在后台使用您设备上的Internet。请检查正在运行后台进程的应用程序并停止它们。
为了确保使用speedtest.net在您的设备上测试您的互联网速度。希望它能帮助您。
unguejic3#
当我在调试器中运行我的应用程序时,它慢得无法使用。当我在调试器外运行它时,它的性能更好。
所以结论是,提到的问题与我正在使用的工具和库无关。问题是与USB调试有关。
由于我是新的Android开发,我不知道在USB调试模式下的应用程序的性能.
vi4fp9gy4#
当从retrofit create创建示例时使用singleton模式,因为它使用reflection API。同时,确保使用尽可能轻的接口。