- iOS自動化測試實戰:基于Appium、Python與Pytest
- Storm 程立編著
- 1310字
- 2025-06-19 18:02:21
2.1 移動操作系統概覽
2010年前,移動操作系統曾呈現“百花齊放”的態勢,其中有Nokia(諾基亞)的Symbian、BlackBerry(黑莓)的BlackBerry OS、Google(谷歌)的Android、Apple(蘋果)的iOS、Microsoft(微軟)的Windows Phone等,但隨著時間的推移,iOS和Android操作系統幾乎占據了移動操作系統的全部市場份額。本書聚焦iOS自動化測試。接下來,讓我們簡單了解一下iOS。
iOS(iPhone Operating System)是由蘋果公司開發的移動操作系統。該系統最初是供iPhone使用的,后來陸續應用到iPod touch、iPad和Apple TV等產品上。iOS與蘋果公司的macOS一樣,屬于類Unix的商業操作系統。iOS是軟件應用程序與設備硬件之間的橋梁。軟件應用程序首先與iOS的接口通信,iOS收到信息后與底層硬件交互,從而完成軟件應用程序要完成的任務。iOS架構分為4層,從下到上依次為Core OS層、Core Services層、Media層和Cocoa Touch層。
開發者使用iOS控件來解決用戶與iOS平臺界面交互的問題。下面簡要介紹一下iPhone的常用控件。
窗口(UIWindow)控件是App中處于底層的、固定不變的控件。iPhone的規則是一個窗口中可以放置多個視圖。
視圖(UIView)控件是開發者構建界面的基礎,所有的控件都是在這個界面上“畫”出來的,可以把它當成畫布。開發者可以通過視圖控件增加控件,并利用控件與用戶進行交互。
窗口控件和視圖控件是非常基本的控件,創建任何類型的UI都要用到它們。窗口表示屏幕上的一個幾何區域,視圖控件用自身的功能“畫”出不同的控件,如導航欄、按鈕等都附著在視圖控件之上,一個視圖會鏈接到一個窗口。
視圖控制器(UIViewController)的主要功能是對視圖控件進行管理和控制,你可以在視圖控制器中控制顯示某個具體的視圖控件。另外,視圖控制器還增添了額外的功能,如內置的旋轉屏幕、轉場動畫,以及對觸摸等事件的支持。
數據展示視圖包含以下內容。
● UITextView:將文本段落呈現給用戶,并允許用戶使用鍵盤輸入文本。
● UILabel:實現短的只讀文本,通過設置視圖屬性為標簽選擇顏色、字體和字號等。
● UIImageView:通過UIImage加載圖片,并將圖片賦給UIImageView,加載后可以指定圖片顯示的位置和大小。
● UIWebView:提供并顯示HTML(HyperText Markup Language,超文本標記語言)文件、PDF文件等其他高級的Web內容,包括Excel、Word等文檔等。
● MKMapView:通過MKMapView向App嵌入地圖,很多熱門的LBS(Location-Based Service,基于位置的服務)App就是基于MKMapView來做的,結合MKAnnotation- View和MKPinAnnotationView類注釋地圖。
● UIScrollView:一般用來呈現超出正常的程序窗口的一些內容,可以通過水平和豎直滾動來查看全部的內容,并且支持縮放功能。
用戶選擇視圖包含以下內容。
● UIAlertView:通過警告視圖讓用戶選擇或者向用戶顯示文本。
● UIActionSheet:類似于UIAlertView,但當選項比較多的時候可以操作表單,它提供從屏幕底部向上滾動的菜單。
其他的控件如下。
● UIButton:用于調用想要執行的方法。
● UISegmentControl:可以設置多個選項,當觸發相應的選項時,調用不同的方法。
● UISwitch:可以選擇開或者關。
● UISlider:用于控制音量等。
● UITextField:用于顯示所給的文本。
● UITableView:用于自定義需要的表格視圖,表頭和表身都可以自定義。
● UIPickerView:一般用于日期的選擇。
● UISearchBar:一般用于查找。
● UIToolBar:一般用于搭建主頁面的框架。
● UIActivityIndicatorView:用于指示某項活動正在進行中,如正在加載數據、正在進行網絡請求等。
● UIProgressView:一般用于顯示下載的進度。
但是隨著iPhone的日益流行,iPhone原生的控件難以滿足產品日益增長的功能需要,iPhone開始鼓勵用戶創新,因此出現了更多的iPhone控件,使開發者可以將現有的技術應用在iPhone平臺上,并創建更好的界面、Web應用程序和App。
- Redis入門指南(第3版)
- PaaS程序設計
- 程序員數學:用Python學透線性代數和微積分
- Python網絡爬蟲從入門到實踐(第2版)
- 微信公眾平臺開發:從零基礎到ThinkPHP5高性能框架實踐
- JavaScript by Example
- UML 基礎與 Rose 建模案例(第3版)
- 深入理解Elasticsearch(原書第3版)
- 匯編語言編程基礎:基于LoongArch
- Python入門很輕松(微課超值版)
- Orchestrating Docker
- Python一行流:像專家一樣寫代碼
- Practical Predictive Analytics
- C語言程序設計教程
- Apache Solr for Indexing Data