android測試和iOS測試的區別


android測試和iOS測試的區別

一、常識性區別

 

 二、導航方式

iOS:Tab放在頁面底部,不能通過滑動來切換,只能點擊。也有放在上面的,也不能滑動,但有些Tab本身可以滑動,比如天貓的。還有新聞類的應用。

Android:一般放在頁面頂端,可以通過滑動頁面來切換Tab,當然Tab可以點擊切換,Tab多的話,Tab本身也可以滑動。比如豌豆莢,百度貼吧,QQ。總之,Android啥都可以有。(其他導航方式,見上一篇)

 

三、單條item的操作

iOS:單條item的操作有兩種,點擊和滑動,點擊一般進入一個新的頁面,滑動會出現對這條item的一些常用操作,如微信里滑動一條對話,會出現標記未讀和刪除。

Android:,單條item的操作也有兩種,點擊和長按,點擊一般進入一個新的頁面。長按進入一個編輯模式,可以在里面進行批量和其他一個操作,比如刪除,頂置等等。比如小米的短信頁面;長按也可以彈出情境操作欄dialog,進行操作,比如Android版的微信。

例外的是,Android里面也可以有單條item的滑動,如新版QQ,這種比較少見。安卓L的短信,可以滑動進行歸檔。大Android啥都可以有。

 

四、關於排版

iOS:喜歡居中排布

Android:喜歡左對齊,感覺左對齊更安卓。

 

五、實體鍵

iOS只有一個實體鍵home鍵(音量,電源不算哈);這個鍵有這么幾個功能:

按一次,回到桌面。

雙擊,出現多任務界面

iOS8里面,輕觸兩下Home鍵,調出單手模式

指紋解鎖

iPhoneX,iPhoneXS ,iPhoneXmax等都沒有home鍵了

Android有四個實體鍵(現在很多被屏幕上的虛擬鍵代替,但功效是一樣的)

Android4.4以下:分別是back鍵,home鍵,menu鍵,和搜索鍵。

Android4.4及以上:back鍵,home鍵,多任務鍵。安卓原生是這樣,經過優化的Android就不一定了,比如魅族的smart bar,根據當前頁面情景變化,不過蠻好用。

Android的back鍵,在大部分情況下,和頁面上的返回功效一樣。不過,Android的back鍵可以在應用件切換,還可以返回主屏幕。這個iOS里面的鍵不能在應用間直接切換。

 

六、動效

兩者的動效似乎差別不大,iOS有的,安卓都有。iOS實現的通常更加流暢,卡頓較少。

兩者都強調模擬現實世界的動畫效果,比如物體運動有一定的加速度,動畫的結束和開始速度小,中間速度大。

 

七、浮窗

Android:可以看到各種浮窗,流量,清理內存等等。

iOS:暫時還不支持這樣的浮窗。越獄的貌似可以。

 

App測試中ios和Android有哪些區別呢?

1 . Android長按home鍵呼出應用列表和切換應用,然后右滑則終止應用;

2. 多分辨率測試,Android端20多種,ios較少;

3. 手機操作系統,Android較多,ios較少且不能降級,只能單向升級;新的ios系統中的資源庫不能完全兼容低版本中的ios系統中的應用,低版本ios系統中的應用調用了新的資源庫,會直接導致閃退(Crash);

4.  操作習慣:Android,Back鍵是否被重寫,測試點擊Back鍵后的反饋是否正確;應用數據從內存移動到SD卡后能否正常運行等;

5. push測試:Android:點擊home鍵,程序后台運行時,此時接收到push,點擊后喚醒應用,此時是否可以正確跳轉;ios,點擊home鍵關閉程序和屏幕鎖屏的情況(紅點的顯示);

6.  安裝卸載測試:Android的下載和安裝的平台和工具和渠道比較多,ios主要有app store,iTunes和testflight下載;

7.  升級測試:可以被升級的必要條件:新舊版本具有相同的簽名;新舊版本具有相同的包名;有一個標示符區分新舊版本(如版本號),對於Android若有內置的應用需檢查升級之后內置文件是否匹配(如內置的輸入法)

 

