android - hybrid app如何进行打包下载前端资源?
怪我咯
怪我咯 2017-04-17 17:26:08
0
3
448

背景

由于手上的Android app需要改版,用户流量越发增加,H5活动页面、展示页面也陆续地增加。所以打算基于native实现缓存方案加速。

架构

我们的架构是hybrid app,只有首页是native实现的,下面的几个条目作为H5的入口。
(为避免广告嫌疑,已经屏蔽相关字眼)

解决方案

上网查了一下hybrid app的H5加速方案,详见:http://trock.lofter.com/post/117023_e8e175

方案一:使用manifest,但是坑比较多,而且也不是最好的方案,一个文件改,所有都要更新。
方案二:打包下载前端资源,Android本地的解压。然后native和H5用spdy协议请求页面。Android可以实现增量更新。

我的疑惑

关于方案二是具体实现方法,我在网上搜索不到,而且很疑惑:
1.前端资源打包,是在服务器上发生的吗?
2.客户端如果知道有更新,对比md5,但不是说下载打包好变成一个zip包吗?那它怎么样去识别个边页面的更新?

或者我的理解完全错了?
有经验的同学请指教,谢谢!

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(3)
大家讲道理

저는 하이브리드 APP 개발 경험이 없지만 WebView + 페이지 형태로 제시할 기능이 많이 있습니다.
그래서 주제의 목적은 액세스 트래픽을 줄이는 것입니다. WebView 자체에는 캐싱 메커니즘이 있으므로 먼저 사진 및 기타 관련 리소스를 다운로드해야 하는지 모르겠습니다. 사진이 수정되었다는 것은 전체 페이지의 리소스를 다시 다운로드해야 한다는 의미가 아닌가요?

제 쪽은 로컬 HTML 페이지와 네트워크 이미지 형태이기 때문에 로컬 HTML 페이지만 업데이트해야 할 때마다 이미지나 CSS, js가 여전히 백엔드에 남아 있습니다. WebView는 해당 주체의 하이브리드 애플리케이션 개발 형태를 모르기 때문에 퍼블리싱이 쉽지 않습니다.

左手右手慢动作

연결되지 않는 CDN이 문제를 해결합니다. .

PHPzhong

저는 프론트엔드 개발을 담당하고 있습니다.

클라이언트 동료와 상의하여 두 가지 해결책을 얻었습니다.
① 백엔드는 자주 업데이트되지 않는 페이지를 패키징하고 클라이언트는 이를 압축 해제합니다.
② 자주 업데이트되는 페이지의 경우 백엔드는 다음과 같은 목록을 보냅니다. 목록에는 파일 이름, 버전 번호 및 md5가 있습니다. 클라이언트는 이 목록을 다운로드하고, diff 작업을 수행하고, 특정 규칙에 따라 파일을 다운로드, 교체 및 삭제합니다.

백엔드 동료들과 상의한 결과 다음과 같은 정보를 얻었습니다.
이 앱의 주요 업무는 백엔드입니다. 개정 후에도 현재 트래픽 수준은 5시에 여전히 1000qps에 한참 못 미치고 ​​있습니다. 번, 그래서 현재 리소스가 CDN을 통해 실행되지 않아도 괜찮습니다. 이 단계에서는 프런트엔드 성능 최적화가 그다지 필요하지 않으며 파일 디렉터리와 코드를 재구성하는 것이 더 중요합니다.

종합 솔루션:
이 단계에서는 성능 최적화에 대해 너무 많이 고려할 필요가 없으므로 고객 동료로부터 얻은 솔루션이 나중에 구현되지 않을 수도 있습니다. @zzxxasp 동급생이 언급한 해결책은 웹뷰 캐싱을 사용하는 것으로 충분합니다. @TIGERB의 CDN 솔루션과 결합할 수도 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