java实现图形界面输入半径求圆面积_测试开发工程师系列之Android自动化测试Appium(Python)连载(7)安卓图形界面...
安卓圖形界面
UI即User Interface(用戶界面)的簡稱。泛指用戶操作界面,包含移動APP,網頁,智能穿戴設備等。Android用戶界面測試,要測試應用程序如何與一個真實的用戶交互。這種測試確保應用程序返回響應用戶一系列操作的正確的UI輸出,如鍵盤輸入或按工具欄,菜單,對話框,圖像,和其他用戶界面控件。Android的界面是由布局和控件協同完成的,布局好比是建筑里的框架,而控件則相當于建筑里的磚瓦。控件按照布局的要求依次排列,就組成了用戶所看見的界面。
Android Studio工程目錄
Android Studio是一款Android平臺開發程序的集成開發環境。2013年5月16日在Google I/O上發布,可供開發者免費使用。支持Windows、Mac、Linux 等操作系統,基于Java整合開發環境IntelliJ之上搭建而成。
通過學習Android應用程序源代碼工程文件,加深AndroidUI自動化測試過程中識別對象的理解,下面以Android Studio開發環境為例,說明Android項目的目錄結構(包含默認沒有生成的文件):
AndroidStudio工程目錄
文件目錄類型分成是三種:編譯系統(Gradle),配置文件,應用模塊。
l.gradle: Gradle編譯系統是以Groovy 語言為基礎,面向Java應用為主。基于DSL(領域特定語言)語法的自動化構建工具。集成了構建,測試,發布和其他,比如軟件打包,生成注釋文檔等功能。
l.idea:Android Studio IDE所需要的文件
lApp:
? app/build: app模塊編譯輸出的文件包括最終生成的安裝程序后綴為APK的文件)
? app/libs:放置引用的類庫文件,含jar包和jni等包
? app/src:放置應用的主要文件目錄,也就是源代碼所在的目錄,這個目錄包含了即將創建的Java源代碼文件,這個目錄里的文件是根據package結構管理的,它與普通java項目中的/src目錄很相似。
app/src/main:主要代碼所在的位置:
u app/src/main/aidl:aidl開發時.aidl文件的存放位置
u app/src/main/assets:Android中附帶的一些文件,如網頁的相關文件
u app/src/main/java:主要Java代碼存放的位置
u app/src/main/jni:jni的一些動態庫所在的默認位置(.so文件)
u app/src/main/AndroidManifest.xml:清單文件 這個XML文件包含android應用中的元信息,是每個android項目中的重要文件。在軟件安裝的時候被讀取,Android中的四大組件(Activity、ContentProvider、BroadcastReceiver、Service)都需要在該文件中,以及運行這個Android應用程序需要的用戶權限列表,例如:電話、短信、互聯網、訪問SD卡,同時也詳細描述了android應用的項目結構。
u app/src/main/res:該目錄用于存放應用程序中所有用到的資源文件,其中包括圖片、布局文件以及參數描述文件等,其中包括多個目錄:
ü app/src/main/res/drawable:存儲一些xml文件,-*dpi表示存儲分辨率的圖片,用于適配不同的屏幕。 -mdpi:320x480; -hdpi:480x800、480x854; -xhdpi:至少960x720; -xxhdpi:1280x720
ü app/src/main/res/layout:App布局及界面元素配置,layout文件夾存放的是應用程序的布局文件,這些layout是以xml形式保存的
ü app/src/main/res/mipmap:存儲原聲圖片資源
ü app/src/main/res/values:存儲app引用的一些值。 - colors.xml:存儲了一些color的樣式; - dimens.xml:存儲了一些公用的dp值; - strings.xml:存儲了引用的string值; - styles.xml:存儲了app需要用到的一些樣式;
? app/.gitgnore:git使用的ignore文件
? app/app.iml: app模塊的配置文件
? app/build.gradle: app模塊的gradle編譯文件
? app/proguard-rules.pro: app模塊proguard文件
lbuild: 代碼編譯后生成的文件存放的位置
l.gradle: wrapper的jar和配置文件所在的位置
l.gitignore:git使用的ignore文件
l.build.gradle:項目的gradle編譯文件
l.gradle.properties:gradle相關的全局屬性設置
l.gradlew:編譯腳本,可以在命令行執行打包
l.gradlew.bat:windows下的gradle wrapper可執行文件
l.local.properties:本地屬性設置(key設置,android sdk位置等屬性),這個文件是不推薦上傳到VCS中去的
l.settings.gradles:和設置相關的gradle腳本
安卓界面布局
Android有五大基本布局分別是線性布局(LinearLayout)、單幀布局(FrameLayout)、相對布局(RelativeLayout)、絕對布局(AbsoluteLayout,Android2.0中標注為已過期)和表格布局(TableLayout)。通過這五種布局之間的相互組合可以構建各種復雜的布局。在Android程序中界面是通過布局文件設定的,該布局文件在app/src/main/res/layout下。下面分別介紹五大布局:
線性布局(LinearLayout)
LinearLayout是一種線型的布局方式,在開發中使用最多。線性布局容器內的控件一個挨著一個地排列起來:不僅可以控制各個控件橫向排列,也可控制各個控件縱向排列。當控件水平排列時,顯示順序依次為從左到右,當空間垂直排列時,顯示順序是從上到下。
LinearLayout按照垂直或者水平的順序依次排列子元素,每一個子元素都位于前一個元素之后。如果是垂直排列,那么將是一個N行單列的結構,每一行只會有一個元素,而不論這個元素的寬度為多少;如果是水平排列,那么將是一個單行N列的結構。如果搭建兩行兩列的結構,通常的方式是先垂直排列兩個元素,每一個元素里再包含一個LinearLayout進行水平排列。
在線性布局中有一個非常重要的屬性orientation,用于控制控件的排列方向,android:orientation設置線性布局="vertical"時,為垂直線性布局,當其="horizontal"時,為水平線性布局,不管是水平還是垂直線性布局一行(列)只能放置一個控件。
常用屬性和值:
實例:登錄界面線性布局文件
技術解釋:上面是線性布局設計的登錄界面文件,包含用戶名提示不可編輯文本框和用戶名輸入文本框,以及兩個按鈕分別為登錄和取消。上例中的布局使用一個大的<LinearLayout>嵌套了一個小的<LinearLayout>來實現的,大的<LinearLayout>中,采用垂直方式排列布局,小的<LinearLayout>中采用水平排列,右對齊的方式。控件屬性layout_width設置為wrap_content(當前控件根據控件內容大小自動伸縮)。
表格布局(TableLayout)
表格布局是指將子元素的位置分配到行或列中。表格布局類以行和列的形式對控件進行管理,每一行為一個TableRow對象,或一個View控件。當為TableRow對象時,可在TableRow下添加子控件,默認情況下,每個子控件占據一列。當為View時,該View將獨占一行。
TableLayout的行數由開發人員直接指定,即有多少個TableRow對象(或View控件),就有多少行。TableLayout的列數等于含有最多子控件的TableRow的列數。如第一TableRow含2個子控件,第二個TableRow含3個,第三個TableRow含4個,那么該TableLayout的列數為4。
表格布局繼承了LinearLayout,因此它的本質依然是線性布局管理器。表格布局不需要明確聲明包含多少行、多少列,而是通過添加tableRow、其他組件來控制表格的行數和列數。
常用屬性:
實例:登錄界面
技術解釋:上例中登錄界面的設計是表格布局形式。界面包含用戶名密碼輸入框,以及登錄注冊兩個按鈕。表格為三列,第一列中放置用戶名文本框,第二列中放置密碼文本框,第三列中放置登錄和注冊按鈕。
單幀布局(FrameLayout)
FrameLayout幀布局或叫層布局,從屏幕左上角按照層次堆疊方式布局,是最簡單的布局了。FrameLayout好比一塊在屏幕上提前預定好的空白區域,可以將一些元素填充在里面。所有元素都被放置在FrameLayout區域的最左上區域,而且無法為這些元素制指定一個確切的位置,FrameLayout中設置多個控件,則第二個控件會堆疊在第一個控件上面,如此類推,一層一層地疊上去。FrameLayout通常只包含一個控件。幀布局的大小由子控件中最大的子控件決定,如果都組件都一樣大的話,同一時刻就只能能看到最上面的那個組件了!
需要實現層面顯示的樣式時就可以采用這種布局方式,比如實現一個類似百度地圖的布局,移動的標志是在一個圖層的上面。在普通功能的軟件設計中用得也不多。層布局主要應用就是地圖方面。
幀布局常用屬性和值:
實例:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="300dp"
android:layout_height="300dp"
android:background="#00BFFF"
/>
<TextView
android:layout_width="260dp"
android:layout_height="260dp"
android:background="#FFC0CB"
/>
<TextView
android:layout_width="220dp"
android:layout_height="220dp"
android:background="#0000FF"
/>
</FrameLayout>
技術解釋:界面中放置三個按鈕,最先放入的放置在最底層,后放入的按鈕依次疊加在上面,由于三個按鈕寬和高依次減小,android:layout_width 和 android:layout_height兩個屬性控制大小,該界面出現的情況就是三個按鈕最大的也就是第一次放入的按鈕在最下面。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的java实现图形界面输入半径求圆面积_测试开发工程师系列之Android自动化测试Appium(Python)连载(7)安卓图形界面...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu 20.04 设置网关_如何
- 下一篇: c++用一级运算比较大小_1.1.2 p