另外:對於測試還需要注意一下幾點:

1.  並發(中斷)測試:鬧鈴彈出框提示,另一個應用的啟動、視頻音頻的播放,來電、用戶正在輸入等,語音、錄音等的播放時強制其他正在播放的要暫停;

2.  數據來源的測試:輸入,選擇、復制、語音輸入,安裝不同輸入法輸入等;

3.  push(推送)測試:在開關機、待機狀態下執行推送,消息先死及其推送跳轉的正確性;應用在開發、未打開狀態、應用啟動且在后台運行的情況下是push顯示和跳轉否正確;推送消息閱讀前后數字的變化是否正確;多條推送的合集的顯示和跳轉是否正確;

4. 分享跳轉:分享后的文案是否正確;分享后跳轉是否正確,顯示的消息來源是否正確;

5.  觸屏測試:同時觸摸不同的位置或者同時進行不同操作,查看客戶端的處理情況,是否會crash等

 

原文地址https://blog.csdn.net/wangjuan_0216/article/details/86588296

 

================================================================================================

================================================================================================

 

App測試中ios和Android的區別:

1、Android長按home鍵呼出應用列表和切換應用,然后右滑則終止應用;
2、多分辨率測試,Android端20多種,ios較少;
3、機操作系統,Android較多,ios較少且不能降級,只能單向升級;新的ios系統中的資源庫不能完全兼容低版本中的ios系統中的應用,低版本ios系統中的應用調用了新的資源庫,會直接導致閃退(Crash);
4、操作習慣:Android,Back鍵是否被重寫,測試點擊Back鍵后的反饋是否正確;應用數據從內存移動到SD卡后能否正常運行等;
5、push測試:Android:點擊home鍵,程序后台運行時,此時接收到push,點擊后喚醒應用,此時是否可以正確跳轉;ios,點擊home鍵關閉程序和屏幕鎖屏的情況(紅點的顯示);
6、安裝卸載測試:Android的下載和安裝的平台和工具和渠道比較多,ios主要有app store,iTunes和testflight下載;
7、升級測試:可以被升級的必要條件:新舊版本具有相同的簽名;新舊版本具有相同的包名;有一個標示符區分新舊版本(如版本號),對於Android若有內置的應用需檢查升級之后內置文件是否匹配(如內置的輸入法)


另外:對於測試還需要注意一下幾點:
1、並發(中斷)測試:鬧鈴彈出框提示,另一個應用的啟動、視頻音頻的播放,來電、用戶正在輸入等,語音、錄音等的播放時強制其他正在播放的要暫停;
2、數據來源的測試:輸入,選擇、復制、語音輸入,安裝不同輸入法輸入等;
3、push(推送)測試:在開關機、待機狀態下執行推送,消息先死及其推送跳轉的正確性;應用在開發、未打開狀態、應用啟動且在后台運行的情況下是push顯示和跳轉否正確;推送消息閱讀前后數字的變化是否正確;多條推送的合集的顯示和跳轉是否正確;
4、分享跳轉:分享后的文案是否正確;分享后跳轉是否正確,顯示的消息來源是否正確;
5、觸屏測試:同時觸摸不同的位置或者同時進行不同操作,查看客戶端的處理情況,是否會crash等


iOS和Android的區別,想了很久,也沒想出特別多,這兩個系統有些東西越來越通用(設計上來說),尤其是Android上,可以實現所有的效果,當然有些看上去iOS很像。長得和iOS很像的Android應用很多,好多大牌也這么做,比如說現在的QQAndroid5.1.1。這樣只需要一套設計,出一套資源就OK了,比較高效節約。兩個平台的使用體驗比較統一,但我還是喜歡有各系統設計本來特色的設計,安卓感覺的應用,wp感覺的應用。做一款純粹的Android應用,真是讓人興奮的一件事情。
區別,在這兩種系統的原生應用里就能發現。Android 一直在尋找合適的設計語言,最新的material design,和以前相比,又是一個大轉變。iOS相對比較穩定。這里的區別,聚焦在界面設計中,不涉及底層的內容(是你不懂寫不出來吧)區別,這些的區別也不絕對。

