- Android移動應用開發項目教程
- 范美英主編
- 3338字
- 2021-03-23 15:33:03
1.3 實施“Hello, Android”項目
1.3.1 創建項目
創建“Hello, Android”項目的步驟如下。
1)在圖1-14所示的啟動界面中單擊“Start a new Android Studio project”選項,或者在開發界面中依次選擇“File”→“New”菜單命令,即可進入如圖1-19所示的創建Android項目向導界面。

圖1-19 創建Android項目向導界面
2)如圖1-19所示,在“Application name”文本框中輸入項目名稱;在“Company domain”文本框中輸入項目開發者所在單位的域名,默認為“計算機名稱.example.com”;在“Project location”文本框中輸入項目存儲路徑,也可以通過單擊文本框右側的“…”按鈕選擇路徑。
3)單擊圖1-19中的“Next”按鈕,進入目標設備選擇界面,如圖1-20所示。此處保持默認選中“Phone and Tablet”復選框的狀態。

圖1-20 目標設備選擇界面
4)單擊圖1-20中的“Next”按鈕,進入為項目添加Activity的界面,如圖1-21所示。此處使用默認選項“Empty Activity”。

圖1-21 為項目添加Activity的界面
5)單擊圖1-21中的“Next”按鈕,進入配置Activity的界面,如圖1-22所示。其中,在“Activity Name”文本框中輸入Activity的名稱,默認為“MainActivity”;在“Layout Name”文本框中輸入Activity對應的布局文件名稱,默認為“activity_main”。此處這兩個值均使用默認值。

圖1-22 配置Activity的界面
6)單擊圖1-22中的“Next”按鈕后,有時會因為SDK中缺乏必要的組件而進入下載界面(效果如前文中圖1-12所示)。按照向導提示完成下載更新后單擊“Finish”按鈕,就會進入如圖1-23所示的項目開發界面。

圖1-23 項目開發界面
7)在圖1-23所示的項目開發界面中,項目出現了錯誤。通過觀察界面下方的“Build”窗口可以發現,當前錯誤的主要原因是“Could not reserve enough space for 1572864KB object heap”。這個問題可以通過將gradle.properties文件當中的org.gradle.jvmargs的值修改為“Xmx128m”而消失。修復自動構建項目后的界面如圖1-24所示。

圖1-24 修復自動構建項目失敗的界面
8)單擊項目開發界面中代碼窗口右上方的“Try Again”按鈕,可以重新構建項目。構建成功后的“Build”窗口如圖1-25所示。

圖1-25 自動構建成功后的“Build”窗口
1.3.2 運行項目
在項目正確創建后,就可以在Android Studio提供的Android虛擬設備(Android Virtual Devices,AVD,也稱模擬器)里運行項目。
1.創建模擬器

V4創建模擬器
1)單擊Android Studio開發界面工具欄中的“AVD Manager”圖標,可以打開模擬器創建向導。該圖標在工具欄中的位置如圖1-26所示。

圖1-26 “AVD Manager”圖標在工具欄中的位置
2)在Android Studio 3.2開發環境中,“Android Virtual Device Manager”窗口的起始界面如圖1-27所示。

圖1-27 模擬器創建的起始界面
3)單擊圖1-27中的“Create Virtual Device”按鈕,進入選擇硬件界面,設置模擬器的硬件類型以及屏幕大小、分辨率、屏幕密度等參數,如圖1-28所示。

圖1-28 設置硬件類型及分辨率等參數
此處使用默認設置:Category(硬件類型)為Phone;Name(名稱)為Nexus 5X;Size(屏幕大小)為5.2";Resolution(分辨率)為1080×1920;Density(屏幕密度)為420dpi。
4)單擊圖1-28中的“Next”按鈕,進入選擇系統鏡像界面,如圖1-29所示。此處選擇API Level為28的系統鏡像。

圖1-29 選擇系統鏡像界面
5)單擊圖1-29中的“Next”按鈕,進入確認模擬器的各項配置參數界面,如確認AVD Name(模擬器的名稱)、模擬器的外觀、系統鏡像版本、啟動時的方向等參數,如圖1-30所示。

