創建第一個Android項目
創建HelloWorld項目
選擇模板
在Android Studio的歡迎界面點擊Start a new Android Studio project,會打開一個選擇模板的界面,如下圖所示:
選擇模板界面的英文翻譯
英文 | 翻譯 |
---|---|
Phone and Tablet | 手機和平板電腦 |
Wear OS | 可穿戴智能設備 |
TV | 電視 |
Android Auto | 安卓汽車 |
Android Things | 物聯網和智能設備 |
Empty Activity | 空活動 |
這里我們不僅可以選擇創建手機和平板類型的項目,還可以選擇創建可穿戴設備、電視,甚至汽車等類型的項目。不過手機和平板才是本書討論的重點,其他類型的項目我們就不去關注了另外,Android Studio還提供了很多種內置模板,不過由於我們オ剛剛開始學習,用不着這么多復雜的模板,這里直接選擇“ Empty Activity”,創建一個空的Activity就可以了。
配置項目
繼續點擊Next,就會進入配置項目的界面,如下圖所示:
配置項目界面英文翻譯及解釋
英文 | 翻譯 |
---|---|
Configure you project | 配置您的項目 |
Name | (項目)名稱 |
Package name | (項目)包名 |
Language | (編程)語言 |
Minimum API level | 項目最低兼容版本 |
Your app will run on approximately xxx% of devices | 您的應用程序可以在大約xxx%的設備上運行 |
This project will support instant apps | 這個項目將支持即時應用 |
Previous | 上一級 |
配置項目界面的注意事項
Name的命名規范
Name是項目名稱,應用安裝到手機之后會在手機上顯示該名稱。應用名稱一開始顯示的是My Application,這個名稱含有空格,我直接把它改為MyApplication,這樣一來就非常符合Java關鍵字規范(Kotlin也是基於Java寫的),還有一個原因后面再說。
Package name的唯一性
Android系統就是通過包名來區分不同應用程序的,因此包名一定要具有唯一性。
Android Studio會根據應用名稱自動幫我們生成合適的包名,如果你不想使用默認生成的包名,也可以自行修改。
選擇Minimum API level
Minimum API level,我們選擇Your app will run on approximately 100% of devices這一項API15,也意味着我們的應用程序可以在任何的設備上都能運行。
Save location的常見錯誤
你的項目路徑包含非ASCII字符
Your project path contains non-ASCII characters.
你的項目路徑包含非ASCII字符
這種情況就像上面的截圖一樣,因為我計算機的用戶名是黃子涵,所以默認就會出現這種情況,根據上面的提示,非ASCII字符,那啥是ASCII字符呢?一般來說,就是阿拉伯數字和大小寫英文字母,這里我的是中文字符,所以就會報錯,只要路徑中是英文字母就好了。
項目位置不應該包含空格,這可能會導致問題NDK工具
project location should not contain whitespace ,as this can cause problems with the NDK tools
項目位置不應該包含空格,這可能會導致問題NDK工具
這種情況就像下面的截圖一樣,大概意思就是我們項目路徑不能有空格。這也是我上面把應用名稱去掉空格的原因,我在AndroidStudioProjects文件夾下新建一個,直接把應用名稱復制黏貼過去重命名,並把AndroidStudioProjects整個文件夾放到我的E盤下:
項目創建成功
點擊finish就進入項目編輯界面,如下圖:
項目界面菜單欄英文翻譯
英文 | 翻譯 |
---|---|
File | 文件 |
Edit | 編輯 |
View | 視圖 |
Navigate | 導航 |
Code | 代碼 |
Analyze | 分析 |
Refactor | 重構 |
Build | 構建 |
Run | 運行 |
Tools | 工具 |
VCS | 編譯型Verilog模擬器 |
Window | 窗口 |
Help | 幫助 |
創建和啟動模擬器
創建模擬器
由於Android Studio自動為我們生成了很多東西,你現在不需要編寫任何代碼, 項目就已經可以運行了。但是在此之前還必須要有一個運行的載體,可以是一部 Android手機,也可以是Android模擬器。
那么我們現在就來創建一個Android模擬器,觀察Android Studio工具欄中的圖標,下圖紅色划線部分的圖標就是用來創建和啟動模擬器的:
當我們點擊紅色划線部分的圖標,會彈出Android Virtual Devices Manager(安卓模擬器管理)的窗口:
查看模擬器細節
目前我們的模擬器列表中有一個模擬器,鼠標移到模擬器上,右鍵點擊,選擇View Details查看模擬器的細節:
項目名稱 | 相關信息 |
---|---|
Name | Nexus_5X_API_30_x86 |
CPU/ABI | Google APIs Intel Atom (x86) |
Path | C:\Users\黃子涵.android\avd\Nexus_5X_API_30_x86.avd |
Target | google_apis [Google APIs] (API level 30) Skin: nexus_5x SD |
Card | 800M |
刪除現有的模擬器
但是這個模擬器和我的手機不一樣,所以我們要先把這個模擬器刪除,鼠標移到模擬器上,右鍵點擊,選擇delete,這樣現有的模擬器就刪除了,如下圖:
創建模擬器
刪除模擬器之后,我們現在需要新建一個模擬器,點擊Create Virtual Device(創建模擬器)按鈕就可以,如下圖:
新建硬件配置文件
這里有很多種設備可供我們選擇,不僅能創建手機模擬器,還可以創建平板、手表、電視等模擬器。
但是,我在上面沒有發現一個手機模擬器和華為榮耀9X的配置一樣的,所以我們需要點擊New Hardware Profile(新建硬件配置文件),進入硬件配置界面,如下圖:
查看手機硬件配置信息
首先我們要對調試的手機有所了解,我這里的華為榮耀9X,打開設置,下拉到最底部,點擊關於手機里面查看手機的相關信息如下表:
名稱 | 信息 |
---|---|
設備名稱 | HONOR 9X |
Android版本 | 10 |
運行內存 | 6.0GB |
屏幕 | 2340*1080 |
但是沒有找到手機屏幕尺寸大小,百度搜索一下,是6.59英寸
配置硬件文件信息
在這里我們可以對模擬器的一些配置進行確認,比如說指定模擬器的名字、分辨率、橫豎屏等信息,如果沒有特殊需求的話,全部保持默認就可以了。
按照我們上面找到的硬件配置信息進行填寫,填寫完成之后,如下圖:
成功新建硬件文件
然后點擊Finish完成模擬器的創建,然后會彈出如下圖的窗口,我們可以在硬件文件列表上看到我們的模擬器,就證明我們已經成功新建硬件文件:
選擇系統鏡像
接着點擊next進入select a system image(選擇一個系統鏡像)界面,這里在上面我們已經查看調試模擬器的硬件信息,華為榮耀9X的Android操作系統的版本是Android 10,但是我發現這個Android 10還要下載,如下圖:
鼠標移動到Android 10那行,點擊藍色字體DownLoad進入同意許可證界面,點擊acceptj選擇接受許可證,再點擊next,如下圖:
點擊next就會進入一個Component Installer(組件安裝器)界面,表示組件正在下載:
等待下面Downloading進度條達到100%,點擊finish重新回到select a system image(選擇一個系統鏡像)界面,這時候我們發現在Android 10的那一行已經沒有Download藍色字體了,就表示系統鏡像已經下載成功,如下圖所示:
鼠標點擊你要選擇的Android操作系統版本的那一行,選中之后然后再點擊next進入檢查模擬器配置界面,:
下載HAXM(硬件加速執行管理器)
在這里我們可以看到Recommendation(建議)這里還沒有下載HAXM,我們點擊藍色字體Install HAXM進入HAXM下載頁面,如下圖所示:
沒有別的需求選擇recommend(建議的)就行了,再點擊next進入調用安裝程序界面,我們會看到它Installing(正在下載),等到我們看到successfully、Done就表示硬件加速執行器已經下載完成了,如下圖所示:
等它下載完成之后,我們點擊finish重新回到檢查模擬器配置界面,如果我們還發現在Recommendation(建議)那里還有藍色字體Install HAXM,沒有關系只要我們上一步顯示successfully、Done就表示硬件加速執行器已經下載完成了,這時候我們需要重新啟動一次項目,把上面的流程重新走一遍,等我們再回到檢查模擬器配置界面,會發現紅色部分已經沒有藍色字體Install HAXM,如下圖:
點擊finish之后,我們會發現它彈出一個進度條,顯示Creating Android Virtual Device(正在創建安卓模擬器),如下圖:
等到正在創建安卓模擬器的進度條完成之后,然后再回到Android Virtual Devices Manager(安卓模擬器管理)界面,就會看到模擬器列表中已經存在一個創建好的名叫HONOR 9X模擬器設備了,如下圖:
點擊 Actions欄目中最左邊的三角形按鈕即可啟動模擬器。模擬器會像手機一樣,有一個開機過程,啟動完成之后的界面,如下圖所示:
創建和啟動模擬器過程中的常見錯誤
新建模擬器不能啟動
開啟虛擬化設備
進入BIOS
開機——出現Lenovo字樣—— 迅速按F2或Fn+F2。此種方法試了很多次並未找到BIOS。
我就使用這種方法就進入BIOS。
在BIOS開啟虛擬化設備
進入BIOS——按鍵盤向右的箭頭找到configuration選項—— 按鍵盤向下的箭頭找到Intel virtual technology—— 按Fn+F5將disable改成enable——按fn+F10保存更改—— 回車“YES”——電腦自動重啟——完成。
在我這里,Intel virtual technology已經是enable,所以不是開啟虛擬化設備的問題。
安裝硬件加速執行管理器
在Android的SDK文件夾下有個可執行文件,可以直接點擊安裝,我這里的地址是:
F:\Android\Sdk\extras\intel\Hardware_Accelerated_Execution_Manager
但是,我在檢查模擬器配置界面早就安裝好了,所以也應該不是HAXM的問題。
設置Android相關的系統變量
這個我是怎么發現的呢?是我開啟模擬器之后,發現事件日志報錯,事件日志在主界面的這個位置:
在事件日志報錯代碼,有這樣一行代碼:
Emulator: PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
怪不得打不開模擬器,原來是沒有設置AVD系統路徑,在這里主要設置兩個系統變量:
- ANDROID_HOME:這是sdk的路徑
- ANDROID_SDK_HOME:這是avd的路徑
我的電腦是Win10系統,就拿我的電腦來舉例,其他版本的系統需要百度一下。在桌面找到我的電腦或者此電腦,右鍵點擊選擇屬性,會直接進入這個路徑:
控制面板\系統和安全\系統
在系統窗口的左側欄找到高級系統設置,如下圖:
點擊高級系統設置,接着會彈出系統屬性的窗口,選擇高級那一項,選擇下方的環境變量,如下圖:
在環境變量的窗口下面的系統變量那一欄中點擊新建,在彈出的新建系統變量的窗口里填入以下信息,對於變量值可以直接復制地址欄的地址過來,也可以通過瀏覽目錄或者瀏覽文件進行添加,我的設置是這樣的:
變量名 | 變量值 | 說明 |
---|---|---|
ANDROID_HOME | F:\Android\Sdk | 這是sdk的安裝路徑 |
ANDROID_SDK_HOME | E:\AndroidAvd | 這是avd文件夾所在路徑 |
填寫完成之后,重啟一下Android Studio就可以了。
安卓模擬器管理占用C盤內存
我們首先找到安卓模擬器安裝的位置,在我的電腦里是安裝在這個路徑下:
C:\Users\黃子涵\.android\avd
一般來說,這個路徑應該是這樣的:
C:\Users\計算機用戶名\.android\avd
因為我這里計算機用戶名是黃子涵(在電腦開機之后,輸入密碼時顯示的那個用戶名),所以Users下一級目錄是黃子涵。
其中的avd文件夾就是用來存放,模擬器鏡像文件的。相當占用c盤空間。
這句話說的不大對,應該是模擬器的操作系統鏡像文件有點大,比如我這里是:
一個Android 10差不多500MB,如果以后繼續添加操作系統的話,這個肯定是大塊頭,所以必須把它挪到其他磁盤。
首先,我們點進去我們之前說的這條路徑C:\Users\黃子涵.android\avd,現在這個路徑下有一個AVD的文件夾和AVD的配置文件,格式像下面這樣:
- HONOR_9X_API_29.avd
- HONOR_9X_API_29.ini
ini格式文件就是我們要修改的配置文件,點進去會發現這樣的一小段代碼:
avd.ini.encoding=UTF-8
path=C:\Users\黃子涵\.android\avd\HONOR_9X_API_29.avd
path.rel=avd\HONOR_9X_API_29.avd
target=android-29
path路徑就是我們現在AVD存放路徑,於是我到E盤新建一個存放AVD的文件夾,我直接存放在根目錄下,還有這個文件夾命名為:AndroidAvd(這很符合Java的命名規范),我這樣做的原因是,和我們之前的一個問題有關,文件夾路徑不能包含空格和中文字符,所以我將要存放AVD的路徑地址是:
E:\AndroidAvd
新建完存放AVD的文件夾之后,我們將原來AVD文件夾中的.avd文件夾移動到我們新建好存放AVD的文件夾中,過程如下圖:
移動好.avd文件夾,將地址欄的地址復制好,開始修改ini配置文件中的path路徑:
新建的AVD文件夾路徑:
E:\AndroidAvd\HONOR_9X_API_29.avd
原來ini配置文件中path路徑:
path=C:\Users\黃子涵\.android\avd\HONOR_9X_API_29.avd
修改好的ini配置文件中path路徑:
path=E:\AndroidAvd\HONOR_9X_API_29.avd
最后,我們重新啟動項目,點擊AVD管理器進入Android Virtual Devices Manager(安卓模擬器管理)界面,我們點擊模擬器那行Actions部分中的倒三角形會彈出一個下拉菜單欄,我們選擇show in disk(在磁盤顯示),就會彈出模擬器各類文件存放在磁盤的那個文件夾,,而這個文件夾就是我們剛剛新建的,這樣就表示我們修改路徑成功了,如下圖