1 導航方式:
iOS的Tab放在頁面底部,不能通過滑動來切換,只能點擊。也有放在上面的,也不能滑動,但有些Tab本身可以滑動,比如天貓的。還有新聞類的應用。
Android一般放在頁面頂端,可以通過滑動頁面來切換Tab,當然Tab可以點擊切換,Tab多的話,Tab本身也可以滑動。比如豌豆莢,百度貼吧,QQ。總之,Android啥都可以有。(其他導航方式,見上一篇)

2 單條item的操作
iOS單條item的操作有兩種,點擊和滑動,點擊一般進入一個新的頁面,滑動會出現對這條item的一些常用操作,如微信里滑動一條對話,會出現標記未讀和刪除。
Android中,單條item的操作也有兩種,點擊和長按,點擊一般進入一個新的頁面。長按進入一個編輯模式,可以在里面進行批量和其他一個操作,比如刪除,頂置等等。比如小米的短信頁面;長按也可以彈出情境操作欄dialog,進行操作,比如Android版的微信。
例外的是,Android里面也可以有單條item的滑動,如新版QQ,這種比較少見。安卓L的短信,可以滑動進行歸檔。大Android啥都可以有。

3關於排版
iOS喜歡在居中排布
Android喜歡左對齊,感覺左對齊更安卓。

4實體鍵
iOS只有一個實體鍵(音量,電源不算哈),home鍵,這個鍵有這么幾個功能:
1按一次,回到桌面。
2 雙擊,出現多任務界面
3 iOS8里面,輕觸兩下Home鍵,調出單手模式
4 指紋解鎖
Android有四個實體鍵(現在很多被屏幕上的虛擬鍵代替,但功效是一樣的)4.4一下的分別是back鍵,home鍵,menu鍵,和搜索鍵。4.4及以上,是back鍵,home鍵,多任務鍵。安卓原生是這樣,經過優化的Android就不一定了,比如魅族的smart bar,根據當前頁面情景變化,不過蠻好用。Android的back鍵,在大部分情況下,和頁面上的返回功效一樣。不過,Android的back鍵可以在應用件切換,還可以返回主屏幕。這個iOS里面的鍵不能在應用間直接切換。

5 動效
兩者的動效似乎差別不大,iOS有的,安卓都有。iOS實現的通常更加流暢,卡頓較少。
兩者都強調模擬現實世界的動畫效果,比如物體運動有一定的加速度,動畫的結束和開始速度小,中間速度大。
谷歌最新推出的material design,變化比較大,但這種設計風格還沒有大面積使用。這種設計風格,最突出的特點就是有一個懸浮按鈕。這個懸浮按鈕,代表了這個頁面的主要操作,位置可以在頁面上部,也可以在下部分。這次的動效也是亮點,動畫實時實地的反饋用戶的操作,動畫在用戶的點擊出開始觸發。又很多類似漣漪的效果。這種按鈕的動效變化,概念稿多,好像還沒有實際的案例。(馬上就有啦...正在做)

6 浮窗
安卓里可以看到各種浮窗,流量,清理內存等等。iOS暫時還不支持這樣的浮窗。越獄的貌似可以。

這兩個平台,只有想不到,幾乎沒有不可以實現。安卓更加開放,可自定義的東西也更多,做花樣的話,安卓的限制更少。
總結了在做iOS與Android安全研究時,需要了解的區別。包括系統架構的區別,安裝包的區別,文件系統的區別,二進制文件的區別,安全機制的區別與版權保護的區別

 


一、系統架構的區別(左邊iOS,右邊Android)

1.iOS架構
分為4層,分別為
(1)cocoa Touch層:包括Foundation Framework,UIkit Framework,Address Book UI Framework
(2)媒體層:包括圖像(Quartz,Core Animation,OpenGL ES),音頻(Core Audio,OpenAL)和視頻技術
(3)核心服務層:例如CoreFoundation.framework是基於C語言的接口集,提供應用的基本數據管理和服務功能;CFNetwork.framework是一組高性能的C語言接口集,提供網絡協議的面向對象的抽象。開發者可以使用CFNetwork框架操作協議棧,並且可以訪問底層的結構如BSD sockets等;Security.framework提供管理證書,公鑰/私鑰對和信任策略等的接口來確保應用數據的安全性
(4)核心OS層: 基於Mac操作系統

