主流: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自動化測試的解決方法,但接口不夠豐富。