TWaver Android 概述
Android特性
Android是Google公司基于Linux内核的开源操作系统,主要用于移动设备,目前在智能手机市场占有重要份额。Android应用层使用Java语言开发,运行于Dalvik虚拟机,每个Android应用运行在独立的虚拟机中,这保证了各应用间资源的保护和线程安全。
Android架构简图
Android编程方式:Java,NDK,HTML
通常使用Java语言开发Android应用,但也可借助其他语言,如Android NDK(Native Development Kit)开发模式,可用Java调用C语言库,此外HTML也可以包装成Android应用。
三种方式都有各自的特点,Java为Android原生支持的语言,便于开发本地应用,随着Android系统的不断优化,其效率也在不断提升,TWaver Android就使用Java开发;Android NDK开发相对复杂,但可借助C语言的性能优势,改善程序效率,并且C语言也具有很好的跨平台性,在游戏领域应用普遍;而Html方式也逐渐成为趋势,Web App可用于实现跨浏览器,跨平台的应用。
Android性能测试
Android设备很丰富,系统升级也很频繁,Google对Dalvik虚拟机的优化和Android应用架构的改善有长足的进步,如Android 2.1升级到2.2时引入了JIT(just in time)机制,使应用效率提升了2-4倍,而Android 4.1黄油计划对UI流畅度也有作出了贡献,Google的努力值得赞扬,但一方面也说明此前Android效率的低下,而未来进步的空间还有多少?我们用数据来说话。下面我们将分别在Android平板与电脑下对Android Java与Sun Java作对比测试,以了解两者的性能差异和各自适用的场景。
Dalvik VM与Sun Java VM的性能差异
测试设备分别为:MacBook Pro(2.26 GHz Intel Core 2 Duo),Google Nexus 7(1.3GHz四核Tegra 3)
软件环境:Java 1.6.0_37和Android 4.2.1
测试内容:包括数学运算,集合操作(List和Map操作)等基本API
因为同为java语言,测试代码基本一致,详见TWaver Android Demo中的PerformanceDemo.java,这里只列出结果:
Android 4.2.1耗时是Java 6的12 - 50倍,此外其他语言(Flex,JavaScript)在电脑上的运行效率也大大优于Nexus 7平板。
另外看看HTML的情况,Chrome浏览器移动版与桌面版有四倍的差距,这基本上反映了硬件的真实水平,Android中JavaScript语言相比原生的Java性能更优,至少对于Chrome浏览器是如此,当然这个测试只是反映语言的基本性能,从开发的便易上看,Java还是最佳选择。
测试的结果表明相比PC,android设备在性能上尚有明显差距,而Dalvik VM尚不能充分发挥硬件的性能,在开发应用时需要意识到这点,以达到用户体验与功能上的平衡。
编程语言各平台下的性能差异
TWaver Android的定位
TWaver图形组件在桌面上有很多开发语言可选择,独移动平台上空缺,虽然TWaver Html5也能运行在Android和iOS之上,但要达到本地应用的体验绝非易事,TWaver Android定位于移动平台,用于图形化的数据展示,采用了全新设计架构,提升了UI效率,以应对移动设备自身性能的不足,全新的多点触控交互模式,漫游操作,实现流畅的交互体验。
TWaver Android的数量级支持
相比TWaver其他版本,TWaver Android架构做了变化,数据模型上提高了数倍效率,解决了Link, Group的性能问题,UI呈现上优化了延迟无效机制,交互上完全适应触控操作,综合测试,对于Node,Link,Group混合使用的场景,一千数量级在Nexus 7平板上可以流畅的操作,考虑到平板硬件差异和Android虚拟机的效率问题,这样的结果还是让人满意的,可以有广泛的应用场景。
Nexus 7中,不同网元数量级下拓扑图的加载时间对比
TWaver Android推荐平台
考虑到更佳的展示效果,大屏幕或许更便于数据的图形化展示,所以TWaver推荐使用平板,支持Android 3.0+以上版本(该版本支持Drag and Drop),实际上TWaver Android内部主要使用Nexus 7 / 10以及三星平板作开发测试与调优。当然这并不意味着TWaver Android不能用于手机或者低版本的Android设备,TWaver Android Demo在Google Nexus S手机上也可以流畅的运行,如果需要兼容Android 2.*较低版本设备,你可以申请TWaver Android的精简版本。
TWaver Android Demo运行于Nexus 7 和Nexus S