优化android应用程序以实现慢速网络连接
我目前正在开发一款android应用程序,它已经投入生产。我注意到,我的用户中几乎有四分之一使用慢速网络连接。因此,我开始了这个项目,以优化我的应用程序,使其能够实现缓慢的网络连接 以下是我脑海中的变化: 1) 减少来自后端的有效负载的大小(以防检测到慢速网络),只包括必需的详细信息 2) 对于响应与某些参数相同的请求,我将它们存储一定的时间 3) 为在特定时间内不会更改的图像和内容添加缓存 4) 在sql DB中存储随时间缓慢变化的列表内容,只获取随时间累积的差异部分 下面是我想知道的: 1) 根据您的经验,请向我推荐更多处理慢速网络连接的方法优化android应用程序以实现慢速网络连接,android,performance,Android,Performance,我目前正在开发一款android应用程序,它已经投入生产。我注意到,我的用户中几乎有四分之一使用慢速网络连接。因此,我开始了这个项目,以优化我的应用程序,使其能够实现缓慢的网络连接 以下是我脑海中的变化: 1) 减少来自后端的有效负载的大小(以防检测到慢速网络),只包括必需的详细信息 2) 对于响应与某些参数相同的请求,我将它们存储一定的时间 3) 为在特定时间内不会更改的图像和内容添加缓存 4) 在sql DB中存储随时间缓慢变化的列表内容,只获取随时间累积的差异部分 下面是我想知道的: 1)
2) 何时应将应用程序切换到灯光模式(用于处理慢速连接)?是在用户启动应用程序的时候,还是在他使用应用程序的时候,我让一个监听器监听网络速度 不确定您的应用程序提供了哪些功能,因为对于不同的应用程序,建议可能不同。但是,你也可以考虑以下。
- 优化连接超时并相应重试。在更快的网络上有较短的超时和多次重试比在较慢的网络上有较长的超时和较少的重试要好
- 如果您正在存储fast network不需要的数据,那么您是否考虑过离线存储数据的安全风险(加密、删除数据、手机内存等)
- 在使用SQL DB的情况下,如果有大量记录要更新,请确保使用批量插入和事务查询
- 使用您自己的网络队列在在线/离线模式之间切换,而不是连续监听网络速度。如果您的请求队列越来越高,或者在最后一分钟内有更多超时
- 有些网络速度很快,但它们只是有很高的延迟时间。你需要相应地处理此类案件
非常感谢。我存储的大多数数据都不敏感,因此我认为不需要加密。但是,我在共享首选项中存储了一些键。我也需要加密吗?是的,如果密钥是敏感数据,则在存储之前进行加密。有人很容易得到你的共享首选项文件并阅读它。谢谢。我已经开始在我的后端构建一个服务来根据需要调整图像的大小