圖1-30 確認模擬器的各項配置參數界面
6)單擊圖1-30中的“Finish”按鈕,即可看到模擬器列表,如圖1-31所示。

圖1-31 模擬器列表
2.啟動AVD
在圖1-31所示的模擬器列表中單擊最后一列(即“Actions”列)的三角形圖標,即可啟動這個模擬器。啟動后的Nexus 5X模擬器如圖1-32所示。

圖1-32 啟動后的Nexus 5X模擬器
3.運行HelloAndroid
1)在Android Studio的開發界面中,單擊工具欄中的“Run ‘app’”圖標,即可運行當前的HelloAndroid項目。該圖標在工具欄中的位置如圖1-33所示。

圖1-33 “Run‘app’”圖標在工具欄中的位置
2)單擊圖1-33中的“Run‘app’”圖標后,會彈出選擇項目的運行設備的對話框,如圖1-34所示。

圖1-34 選擇項目的運行設備
3)單擊圖1-34中的“OK”按鈕,項目被部署到模擬器中。部署完成后,開發者可以在模擬器中看到項目運行的效果,如圖1-35所示。
只要有應用程序在模擬器中運行,“Run ‘app’”圖標的右下角就會出現一個小綠點,同時“Stop‘app’”圖標由灰色不可用狀態變為紅色可用狀態。

圖1-35 HelloAndroid項目的運行效果
1.3.3 分析項目結構
1.查看項目結構的方式
HelloAndroid項目的總體結構在Android Studio開發界面的左上方,默認以Android方式查看,效果如圖1-36所示。
單擊圖1-36左上角的下拉按鈕可以選擇查看項目結構的方式,不同的查看方式呈現不同的顯示結果。查看方式主要有Project、Packages、Android、Project Files、Problems、Production、Tests、Local Unit Tests、Android Instrumented Tests、Project Source Files、Project Non-Source Files。
如果偏好使用類似文件系統的方式,那么可以選擇“Project”,顯示效果如圖1-37所示。本書中用到的各項目文件的路徑標識均是在Project查看方式下的。

圖1-36 Android查看方式下的項目結構

圖1-37 Project查看方式下的項目結構
2.app\src\main\java與app\src\main\res文件夾
在Project查看方式下,項目的app\src\main目錄中有兩個非常重要的文件夾:java文件夾和res文件夾。其中,java文件夾中包含了項目中的Java包及Java源文件;res文件夾中包含了項目中需要的資源文件及文件夾。
常用的資源包括drawable文件夾中的可繪制資源、layout文件夾中的布局資源、mipmap文件夾中的可縮放圖像資源、values文件夾中的數據值資源等。
在res目錄下,可以用不同的限制符修飾drawable、mipmap等文件夾,這樣可以將大小不同的相同圖像文件放置到相應限制符的文件夾中,從而使應用程序在所運行的設備上顯示最合適的圖像。這樣的適配方法使Android應用程序能夠以最適合的方式在不同的屏幕尺寸和密度上運行。
3.app\src\main\AndroidManifest.xml文件
AndroidManifest.xml文件是所有Android項目中最重要的文件,被稱為Android項目的配置清單。它包含了應用程序名稱、版本、SDK版本要求、目標設備的硬件要求和應用所需的權限,以及其中包含的各種組件列表。
在HelloAndroid項目中,AndroidManifest.xml文件的內容如下。

配置清單文件以manifest標簽開始,該標簽中首先定義了android的命名空間,然后聲明了應用程序的package屬性。
在manifest的application子標簽中,android:icon屬性聲明了應用程序的圖標;android:label屬性聲明了應用程序的名稱。此外,還有一個activity標簽,其中android:name聲明了該activity的名稱。
如果activity標簽中的intent-filter元素設置了category屬性,并且其值為“android:name="android.intent.category.LAUNCHER"”,那么表示這個activity是應用的入口界面。
4.app\build.gradle文件
app\build.gradle文件是App模塊的gradle構建腳本。這個文件中會指定很多與應用程序構建相關的配置。在HelloAndroid項目中,這個文件的內容如下。


