主流:java
Andriod:是一种基于Linux的自由及开放源代码的操做系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。第一部Android智能手机发布于2008年10月;ios
定制Anrdiod系统:MIUI、flyme、EMUI、Smartisan OSc++
发行版本:ubuntu
Android在正式发行以前,最开始拥有两个内部测试版本,而且以著名的机器人名称来对其进行命名,它们分别是:阿童木(AndroidBeta),发条机器人(Android 1.0)。后来因为涉及到版权问题,谷歌将其命名规则变动为用甜点做为它们系统版本的代号的命名方法。甜点命名法开始于Android 1.5发布的时候,而后按照26个字母数序;具体发布版本可自行查找;c#
ios:是由苹果公司开发的移动操做系统 。苹果公司最先于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等产品上。iOS与苹果的Mac OS X操做系统同样,属于类Unix的商业操做系统。浏览器
非主流:Winphone、黑莓、塞班、ubuntu、Asha、Tizen、Jolla、Firefox OS;bash
Winphone:Windows Phone(简称为WP)是微软于2010年10月21日正式发布的一款手机操做系统,初始版本命名为Windows Phone 7.0 [1] 。基于Windows CE内核,采用了一种称为Metro的用户界面(UI),并将微软旗下的Xbox Live游戏、Xbox Music音乐与独特的视频体验集成至手机中。2011年2月,诺基亚与微软达成全球战略同盟并深度合做共同研发该系统。网络
微软宣称将在2017年7月11日正式结束Windows Phone 8.1的服务支持,从此也不会再有对于系统的更新修复和新特性加入。app
黑莓:BlackBerry OS是Research In Motion(加拿大的一家通讯公司,主要产品为黑莓手机。为其智能手机产品BlackBerry开发的专用操做系统。该系统具备多任务处理能力,并支持特定输入装置,如滚轮、轨迹球、触摸板及触摸屏等。框架
塞班:Symbian系统是塞班公司为手机而设计的操做系统。2008年12月2日,塞班公司被诺基亚收购。
2011年12月21日,诺基亚官方宣布放弃塞班(Symbian)品牌。因为缺少新技术支持,塞班的市场份额日益萎缩。截止至2012年2月,塞班系统的全球市场占有量仅为3%。
2012年5月27日,诺基亚完全放弃开发塞班系统,可是服务将一直持续到2016年。
2013年1月24日晚间,诺基亚宣布,从此将再也不发布塞班系统的手机,意味着塞班这个智能手机操做系统,在长达14年的历史以后,终于迎来了谢幕。2014年1月1日,诺基亚正式中止了Nokia
Store应用商店内对塞班应用的更新,也禁止开发人员发布新应用。 Symbian是一个实时性、多任务的纯32位操做系统,具备功耗低、内存占用少等特色,在有限的内存和运存状况下,很是适合手机等移动设备使用,通过不断完善,能够支持GPRS、蓝牙、SyncML、NFC以及3G技术。
ubuntu:2013 年 1 月 3 日,Canonical 公司创始人 Mark Shuttleworth 在 Ubuntu 官网宣布,在旗下 Linux 开源操做系统 Ubuntu 桌面版的基础之上,该公司将推出独立的移动操做系统 Ubuntu Touch。
2015 年 2 月,第一款搭载 Ubuntu 系统的智能手机问世。Canonical 公司联合西班牙 BQ 公司推出了一款名为 Aquarius E4.5 的 Ubuntu 手机
2017 年 4 月 5 日,Mark Shuttleworth 又在官网宣布,Canonical 将中止对手机业务的投资;这就意味着,Ubuntu Touch 寿终正寝;
Firefox OS:是Mozilla公司推出的移动操做系统,它是一款彻底开源并免费的移动平台,基于HTML5技术。该系统最大的创新在于HTML5。因为彻底遵循HTML5标准,应用开发者将可使HTML5应用充分发挥设备的硬件性能。
2016年2月5日 Mozilla在发送给开发者的电子邮件当中表示,在2.6版本发布以后,Mozilla将中止开发火狐手机版操做系统。
非智能机:MTK平台、S40平台;
原生应用程序:(Native App)
原生APP就是利用Android、iOS平台官方的开发语言、开发类库、工具进行开发。好比安卓的java语言,iOS的object-c 语言。在应用性能上和交互体验上应该是最好的。
优势:
一、可访问手机全部功能、可实现功能最齐全;
二、运行速度快、性能高,绝佳的用户体验;
三、支持大量图形和动画。不卡,反应快。
四、比较快捷地使用设备端提供的接口,处理速度上有优点。
缺点:
混合应用程序(Hybrid App)
即利用了原生APP的开发技术还应用了HTML5开发技术,是原生和HTML5技术的混合应用。混合比例不限。
优势:
一、开发周期短;
二、功能更新发布快;
缺点:
一、用户体验不如本地应用;
二、性能稍慢(须要链接网络);
Web版APP (Web App)
本质就是浏览器功能的叠加,用普通Web开发语言开发的,经过浏览器运行。
优点:
一、支持范围广;
二、开发成本低、周期短。
缺点:
一、对联网要求高,离线不能作任何操做;
二、功能有限;
三、运行速度慢,页面不能承载太多东西;
四、图片和动画支持性不高;
五、若是用户使用更多的新型浏览器,那么就会出现运行问题。
Web App、Hybrid App、Native App 技术特性:
手游app与手机App
手游通常使用引擎开发,如今著名的有cocos2d和unity3d。二者都是使用引擎自带的语言进行开发,主流的分别是c++和c#,虽然在开发过程当中也有按钮等控件的概念,但当运行时由引擎渲染后就变成了一副简单的图片;
手机App通常使用Android SDK开发,使用Java编写。经过Android提供的服务,咱们能够获取App当前窗口的视图信息,进而查找和操做按钮等控件,以完成自动化测试,如Uiautomator。
总结(Android)
各个测试框架的继承关系以下, 继承关系决定了有些框架的先天优点或先天不足。在实际应用中能够集成多个框架。
基于Instrumentation的测试框架,好比Espresso,Robotium,Selendroid等,都不能支持跨APP使用。 如自动化测试中有跨APP操做,能够二次开发或者结合UiAutomator实现。 支持BDD的自动化框架比较少,能够在calabash 和 RoboSpock及Jbehave之间选择。 若想同时支持Android和IOS,可选框架有Appium和Calabash,或AthRun。 若为单元测试选择框架,可选Instrumentation或Robolectric。Robolectric实现了shadow object 类,耗时短。
IOS自动化测试框架继承关系以下。 XCTest与 Xcode 的 IDE 直接集成,使用简单, 但其不支持stub和mock, 因此单使用XCTest框架的较少。 Kiwi是一个iOS平台十分好用的行为驱动开发BDD的测试框架,有着很是漂亮的语法,能够写出结构性强,很是容易读懂的测试。 UI Automation是Apple官方提供的UI自动化测试的解决方法,但接口不够丰富。