2.Android架構
分為4層,分別為
(1)應用程序:使用java編寫
(2)應用程序框架:
活動管理器:用來管理應用程序生命周期並提供常用的導航回退功能
資源管理器:提供非代碼資源的訪問,如本地字符串、圖形和布局文件
內容提供器:用來存放和獲取數據並使用這些數據可以被所有應用程序訪問
XMPP服務器:基於XML的網絡實時通訊協議
(3)系統運行庫+Android運行時系統運行庫:android包括一些c/c++庫,這些庫能被android系統中的不同的組件使用,例如libc是一個從BSD繼承來的標准c系統函數庫;webkit為Web瀏覽器引擎,支持Android瀏覽器(蘋果Safari的引擎也是webkit)。SQLite為功能強勁的輕量級關系數據庫引擎(iOS也是采用的該數據庫引擎)。Android運行時:包括核心庫(基本類庫,例如data structure,network,file system等),很多實現代碼都來自Apache Harmony項目,主要目的時保證虛擬機的類庫能夠與Java SE類庫最大程度的兼容)與Dalvik虛擬機(用於運行dex:dalvik executable格式二進制可執行文件,該虛擬機較之java虛擬機的最大區別是Dalvik基於寄存器)
(4)linux內核:基於linux 2.6內核

總的來說,如果要深層次挖掘Android的漏洞就要明白linux內核安全,如果要挖身深層次挖掘iOS的漏洞就要了解Mac內核安全(BSD內核安全)。


二、安裝包的區別(左邊iOS,右邊Android)

總的來說,安裝包由可執行文件,資源文件,簽名文件,配置文件組成。


三、文件系統的區別(左邊iOS,右邊Android)

注意: android的sdcard是不受文件訪問控制約束的


四、二進制文件的區別
1. iOS二進制文件格式 mach-o , dylib
2.Android二進制文件的區別 dex, so(ELF shared object)


五、安全機制的區別
1. iOS安全機制
(1)安全沙箱進程隔離,每個程序都有自己的虛擬地址空間。應用程序在安裝之后,系統就通過計算得到一個標識,然后基於應用程序的根目錄和這個標識構件一個指向應用程序目錄的路徑,其他應用程序都不能進行訪問。iOS 的沙箱是基於TrustBSD策略框架的內核擴展模塊,針對每個進程都可以制定特殊的沙箱配置文件,沙箱配置文件編譯后以2進制的方式保存在KernelCache文件中(iOS下),需反匯編成可讀的文本格式來查看內核中的沙盒規則

(2)代碼簽名
apple需要所有開發人員對自己的iPhone應用程序使用數字簽名技術。這個簽名用來標識應用程序的開發者以及保證應用程序在簽名之后不被更改和損壞。開發者證書由apple提供(這是與android最大的區別,android是自簽名),有以下兩類證書:
Developer Certificate:用於本機測試
Distribution Certificate:Ad-hoc用於100台設備以內的測試和共享;app store用於發布應用程序所有的可執行文件、庫文件都需要Apple簽名后才可以運行在iOS中,內核會在調用execve之前檢測Mach-o文件中的LC_CODE_SIGNATURE段是否有效和可信任的,iOS啟動的時候同樣也會檢測KernelCache的簽名是否有效代碼簽名的破壞可見《iOS平台游戲安全之IPA破解原理及防御》
(3)ASLR(address space layout randomisation)/DEP
PIE: position independent executable
iOS 4.3后開始支持該功能,iOS上的預裝應用都開啟了該功能
ASLR的其他信息可見《ASLR》
DEP(Data execution Prevention),內核不允許將頁面保護標志設置為RWS,並在ARMv6引入XN(execute never)標志位,從而在硬件上支持執行保護。
(4)文件系統加密
Data protection APIs
NSFileProtectionNone
NSFileProtectionComplete
NSFileProtectionCompleteUnlessOpen
NSFileProtectionCompleteUntilUserAuthentication
KSecAttrAccessibleAlways
KSecAttrAccessibleWhenUnlocked
KSecAttrAccessibleAfterFirstUnlock
KSecAttrAccessibleAlwaysThisdeviceOnly
KSecAttrAccessibleWhenUnlockedThisDeviceOnly
KSecAttrAccessibleAfterFirstUnlockThisDeviceOnly

