- iOS自動化測試實戰:基于Appium、Python與Pytest
- Storm 程立編著
- 1233字
- 2025-06-19 18:02:22
2.2 App的類型與區別
從“是否原生”的角度來說,App分為3類,即原生App、Web App和混合App。對于不同類型的App,開展自動化測試使用的手段也不同。本節將介紹這3類App,以及它們的區別。
原生App依托于操作系統,它的交互性及可擴展性很強,需要用戶下載并安裝才能使用,是一個“完整”的App。
原生App是某個移動平臺(如iOS或Android平臺)所特有的,使用相應平臺支持的開發工具(如Xcode、Android Studio)和編程語言(如Swift、Kotlin)開發。一般來說,原生App的UI更好看、運行速度更快(性能更好)。
原生App的優勢如下。
● 運行速度快,性能好,用戶體驗更好。
● 可以調用移動終端硬件設備。
● 可訪問本地資源。
● 由于App下載到了本地(安裝到移動終端),因此在運行App時可節省帶寬成本(本地資源不需從網絡端請求)。
原生App的劣勢如下。
● 開發成本高,需針對不同平臺開發不同的版本。
● 需要維護多個版本。
● 利潤需要分給第三方一部分。
● 新版本需重新下載(它會不斷提示用戶下載更新,導致用戶體驗差)。
● 發布新版本需通過應用商店確認,而且發布時間長(應用商店審核的周期長),iOS平臺App審核一般需要1~3個工作日。
Web App是基于Web的App,它運行于網絡和瀏覽器上,目前多采用HTML5標準開發,無須下載與安裝。
HTML5 App使用標準的Web技術,這些技術通常是HTML5、JavaScript和CSS(Cascading Style Sheet,串聯樣式表)。HTML5 App的運行依賴于Web環境,因此具有只編寫一次即可跨平臺運行的效果。
Web App的優勢如下。
● 跨平臺開發,基于瀏覽器。
● 開發成本低,整體量級輕。
● 無須安裝,節約內存空間。
● 可隨時上線,不需要等待審核。
● 更新時無須通知用戶,自動更新。
● 維護比較簡單。
Web App的劣勢如下。
● 需要依賴網絡,用戶體驗相對較差。
● 功能受限,無法獲取系統級別的通知、提醒、動態效果等。
● 入口強依賴于第三方瀏覽器,導致用戶留存率低。
● 頁面跳轉費力,穩定性弱。
● 安全性相對較低,數據容易泄露或被劫持。
混合App指的是原生App中包含部分Web頁面的混合類App。它需要下載與安裝,看上去是原生App,但App中的部分頁面是通過UIWebView訪問的Web HTML5內容。混合App讓開發人員可以把HTML5 App嵌入一個原生容器里,集原生App和HTML5 App的優勢(劣勢)于一體。
混合App的優勢如下。
● 比例自由,如Web App占90%,原生App占10%,或者各占50%。
● 便于調試,開發時可以通過瀏覽器調試,調試工具豐富。
● 可輕松訪問手機的各種功能。
● 可以從應用商店中下載(Web App套用原生App的外殼)。
● 混合App需要在應用商店進行發布,但能自主更新,而原生App的更新必須通過應用商店實現。
● 移動Web對搜索引擎友好,可與在線營銷無縫整合。
● 兼容多種平臺,可離線使用。
● 頁面存放采用本地和服務器兩種方式。
● 省去了跳轉瀏覽器的麻煩。
● 支持消息推送,有助于提高用戶忠誠度。
● App安裝包減小。
混合App的劣勢如下。
● 上線時間不確定。
● 性能稍差(需要連接網絡)。
● 用戶體驗不如原生App。
● 混合App可以通過JavaScript API(Application Program Interface,應用程序接口)訪問移動設備的攝像頭、導航系統,而原生App可以通過原生編程語言訪問設備所有功能。
原生App、Web App、混合App技術特性總結如表2-1所示。
表2-1 原生App、Web App、混合App技術特性總結

- Android Jetpack開發:原理解析與應用實戰
- Learning RxJava
- D3.js By Example
- Raspberry Pi Robotic Projects(Third Edition)
- Scala編程(第5版)
- BeagleBone Robotic Projects(Second Edition)
- Visual FoxPro 6.0程序設計
- 多媒體技術及應用
- JavaScript編程精解(原書第2版)
- Design Patterns and Best Practices in Java
- Learning Redux
- C語言程序設計實驗指導與習題精解
- Java Web入門很輕松(微課超值版)
- Sony Vegas Pro 11 Beginner’s Guide
- 編寫高質量代碼:改善JavaScript程序的188個建議