天天看點

Appium學習5:Package與ActivityPackage ActivityActivity擷取 Activity頁面布局元素

Package

Package 包。這是在我們的app中這個Package是唯一的,就像你身份證号碼一樣。

在我們做app自動化時,我們就需要知道他的Package,我們知道了Package那麼也就知道我們需要對哪個app做自動化。

注意和.apk檔案包名不同。

通過UIAuto示範不同app的包名

Appium學習5:Package與ActivityPackage ActivityActivity擷取 Activity頁面布局元素

也可通過adb shell pm list package指令查找包名

Appium學習5:Package與ActivityPackage ActivityActivity擷取 Activity頁面布局元素

Activity

Android中,activity是所有程式的根本,所有程式的流程都運作在activity之中,activity可以算是開發者遇到的最頻繁,也是android當中最基本的子產品之一。

在android的程式中,activity一般代表手機螢幕的一屏。如果把手機比作一個浏覽器,那麼activity就相當于一個網頁。

在activity當中可以添加一些Button、Checkbox等控件,可以看到activity概念和網頁的概念相當類似。

一般一個android應用是由多個activity組成的,這多個activity之間可以進行互相跳轉。例如,按下一個Button按鈕後,可能會跳轉到其他的activity,與網頁跳轉稍微有點不一樣的是,activity之間的跳轉有可能傳回值。

Tips:activity的生命周期:即“産生、運作、銷毀”,但是這其中會調用許多方法onCreate(建立) 、onStart(激活) 、onResume(恢複) 、onPause(暫停) 、onStop(停止) 、onDestroy(銷毀) 、onRestart(重新開機)。

Activity擷取

研發提供

aapt

aapt即Android Asset Packaging Tool,在SDK的build-tools目錄下。

該工具可以檢視,建立, 更新ZIP格式的文檔附件(zip, jar, apk)。

也可将資源檔案編譯成二進制檔案。擷取指令如下:

aapt dump badging xxxx.apk
aapt dump badging xxxx.apk | find "launchable-activity"
           
Appium學習5:Package與ActivityPackage ActivityActivity擷取 Activity頁面布局元素

可以把appt配置到環境變量(系統變量中的Path),這樣運作便捷一些,appt路徑:\Andriod_SDK\build-tools{version}

Activity頁面布局元素

FrameLayout

FrameLayout是最簡單的布局了。

所有放在布局裡的控件,都按照層次堆疊在螢幕的左上角。

後加進來的控件覆寫前面的控件。

Appium學習5:Package與ActivityPackage ActivityActivity擷取 Activity頁面布局元素

LinearLayout

LinearLayout按照垂直或者水準的順序依次排列子元素,每一個子元素都位于前一個元素之後。

如果是垂直排列,那麼将是一個N行單列的結構,每一行隻會有一個元素,而不論這個元素的寬度為多少;如果是水準排列,那麼将是一個單行N列的結構。

如果搭建兩行兩列的結構,通常的方式是先垂直排列兩個元素,每一個元素裡再包含一個LinearLayout進行水準排列。

Appium學習5:Package與ActivityPackage ActivityActivity擷取 Activity頁面布局元素

RelativeLayout

RelativeLayout相對布局允許子元素指定它們相對于其父元素或兄弟元素的位置,這是實際布局中最常用的布局方式之一。

AbsoluteLayout

AbsoluteLayout是絕對位置布局。在此布局中的子元素的android:layout_x和android:layout_y屬性将生效,用于描述該子元素的坐标位置。螢幕左上角為坐标原點(0,0),第一個0代表橫坐标,向右移動此值增大,第二個0代表縱坐标,向下移動,此值增大。在此布局中的子元素可以互相重疊。在實際開發中,通常不采用此布局格式,

TableLayout

TableLayout 為表格布局,适用于N行N列的布局格式。

一個TableLayout由許多TableRow組成,一個TableRow就代表TableLayout中的一行。

TextView

通常用于顯示文字用的。

ImageView

通常用于顯示圖檔用的。

繼續閱讀