這個文件第一行代碼中的com.android.application表示這是一個應用程序模塊。它還可以是com.android.library,表示庫模塊。兩者的區別在于,應用程序模塊可以直接運行,而庫模塊只能作為代碼庫依附于別的應用程序模塊來運行。
android{…}中的代碼被稱為android閉包,用來配置模塊構建的屬性,如compileSdkVersion屬性用于指定應用程序的編譯版本。在android閉包中嵌套的defaultConfig閉包可以對應用程序的更多細節進行配置,如applicationId用于指定應用程序的包名;minSdkVersion用于指定應用程序最低兼容的Android系統版本;targetSdkVersion表示應用程序測試的目標版本;versionCode表示應用程序的版本號;versionName表示應用程序的版本名稱。
dependencies{…}中的代碼被稱為dependencies閉包,它可以指定當前應用程序所有的依賴關系。通常,Android Studio項目有3種依賴方式:本地依賴、庫依賴和遠程依賴。本地依賴表示對本地的jar包或目錄有依賴關系;庫依賴表示應用程序對其中的庫模塊有依賴關系;遠程依賴可以對jcenter庫里的開源項目添加依賴關系。
在Android Studio 2.0版本中,依賴關系使用compile表示,使用該方式依賴的庫將會參與編譯和打包。當應用程序依賴一些第三方的庫時,如果遇到com.android.support沖突的問題,就是因為開發者使用compile依賴的com.android.support包與本地所依賴的com.android.support包版本不一樣。
在Android Studio 3.0以上的版本中,compile被implementation和api替代。其中,api表示的依賴關系完全等同于舊版本的compile依賴;而implementation表示的依賴僅僅對當前的Module提供接口。在設置依賴時,可以首先設置為implementation,如果有誤,再使用api指令,這樣會使編譯速度加快。
5.gradle.properties文件
項目根目錄中的gradle.properties文件是項目全局的gradle配置文件,其中配置的屬性會影響到項目中所有的gradle編譯腳本。
第1.3.1節曾提到由于org.gradle.jvmargs的值過大,會導致自動構建項目失敗,將其值修改為“Xmx128m”可修復此問題。
6.build.gradle文件
項目根目錄中的build.gradle文件是項目全局的gradle構建腳本。這個文件中的內容是自動生成的,一般不需要修改。HelloAndroid項目中這個文件包含的代碼如下。

其中兩個repositories閉包中都聲明的jcenter()是一個代碼托管倉庫,很多Android開源項目都會選擇將代碼托管到jcenter上。聲明了這個配置后,就可以在項目中輕松引用任何jcenter上的開源項目了。
在dependencies閉包中使用classpath聲明了一個gradle插件。只要使用gradle構建項目,無論是C++、Java項目還是Android項目,都需要聲明gradle插件類型。
在Android Studio開發界面中選擇“File”→“Project Structure”→“Project”菜單命令,會彈出查詢gradle插件版本號的對話框,如圖1-38所示。

圖1-38 查詢gradle插件的版本號
在圖1-38中,“Gradle version”的值是gradle的版本號;“Android Plugin Version”的值就是Android Studio中gradle插件對應的版本號。gradle文件通常位于“C:\用戶\<計算機名稱>\.gradle\wrapper\dists”目錄下,如圖1-39所示。

圖1-39 gradle文件所在目錄
Android插件的版本號和gradle的版本號之間的對應關系如表1-5所示。
表1-5 Android插件的版本號與gradle的版本號之間的對應關系

- UI設計基礎培訓教程
- LabVIEW程序設計基礎與應用
- Web Scraping with Python
- Ext JS Data-driven Application Design
- Java開發入行真功夫
- Koa開發:入門、進階與實戰
- SQL Server實用教程(SQL Server 2008版)
- Hands-On GUI Programming with C++ and Qt5
- Hands-On Kubernetes on Windows
- ASP.NET求職寶典
- Three.js Essentials
- Web程序設計與架構
- Kubernetes進階實戰(第2版)
- Visual Basic從入門到精通(第5版)
- 數據可視化之道:數據分析中的圖表制作思路與方法(全彩)