教程:创建您的第一个 Android 应用程序
最后修改时间:2023 年 9 月 7 日在本教程中,我们将创建一个简单但功能齐全的 Android 应用程序,用于计算您点击 droid 图像的次数。之后,我们将在 Android 虚拟设备上运行它。
本教程涵盖了一个简单的场景,可帮助您开始在 IntelliJ IDEA 中进行 Android 开发。如需全面的操作指南和参考文档,请访问Android Studio用户指南。
创建一个新的Android项目
创建一个项目
启动 IntelliJ IDEA。在欢迎屏幕上,单击新建项目。如果您已经打开了一个项目,请从主菜单中选择“文件”|“ 新 | 项目。
在新建项目向导中,选择左侧的Android 。
如果您没有配置 Android SDK,IntelliJ IDEA 将检测到这一点并提示您下载它:
选择您要安装的组件。如果您之前尚未安装 Android SDK 工具,则会预先选择所有必需的组件。
(可选)修改 Android SDK 的位置,然后单击“下一步”:
检查安装设置并单击“完成”开始下载:
下载并安装所有组件后,单击“完成”:
选择空活动作为项目模板:
在最后一步中,输入
HelloDroid
项目名称并选择Java作为语言:
配置项目JDK
现在我们已经创建了第一个项目,让我们确保它使用正确的 JDK。
转到文件| 项目结构并转到平台设置 | SDK。选择 Android SDK 并确保在Java SDK字段中选择正确的 Java 版本。
我们建议您使用 Java SE 11 或 Java SE 8 在 IntelliJ IDEA 中进行 Android 开发。如果您没有安装正确的 JDK,请在“项目结构”对话框中,单击工具栏上的“添加新 SDK”按钮,然后选择“下载 JDK”:
在“设置”对话框 ( ) 中,转到“构建、执行、部署”| 构建工具| Gradle并选择正确的 Java 版本(8.x 或 11.x)。CtrlAlt0S
探索项目结构
对于 Android 项目,IntelliJ IDEA项目工具窗口中有一个专用视图:单击左上角的Project并选择Android。
此视图并不反映磁盘上文件的实际层次结构 - 它是按模块和文件类型组织的,以简化项目源文件之间的导航。请注意,它隐藏了您不常用的项目文件和目录(要查看它们,请选择“项目”视图):
应用程序文件夹包含以下子文件夹:
manifests:包含AndroidManifest.xml文件,该文件保存有关 Android 操作系统处理的应用程序的一般信息。除此之外,它还声明了用作应用程序的唯一标识符的包名称以及运行应用程序的设备所需的 Android SDK 的最低版本。它还声明应用程序的入口点以及应用程序所需的权限。有关更多信息,请参阅应用清单概述。
java:包含按包分组的 Java 源代码文件,包括 JUnit 测试。
res:包含所有非代码资源,例如 XML 布局文件、UI 字符串、图像等。
Gradle Scripts文件夹包含项目的所有与构建相关的配置文件。
编辑 UI 布局
在此阶段,示例HelloDroid
应用程序的用户界面基于文件夹activity_main.xml
中文件中定义的非常简单的布局res/layout
。
让我们修改自动生成的用户界面,看看应用程序布局是如何呈现的,而无需在任何物理或虚拟设备上运行它。
打开 UI 设计器
在Android项目视图中,转到
app/res/layout
并双击该activity_main.xml
文件将其打开。请注意,由于 IntelliJ IDEA 下载渲染布局文件所需的组件,因此打开它可能需要几秒钟的时间。笔记
如果 UI 设计器无法打开,并且您收到“设计编辑器在成功项目同步后才可用”错误,请按,搜索操作,然后等待同步完成。CtrlShift0A
Sync Project with Gradle Files
默认情况下,IntelliJ IDEA 提供布局文件的图形视图,但您也可以切换到源代码视图,或并排查看文本和图形表示 - 使用 UI 设计器右上角的图标窗格:
此窗格显示一个与布局定义和组件树同步的矩形画布,因此对画布的任何更改都会相应地反映在那里。
通常,布局文件将布局管理器作为其根元素(例如,
LinearLayout
、FrameLayout
、ConstraintLayout
等)。在我们的示例中, activity_main.xml中的根元素负责ConstraintLayout
定位应用程序界面的元素。出于本教程的目的,我们不会对其进行修改,但您可以从使用 ConstraintLayout 构建响应式 UI中了解有关设计界面的更多信息。要消除干扰并仅查看布局的表示方式,请单击左上角的“选择设计图面”图标,然后选择“设计”:
现在让我们删除现有的文本元素。为此,请右键单击文本标签,然后从上下文菜单中选择“删除” 。
现在 UI 布局如下所示,我们准备开始设计应用程序的布局:
将图像添加到 UI 布局
现在让我们将 droid 图像添加到我们的布局中。
在Android项目视图中,展开
app/res
文件夹并将要使用的图像拖到该drawable
文件夹中。在本教程中,我们从 Internet下载了Hello Droid图像,并将其保存为尺寸 50x50 像素。返回到“设计器”
activity_main.xml
窗格中打开的文件,从“调色板”中选择“ImageView”元素,然后将其拖动到画布上您希望图像出现的位置。在打开的“选择资源”对话框中,选择您已添加的资源文件,然后单击“确定”:
接下来,我们需要修改
imageView
元素的默认 id 以便以后能够引用它。在组件树中选择它,然后在右侧的属性窗格中,在id字段中输入新标识符:
droidImage
。按Enter; 在打开的对话框中,确认您要更新对图像元素 ID 的所有引用:
将文本添加到 UI 布局
现在让我们向布局添加一些文本。
在“调色板”窗格中,选择TextView元素并将其拖动到图像下方的画布上。
该小部件显示一些默认文本:
TextView
。要更改它并将其链接到字符串,我们需要创建一个新的文本资源。在左侧的组件树中选择textView元素。在右侧的“属性”窗格中,单击文本属性旁边的“选择资源”图标:
在打开的对话框中,单击左上角的“将资源添加到模块”图标,然后选择“字符串值”。
在“新建字符串值”对话框中,输入资源名称 (
welcome_text
) 和资源值 (Hello! I'm a droid.
):单击“确定”保存该值,然后在“选择资源”对话框中单击“确定”。
现在让我们
textView
像处理 一样修改元素 idimageView
。textView
在左侧的组件树中选择,然后在属性窗格中将id设置为新值:clickCounter
。
为文本添加样式
现在让我们为文本添加一些样式,使其看起来更有吸引力。
稍微填充文本:找到padding属性,并将所有值设置为
10dp
:更改字体颜色:找到textColor属性,然后单击其旁边的“选择资源”图标。
在打开的对话框中,单击左上角的“将资源添加到模块”图标,然后选择“颜色值”。
输入资源名称 (
text_color
) 和值 (#9C27B0
):更改字体大小:找到TextSize属性,然后单击其旁边的“选择资源”图标。
在打开的对话框中,单击左上角的“将资源添加到模块”图标,然后选择“维度值”。
输入资源名称 (
text_size
) 和值 (24sp
):
结果,您的用户界面现在如下所示:
要检查应用程序 UI 在横向方向上的外观,请单击设计器工具栏上的“预览方向”图标,然后选择“横向”:
要预览布局在不同设备上的外观,请从设备列表中选择另一个设备:
使应用程序具有交互性
尽管我们的示例应用程序此时功能齐全,但它还不支持任何形式的交互。让我们修改它以支持点击事件。
在Android工程视图中,找到app \java \com.example.hellodroid下的MainActivity文件,双击打开。
MainActivity不是一个非常有意义的类名,所以让我们重命名它。
在Android项目视图中右键单击该文件并选择Refactor | 从上下文菜单重命名或按。在打开的对话框中,更改类名称并单击Refactor:ShiftF6
HelloDroidActivity
对此类的所有引用都将自动更新,您的应用程序的源代码将如下所示:
将HelloDroid.java中的代码替换为以下内容:
package com.example.hellodroid; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class HelloDroidActivity extends AppCompatActivity { private TextView message; private int counter = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); message = findViewById(R.id.clickCounter); ImageView droid = findViewById(R.id.droidImage); //Define and attach click listener droid.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tapDroid(); } }); } private void tapDroid() { counter++; String countAsText; /* * In real applications you should not write switch like the one below. * Use resource of type "Quantity strings (plurals)" instead. * See https://developer.android.com/guide/topics/resources/string-resource#Plurals */ switch (counter) { case 1: countAsText = "once"; break; case 2: countAsText = "twice"; break; default: countAsText = String.format("%d times", counter); } message.setText(String.format("You touched the droid %s", countAsText)); } }
请注意,我们在源代码中使用的标识符与我们在布局定义文件中设置的标识符相对应,否则我们的代码将无法工作。
构建并运行应用程序
现在让我们构建我们的应用程序并在虚拟设备上运行它。
配置Android虚拟设备
首先,为了能够运行我们的应用程序,我们需要配置一个虚拟设备。
在 IntelliJ IDEA 主工具栏中,单击设备列表并选择AVD Manager:
在向导的第一步中,单击创建虚拟设备:
下一步,我们需要选择虚拟设备将模拟的硬件。
我们选择左侧的“Phone” ,然后选择Pixel 2作为目标设备:
选择要在虚拟设备上模拟的系统映像,即操作系统版本、Android API 级别、应用程序二进制接口 (ABI) 和目标 SDK 版本:
单击要在虚拟设备上模拟的系统映像旁边的下载链接。在本教程中,我们选择下载R系统映像。
在打开的许可协议对话框中,阅读许可协议并接受它,然后单击下一步并等待下载完成。下载系统映像后,选择它并单击向导的“系统映像”步骤中的“下一步” 。
在最后一步中,您可以修改虚拟设备名称并选择屏幕的启动大小和方向。选择纵向布局并单击“完成”:
新配置的设备将出现在Android 虚拟设备管理器中。
运行应用程序
在 IntelliJ IDEA 主工具栏上,确保选择自动创建的运行配置和我们刚刚配置的虚拟设备,然后单击:
Android 模拟器将在构建成功完成后启动,并启动我们的应用程序:
单击 droid 图像,查看应用程序如何处理点击事件、对点击事件进行计数并返回相应的消息:
提示
有关在硬件设备上运行应用程序的更多信息,请参阅Android Studio:在硬件设备上运行应用程序。
感谢您的反馈意见!