创建第一个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(在磁盘显示),就会弹出模拟器各类文件存放在磁盘的那个文件夹,,而这个文件夹就是我们刚刚新建的,这样就表示我们修改路径成功了,如下图