iOS系統及客戶端軟體測試的基礎介紹 iOS現在的最新版本iOS5是10月12號推出,當前版本是4.3.5 先是硬體部分,採用iOS系統的是iPad,iPhone,iTouch這三種裝置,其中iPhone和iTouch的系統基本一致,iPad區別的地方主要是解析度尺寸上的區分
1.整個系統介紹
iOS現在的最新版本iOS5是10月12號推出,當前版本是4.3.5
先是硬體部分,採用iOS系統的是iPad,iPhone,iTouch這三種裝置,其中iPhone和iTouch的系統基本一致,iPad區別的地方主要是解析度尺寸上的區分
接著軟體部分,就是常說的os部分,現在常見的系統是4.2.1/4.3.3/4.3.5/5.0.0/5.0.1,其中4.3.3以上的版本iPad版本支援手勢,5.0.0以上版本支援通知欄和icloud,其中5.0.0和4.x相差較多,apple號稱的修改點有200多
第三對於各個app來說,每個app都有一些固定資訊,app的id(區分app的唯一標識),顯示的名稱(包括app安裝後顯示名和在appstore上的顯示名),支援的iOS版本(最低支援的os版本,一般是支援iOS4.0以上,但是對於不同的app因為應用到了不同的系統功能,故要求的iOS版本也會不同,以後要求iOS5.0版本的app也會多起來的)
2.安裝
1)官方的安裝方式
可以PC/MAC機上下載好,然後用itunes同步到機器上,或者直接在機器上到appstore上下載到本機然後下載,這是最普通和官方的安裝方式,但是隻能使用已經在appstore上線的app,對於測試的版本基本無意義
2)越獄
越獄/破解,現在4.3.3版本有完美破解,以上的版本只有不完美破解,以後可能會有完美方式(注,不完美破解是不能重啟機器),越獄之後的機器就可以不受限制的裝各種app到機器上,對於測試版本來說比較方便
3)開發機模式
開發機模式是一個俗稱,正式名字其實我也不是很清楚,大家明白即可,一個apple的釋出者賬戶,可以支援100臺裝置,即可以生成100個不同SN串號的證書安裝到機器上,這樣釋出者賬戶編譯出來的版本就可以安裝到對應的開發機上,證書可以在設定通用描述檔案中找到,當然apple的釋出者賬戶還有其他兩種型別:企業賬戶和學生用賬戶,這2個賬戶是不能將app釋出到appstore的,這裡就不具體說明了
4)OTA模式
OTA不是一個新鮮的東西,以前很多的手機軟體都是如此安裝,可以直接從機器上訪問安裝地址安裝,最為方便,前提是機器是破解的或者已安裝開發者證書,移動這邊現在基本上正在開發的專案都是有這樣的安裝方式,簡化安裝步驟
以上是一些不同的安裝方式,其他還有91助手/同步助手等第三方工具安裝,但是這些只是一些輔助方式區別,app能否安裝取決於apple賬戶有沒有購買過此app和此機器上有沒有對應apple賬戶登入,購買可以認為是一種新增證書許可動作,開發者證書也是一種,而越獄則是繞過了證書驗證
3.相容性
1)硬體相容性
三種裝置中iPhone和iTouch裝置基本一致,iPad因為解析度和尺寸上不同,一般的客戶端都會分開開發,如果是全相容的app,那麼需要兼顧測試,而全相容性的app需要多考慮的是怎樣在pad和phone的螢幕上設計一個兼顧型的展現,不過這是互動和視覺設計師需要考慮的地方
回到分開開發的模式中,iPhone和iTouch可以認為是同一種裝置,差異很小,主要的差異也就是在來電和簡訊中斷方面,另一個要注意的就是iPad可以安裝只適用iPhone/iTouch的app,以相容模式顯示,此時基本上可以認為是在一個iTouch上執行此app
同一類裝置不同機型的相容性,一共是iPhone有5代,iPad有2代,iTouch有4代,機器之間的差異對於app來說主要就是記憶體和CPU的效能和打完包後的大小以及解析度的適配,iPhone4和iTouch4及以上是用640*960解析度,以下是低解析度機器,4代之前之後的CPU用的不同,所以編譯版本時要相容2種CPU,而iPad只有一種解析度和一種CPU,所以不用考慮太多,同一個app的iPhone版本往往比iPad版本的安裝包檔案要大,基本上就是CPU和解析度這2種原因
就硬體相容性來說,基本上iPhone的客戶端要測2個機器(3代和4代各一,iPhone和iTouch隨意),iPad客戶端沒有要求
2)系統相容性
前面也說了,常見的系統是4.2.1/4.3.3/4.3.5/5.0.0/5.0.1,有條件是儘量測試,但是因為iOS版本只能往上升級,要降級需要越獄和儲存SHSH,所以一般儘量保證4.3.3/4.3.5或者5.0.0/5.0.1的版本,4.x和5.x的版本據apple列了200多點,其中還有各種不確切的問題,所以一定需要測試,4.2.1版本是因為iPhone和iTouch2代只能升級到此os版本,使用者量很少,而iPad的使用者也只有早期且不升級的才有此os,國內使用者量很少
按照apple的以往做法,支援低版本的iOS的app,都可以在高版本上正常執行,系統級別上向下相容,但是也有不少例外,特別是一些自定義的控制元件,直接使用系統提供的控制元件一般不會有問題
系統方面的相容性除了要保證功能正確以外,還要考慮一些新os上才支援的功能,在老os上的表現,而apple現在還在不停的更新os,故要提前保證新的beta版本os的相容狀況
3)其他軟體相容性
其實也沒有什麼其他軟體,iOS系統中允許app呼叫的也只有通訊錄照片瀏覽器等系統自帶的軟體,也有內嵌和重新開啟介面這2種狀態,而重開介面時系統會將當前軟體保留,所以一般不會有介面方面的問題
4.使用者體驗
功能方面因為各個app都是不同的,所以就不展開了,簡單的介紹下一些使用者體驗需要注意的地方:
滑動拖動翻頁等動畫效果
各個頁面的旋轉螢幕,特別是iPad的客戶端
多點觸控手勢,各種手勢定義下的效果展示,以及iOS中儘量不要出現長按選單的功能,這是android上的預設效果,iOS上長按大多是進入一個特別的狀態
按鈕意義要明顯,如果使用了過多的文字說明,不是個好主意
5.效能
前文有介紹各種機器,因為新機器的效能往往是最好的,所以我的觀點是測試就用差點的機器吧 =.=
iOS的記憶體管理是優先保證當前,有多少用多少,超過上限不夠用直接關閉app,也就是常說的crash,自動退出,所以記憶體回收方面需要注意,也可以在開發機上直接監控記憶體使用量,不過記憶體監控只能看到整個app的使用量,看不到具體模組的使用,而os4.0以上每個關掉的app系統會自動儲存一個最小映象,當記憶體不夠用的時候會連此映象都關閉,這就是有時候開啟app能看到關閉前的介面有些只能看到loading頁面的原因,特別是遊戲類的app會有這樣的現象,另外,越獄的機器的可用記憶體會大約小不少
CPU部分就簡單了,iOS的機制保證了CPU佔用量很高的情況很少出現,一般多資料多執行緒時會有卡和停頓的狀況就是CPU不夠用了,這也只能靠設計上來避免了
CPU部分就簡單了,iOS的機制保證了CPU佔用量很高的情況很少出現,一般多資料多執行緒時會有卡和停頓的狀況就是CPU不夠用了,這也只能靠設計上來避免了
網路部分,主要是2g/3g/wifi的速度,但是這個效能指標要根據不同的情況來考慮,一般來說對比同類app的效果即可
6.webapp
現在杭研有不少webapp類的專案在進行,因為我只是簡單的看了下,就隨便說下我的理解,大家有問題儘管提
webapp的優點是開發迅速和維護簡單,大部分功能是用html5來完成的,所以客戶端的開發工作比較少,而且大部分功能的維護修改也只要在前端修改html程式碼即可,不用升級客戶端版本,可以節約很多不同客戶端相容覆蓋安裝等工作
缺點也比較明顯,功能上還是做不到和客戶端一樣的效果,使用時需要較多的網路流量,需要有不少工作需要前端來完成
個人覺得比較類似flash網頁遊戲和客戶端類遊戲的樣子,facebook據說客戶端都是採用此類方式開發,他們有一個強大的mobile web庫,對於測試來說,即使是webapp,依然要向客戶端類的體驗靠攏
PS 很早開始寫,結果這樣那樣的原因才完成...
PS2 iOS最近也在更新,特別是5.0新上線,更新的東西肯定會比較多,並且也在不停的吸收一些優秀設計和功能,需要跟進腳步
PS3 基本上簡單的寫了一些基礎方面的東西,來源是最早給幾個同事簡單講解ios的介紹,因為當時也沒準備什麼,所以可能還是寫成文章清楚點
PSP 有啥問題歡迎popo評論等各種方式交流
XBOX 歡迎大家使用iOS裝置,最好能越獄,能幫我們做內測最好了,裝置實在是很少啊