2.Android安全機制
(1)安全沙箱
每一個Android應用程序(apk文件)會在安裝時分配一個獨有的linux用戶ID(即一個用戶id識別一個應用程序),這就為它建立了一個沙箱,使其不能與其他應用程序進行接觸。這個用戶ID在安裝時分配,並在該設備上一直保持同一個數值。所有存儲在應用程序中的數據都會賦予該應用程序的用戶ID,使其他應用程序無法訪問這些數據(如需要訪問,見(4)文件訪問控制)。

(2)代碼簽名
采用自簽名機制,不需要權威機構簽名和審核,完全由用戶自行判斷是否信任該程序(與iOS區別很大)。簽名是為了:識別代碼的作者檢測應用程序是否發生了變化在應用程序之間建立信任:使用相同數字簽名簽署的兩個應用程序可以相互授予權限來反問基於簽名的API,如果他們共享用戶ID,那么也可以運行在同一進程中,從而允許訪問對方的代碼和數據(見(4)文件訪問控制)。代碼簽名的詳細機制可見《Android簽名與簽名校驗》

(3)manifest權限管理
Android要求用戶在使用API時進行申明,稱為permission,對一些敏感API的使用在安裝時就可以給用戶風險提示,由用戶確定是否安裝,例如READ_CONTACTS為讀取通訊錄數據權限。權限在AndroidManifest.xml文件里進行設置,通過元素添加子元素,如下圖所示
permission分為4個保護等級:normal,dangerous,signature,signatureorsystem。不同的保護級別代表程序要使用此權限時的認證方式。
normal:只要申請就可以使用
dangerous:在安裝時需要用戶確認才可以使用,最經常使用的權限
signature:告訴android系統這個權限只能授予擁有同樣數字簽名並且定義了該權限的應用程序
signatureorsystem:需要開發者的應用和系統使用同一個數字證書,即需要系統或者平台簽名,真實手機中的系統簽名只有廠商知道應用程序也可以定制權限以保護自己的資源,當前ita應用程序想要訪問一個應用程序的受保護資源時,就必須通過它們自己的manifest文件請求適當的權限

(4)文件訪問控制
因為安全沙箱的存在導致不同應用程序之間的數據(文件)是隔離的。在通過getSharedPreferences(filename,operatingMode) openFileOutput(filename,operatingMode) openOrCreateDatabase(filename,operatingMode, SQLiteDatabase.CursorFactory)等方法來創建一個新文件時,可以通過指定文件的存儲方式operationMode來進行文件的訪問控制,android文件存儲有以下4種方式:
Context.MODE_PRIVATE:默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容
Context.MODE_APPEND:代表該文件是私有數據,只能被應用本身訪問,在該模式下,會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件
Context.MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取
Context.MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入。
除了使用Context.MODE_WORLD_READABLE/Context.MODE_WORLD_WRITEABLE標識位來使兩個程序相互訪問對方的資源。還可以通過設置AndroidManifest.xml文件的manifest標簽中的sharedUserId屬性,來使得不同的應用程序共用同一個用戶ID,並且這些應用程序還使用同一個簽名簽署,在滿足以上兩個條件(共同的sharedUserID,共同的簽名)的情況下就可以實現不同應用程序相互資源的訪問了,如下圖所示

(5)ASLRandroid 4.1后才開始支持完整版功能


六、版權保護的區別

1. iOS
App store,采用FairPlay DRM保護商店下載應用
2. Android
(1)google play store,采用Android License Verification Library保護商店下載應用
(2)Amazon Appstore DRM
(3)其他

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM