android加载h5速度慢的解决方案,android H5本地缓存加载优化的实战

2020年最后一周,正准备摸摸鱼回家过年,须不知“惊天阴谋”已在领导层酝酿。竖日,组长带着诡异的微笑向我走来:

组长: “快过年了,你回家路途遥远,要不要请两天假?”

我: “组长,你真是我的知己,想我所想,思我所思,你这么一说我就不客气了,那我就请两天”

组长:“行,请假肯定没问题,我一向很照顾兄弟们!!”(那一刻,一股暖流心中而过,早已将这一年他对我的“压榨”抛之脑后)

“不过我还有个事跟你说下,回家前有个需求你得完成”

我:“what??? ,,,, TMD......”

组长:“需求是这样的:最近客户反应HTML加载有点慢,需要优化下,最好能做到秒开,,,,加油,我相信你”。

我:“不是这H5,加载慢那你前端的原因呀,你找我。。。我。。。”(组长已经远去)

带着沉重的心情开始研究优化,开始在webView 层做文章,开启缓存,预加载,一顿操作效果微乎其微。

然后开始打前端文件的注意,一般本地Html文件加载速度比通过Url的加载速度会快很多。于是去找前端要了一个本地文件放到项目里进行本地加载。果不其然,速度嗖嗖的,此时,尴尬的事情发生了,前端功能经常更新,如果放到项目里岂不是H5更新,我就得升级版本。且不说我得累死,估计这方案提到组长那,他得提刀来见了。 于是另辟蹊径,将通过接口下载HTMl文件,存在到手机本地,这样webView去加载手机本地文件即可。一弧诡异的微笑在脸上散开。

动手: 1.偷了懒,用 filedownloader 去下载了Html压缩文件

implementation 'com.liulishuo.filedownloader:library:1.7.7'

封装下载工具类:

public class FileDownloadUtils {

public static FileDownloadUtils instance = null;

public FileDownloadUtils() {

}

public static FileDownloadUtils getInstance() {

if (null == instance) {

instance = new FileDownloadUtils();

}

return instance;

}

/**

* 单任务下载

*

* @param downLoadUri 文件下载网络地址

* @param destinationUri 下载文件的存储绝对路径

*/

public void startDownLoadFileSingle(String downLoadUri, String destinationUri,FileDownLoaderCallBack callBack) {

FileDownloader.getImpl().create(downLoadUri).setPath(destinationUri).setListener(fileDownloadListener(callBack)).start();

}

// 下载方法

private FileDownloadListener fileDownloadListener(final FileDownLoaderCallBack callBack) {

return new FileDownloadListener() {

@Override

protected void pending(BaseDownloadTask task, int soFarBytes, int totalBytes) {

//等待,已经进入下载队列

}

@Override

protected void progress(BaseDownloadTask task, int soFarBytes, int totalBytes) {

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值