关于使用ionic2的性能和安全性调研

(一)性能效果

原文链接:Improving-the-performance-of-your-ionic-application,颇有删改,不对之处欢迎指正

Hybrid App最担心的问题,然而Ionic已经让我们看到hybrid app是有可能获得好的性能效果,但是有时为了让延迟卡顿的地方更顺滑,采取一些优化依然是必须的。

1.原生的滚动

这个实现可能会给你最高的流畅性加成。除了使用默认的Javascript的滚动,ionic提供了使用原生滚动的选择。

我们可以选择在每个view中开启它,在ion-content标签中放置这样的属性:

   overflow-scroll="true"

或者可以对所有view开启它:

  $ionicConfigProvider.scrolling.jsScrolling(false);

2.Crosswalk

Crosswork为App提供了一套Chrome Webview,获得了更好的性能效果和稳定性。

Ionic推荐在老版本的Android设备中(4.0-4.3)使用Crosswalk,然而我也发现即使是在更新的Android设备(4.3+)中,也能有巨大的性能提升。CSS动画的提升是最能感觉到的。

运行这条指令可以为我们的项目添加Crosswalk

 $ ionic browser add crosswalk

如果体积上的增加成为了麻烦,crosswalk lite可能值得你考虑。它比正常Crosswalk项目的小一半,这也意味着它删除了一些功能:

目前仅支持Android

不支持更高级的特性比如WebRTC

3.使用GPU Hack

不用担心,只需要实现一些很小的hack。当使用CSS动画时,采用这两种方式:

-webkit-transform: translateZ(0);

-webkit-transform: translate3d(0,0,0);

这两条语句可以强制创建一个新的图层并把渲染交给GPU而不是CPU。这有可能加速你的动画,但亲身测试是这里的关键。

4.使用Ionic生命周期事件

你可能已经感觉到了某些卡顿和磕巴在跳转到另一个页面时。我们可以避免这种延时,通过在Ionic生命周期的事件中包装好数据。

假设我们需要加载一些职位信息,我们可以在beforeEnter事件中使用这个调用

$scope.$on('$ionic.beforeEnter', function()

{

appointmentsService.getAllAppointments();

}

这个事件会在我们将要进入view时触发,使过渡动画时几乎没有卡顿。

(二)  关于ionic的安全性

作者:鲁小夫

链接:www.zhihu.com/question/28468459/answer/41622094

来源:知乎

引用一  :  写过 js混淆器,谈一些浅显的个人看法。

个人认为,js的不可读化处理分为三个方面:压缩(compression)混淆(obfuscation)加密(encryption)。 (不可读化处理,这是我自己发明的术语,一切会增加代码不可读性的代码转换, 都可以这么叫,“增加代码不可读性”可能是代码转换的结果或者目的).

1. 压缩

这一操作的目的,是让最终代码传输量(不代表代码量, 也不代表文件体积)尽可能小。压缩js的工具,常见的有:YUI Compressor、UglifyJS、Google Closure Compiler 等。

通常在代码压缩的过程中,只改变代码的语法,代码的语义和控制流不会有太大改变

常见做法是把局部变量缩短化,把一些运算进行等价替换等。代码压缩对于代码保护有一些帮助,但由于语义和控制流基本没变,起不了太大作用

在压缩层面上,代码不可读只是一种附带伤害,不是最终目的。

2. 混淆

这一操作的目的,是让代码尽可能地不可读,主要用作代码保护。

让代码不可读,增加分析的难度,这是唯一目的。混淆过后文件体积变大一倍也没关系,代码量变多也没关系,运算慢50% 也没关系。

常见的做法有:分离常量、打乱控制流、增加无义代码、检查运行环境如果不对就罢工,等等。

在混淆层面上,代码不可读是最终目的。

值得一提的是,Google Closure Compiler 的 Advance Level Compression 会压缩类和对象的成员,其压缩结果很难分析,也可以认为是一种混淆,但兼容性不太好。

广告时间:我写的 js混淆器,中文名叫 “看起来很厉害的 JS 编译器”, 英文名叫做 The Impressive JS.Segment.Compiler ,看起来很厉害的 JS 编译器

3. 加密

说实话我很难对加密做一个定义,因为加密在Web界有太多歧义了。

有加密就有解密,意味着加密操作可逆,密文可以明文化

就这样看来,在Web界,可以称之为加密的东西包括:HTTPS传输、JavaScript实现对称加密或者不对称加密等等。

这样看来,不可逆的代码压缩和混淆就不能列入加密这个范畴了。

代码加密意味着:将代码明文进行可逆的变换(加密),生成密文;将密文进行逆变换(解密),可以还原明文;最终运行环境运行的是解密代码

结语

实际上大家对压缩、混淆、加密这三个概念还是挺不清晰的,我在这里说一些个人见解,希望有帮助。

在现实项目中,我是多种手段结合的:

对于不需要做代码保护的项目,比如个人博客,做代码压缩,加快载入速度,这就够了。

对于需要做一些代码保护,防止抄袭的项目,可以在源码中加入一些开发者的信息和防护代码,然后混淆和压缩。很不幸的是,我这方面总是做得不太好,防君子防不了小人啊哈哈。

引用2 :  登录注册还是用https安全。

作者:lebornjose

链接:www.zhihu.com/question/28468459/answer/136543578

来源:知乎

在客户端base64或者md5什么的真心没用,我直接监听到你所谓的密文,然后用脚本发起一个http请求就可以登录上去了。

http在网络上是明文传输的,代理和网关都能够看到所有的数据,在同一局域网内也可以被嗅探到,你可以开个wireshark抓下局域网的包试试看。

我认为加密也没有提高什么攻击难度,因为攻击者就没必要去解密原始密码,能登录上去就表示目标已经实现了,所以,难度没有提高

prod的优化启动速度 - 这个是在ionic2的QQ群里面大神说的

在编译命令的最后加上--prod会让app的启动速度加快。

ionic build android --release --prod

无论是debug版本还是release版本都适用。

附上  : 关于js的加密:www.jianshu.com/p/83f81d1c0de7

ionic开源项目

小结  : 其实对于APP性能方面的考量,个人认为有3点

1.启动速度 2. 运行是否流畅 3.崩溃率. 就目前已经使用ionic2开发上线的APP来看,这些问题还不是很明显,开发过程中还要看项目具体情况来进行调研调整.大家请拭目以待!有经验的朋友欢迎批评指正.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容