Cordova资料与性能分析

上一篇文章提了一下Cordova和React-Native各种方面的优势和劣势,这篇文章和下一篇文章记录一下这两大框架的资料,GPU和内存的数据。文章开始之前,先问一个问题,Android端的WebView是否有内存限制。我运行Cordova项目时,加载大量数据,页面直接卡死,而内存使用量竟然没有上升。很是奇怪。知道答案的,请不吝赐教。先谢过。

内存使用

Cordova,jquery mobile,SUI Mobile写了一个小demo,客户端地址,服务端地址。想看看的可以直接下载运行试试看。每次写文章之前,都喜欢先扯些没用的,来吧,直接上图。
我写了个列表,并且使用ajax请求数据动态的插入dom,但是,当列表数量过大,比如10000条数据时,整个页面直接卡死,令人惊讶的是,内存使用量竟然不变。从上图我们可以看出,在Cordova运行过程中,相对来讲,对整个硬件的消耗是比较小的。内存和cpu使用量处于稳定状态。缺陷是动态更新dom的时候,页面直接卡死。

GPU使用

再来看看GPU,y轴显示的是时间,单位为毫秒,每一帧的绘制时间大大超出了16ms的时间,所以我们看到启动有卡顿的感觉。在进入应用后,页面是没有严重过度绘制情况的。滑动的流畅度也没有问题。只是数据量不能太大。后面一篇文章分析React-Native,看完之后就能发现,其实差距还是很大的。

生命周期

Cordova Android文档中,有对应一个页面或者碎片的生命周期对应事件,实际上是dom事件暴露给Android的。

在官方文档中,还包含了应用在低内存的时候,怎么保证应用数据不被丢失。以及应用如何保证应用保活。地址

应用安全

白名单

外部域名安全性是不确定的。所以Cordova提供了域名访问控制服务。
– 提供cordova-plugin-whitelist在根目录下config.xml中配置可访问的域名。

iframe和回调ID机制

  • iframe的漏洞不是一般的多。具体可以查看最后的推荐阅读,所以Cordova不推荐我们使用iframe

证书锁定

自签名证书

  • 不建议使用自签名证书

加密存储

  • 对你需要本地序列化的数据进行加密。

建议

  • 支持版本>Android2.3
  • 使用app内置浏览器打开外链
  • 校验所有的用户输入
  • 不要缓存敏感信息
  • 不要使用eval()除非你知道你自己正在做什么
  • 不要假设你的源代码是安全的

综上所诉,我没有看到还算可靠的方法来保证数据安全。各种性能方面也不算好。渲染与原生app也有差距。只有多平台支持和快速开发算令人眼前一亮的地方。如果要做好一个app,个人觉得不是一个好的选择。而且,各个平台的设计也不一样。 最后,这张图是意思?
虽然我写的烂,但你也不至于直接抓过去,一字不改吧。

推荐阅读

Android性能专项测试之GPU Monitor这篇文章详细讲述了每个颜色所代表的意义。

初探android应用性能分析这篇文章讲述了android下性能分析的基础知识。

Android 性能测试初探具体分析了GPU测试的要点。

脑洞大开:为啥帧率达到 60 fps 就流畅?

iframe,我们来谈一谈

Retrofit中如何正确的使用https?

Tags:

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注