Android 开发完整入门教程
目录
- 第一步:准备工作
- 环境要求
- 安装 Android Studio
- 配置开发环境
- 第二步:创建你的第一个 App
- 创建新项目
- 认识项目结构
- 运行你的 App
- 第三步:Android 开发核心概念
- 四大组件
- Activity (活动)
- Intent (意图)
- Layout (布局) 与 View (视图)
- R (资源) 类
- 第四步:UI 布局详解
- XML 布局文件
- 常用布局管理器
- 使用 ConstraintLayout (现代布局首选)
- 第五步:交互与事件处理
- 在 Activity 中获取 View
- 设置点击监听器
- Toast 消息提示
- 第六步:数据存储
- SharedPreferences (轻量级键值存储)
- SQLite 数据库 (结构化数据存储)
- 第七步:进阶之路
- Fragment (碎片)
- RecyclerView (高效列表)
- 网络请求 (Retrofit + OkHttp)
- MVVM 架构模式
- 第八步:学习资源与社区
- 官方文档
- 推荐书籍
- 优质博客与网站
- 社区与问答
第一步:准备工作
在开始编码之前,你需要准备好开发环境。

环境要求
- 操作系统: Windows 10/11, macOS (10.15 Catalina 或更高版本), 或 Linux (任意主流发行版)。
- 硬件: 8GB 以上内存 (推荐 16GB),SSD 硬盘 (能显著提升安装和编译速度)。
- Java Development Kit (JDK): Android Studio 通常会自带一个兼容的 JDK,但建议你了解其存在,目前主要使用 OpenJDK 17 或更高版本。
安装 Android Studio
Android Studio 是 Google 官方推荐的 Android IDE (集成开发环境),它集成了代码编辑、调试、性能分析、模拟器等所有必需工具。
- 下载: 访问 Android Studio 官网。
- 安装: 根据你的操作系统下载对应的安装包,然后按照安装向导一步步完成安装,在 Windows 上,建议勾选 "Add Android Studio to PATH" 选项。
- 启动: 首次启动 Android Studio,它会自动下载一些必要的 SDK 组件,请确保你的网络通畅。
配置开发环境
首次启动后,Android Studio 会引导你进行一些初始配置:
- Welcome to Android Studio: 选择 "Custom" (自定义) 安装。
- Settings: 选择 "Standard" (标准) 安装即可,它会安装 Android SDK, Android Emulator, 和其他最常用的工具。
- Android SDK: 确保你安装了最新的 SDK Platform 和 SDK Tools,你可以稍后在 "SDK Manager" 中随时更新。
- Emulator: 如果你的电脑支持虚拟化技术 (VT-x/AMD-V),Android Studio 会默认帮你配置一个模拟器,你也可以不创建,直接连接真机进行开发。
第二步:创建你的第一个 App
创建新项目
- 在 Android Studio 欢迎界面,点击 "New Project"。
- 选择 "Empty Views Activity" 模板,然后点击 "Next"。
- Configure your project:
- Name: 给你的 App 起个名字,"MyFirstApp"。
- Package name: 应用的唯一标识符,通常是反向域名格式,
com.example.myfirstapp。 - Save location: 项目保存的路径。
- Language: 选择 Kotlin 或 Java。强烈推荐使用 Kotlin,它是 Google 官方推荐的现代 Android 开发语言,更简洁、安全。
- Minimum SDK: 选择你的应用支持的最低 Android 系统版本,选择最新的 API Level (如 API 34) 可以使用最新特性,但会覆盖的用户较少,初学者可以选择 API 24 或以上。
- 点击 "Finish",Android Studio 会为你生成项目模板并自动构建。
认识项目结构
打开项目后,你会看到以下主要目录:
app/: 包含了你的应用源代码和资源。java/: 你的 Java/Kotlin 源代码文件。res/: 你的应用资源文件 (图片、布局、字符串等)。drawable/: 图片、图标等。layout/: XML 布局文件。mipmap/: App 图标。values/: 字符串 (strings.xml)、颜色 (colors.xml)、样式 (styles.xml) 等配置文件。
AndroidManifest.xml: 应用的清单文件,声明了应用的组件、权限等关键信息。
build/: 自动生成的构建输出目录,不要手动修改。gradle/: Gradle 构建脚本和 wrapper 配置。
运行你的 App
- 选择运行目标: 在 Android Studio 顶部工具栏,选择你想运行的目标设备。
- 模拟器: 如果之前没创建,点击 "Create Device",选择一个设备型号和系统镜像后下载创建。
- 真机: 开启手机的 "开发者选项" 和 "USB 调试",并用数据线连接到电脑。
- 点击 "Run" 按钮 (绿色三角形): Android Studio 会编译你的代码,并将其安装到选定的设备上,然后启动应用。
你应该能看到一个默认的、空白的界面,上面显示 "Hello World!"。

第三步:Android 开发核心概念
四大组件
Android 应用由几个核心组件构成,每个组件有不同的作用:
- Activity: 应用的一个屏幕,用户界面,一个 App 有登录页、主页、设置页,每个页面对应一个 Activity。
- Service: 在后台执行长时间运行操作且没有用户界面的组件,播放音乐、下载文件。
- Broadcast Receiver: 接收系统或应用发出的广播消息的组件,监听手机电量低的通知。
- Content Provider: 管理应用共享数据的组件,联系人、相册数据。
我们只需要专注于 Activity。
Activity (活动)
MainActivity.kt 是你应用的入口 Activity,它负责管理 res/layout/activity_main.xml 这个布局文件所定义的 UI。
// MainActivity.kt
package com.example.myfirstapp
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 这行代码将 Activity 的 UI 设置为 activity_main.xml 布局
setContentView(R.layout.activity_main)
}
}
Intent (意图)
Intent 是 Android 中一个非常重要的概念,它像一个“信使”,用于在不同组件之间传递信息,它可以:

- 启动一个 Activity: 从当前页面跳转到另一个页面。
- 启动一个 Service: 开始一个后台服务。
- 发送广播: 向系统或其他应用发送消息。
Layout (布局) 与 View (视图)
- View: UI 的基本构建块,如按钮 (
Button)、文本框 (TextView)、图片 (ImageView) 等。 - Layout: 一种特殊的 View,用作容器,来组织和放置其他 View,常见的布局有
LinearLayout(线性布局)、ConstraintLayout(约束布局)。
布局通常在 res/layout/ 目录下的 XML 文件中定义。
R (资源) 类
R 是一个自动生成的类,它为你项目中所有的资源(如布局、字符串、图片等)提供了一个 ID。R.layout.activity_main 指向 res/layout/activity_main.xml 文件,R.string.app_name 指向 res/values/strings.xml 中的 app_name 字符串。
第四步:UI 布局详解
XML 布局文件
打开 app/res/layout/activity_main.xml,你会看到类似下面的代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout ...>
<TextView
android:id="@+id/textView"
... />
</androidx.constraintlayout.widget.ConstraintLayout>
<?xml ...>是 XML 声明。<ConstraintLayout>是根布局,一个容器。<TextView>是一个文本控件。android:id="@+id/textView"是给这个控件定义的唯一标识符,@+id表示这是一个新的 ID。
常用布局管理器
- LinearLayout: 子元素按垂直或水平方向线性排列。
- RelativeLayout: 子元素相对于其他元素或父容器的位置进行排列。
- FrameLayout: 子元素堆叠在一起,后添加的会覆盖前面的。
使用 ConstraintLayout (现代布局首选)
ConstraintLayout 是目前最推荐的布局方式,它允许你通过创建视图之间的约束来灵活地定位视图,从而减少嵌套层级,提高性能。
示例:在 ConstraintLayout 中居中一个按钮
<Button
android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
这四条约束的意思是:将按钮的上边缘对齐父容器的上边缘,下边缘对齐下边缘,左边缘对齐左边缘,右边缘对齐右边缘,这样按钮就完美地居中了。
第五步:交互与事件处理
一个静态的 App 没有意义,我们需要让用户能够与之交互。
在 Activity 中获取 View
我们需要在 MainActivity.kt 中获取 XML 布局中定义的 View 对象。
class MainActivity : AppCompatActivity() {
// 声明一个 TextView 变量
private lateinit var myTextView: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 通过 findViewById 找到布局中 id 为 my_text_view 的 TextView
myTextView = findViewById(R.id.my_text_view)
}
}
注意: 确保 TextView 在 XML 中有 android:id="@+id/my_text_view"。
设置点击监听器
为 View 添加点击事件,最常用的是 setOnClickListener。
myButton.setOnClickListener {
// 当按钮被点击时,这里面的代码会执行
myTextView.text = "Hello, Android!"
}
Toast 消息提示
Toast 是一种简单的、非持久的消息提示,它会短暂地显示在屏幕上。
myButton.setOnClickListener {
Toast.makeText(this, "Button Clicked!", Toast.LENGTH_SHORT).show()
}
完整示例 (MainActivity.kt):
package com.example.myfirstapp
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private lateinit var myTextView: TextView
private lateinit var myButton: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
myTextView = findViewById(R.id.my_text_view)
myButton = findViewById(R.id.my_button)
myButton.setOnClickListener {
myTextView.text = "Text has been changed!"
Toast.makeText(this, "Button was clicked!", Toast.LENGTH_SHORT).show()
}
}
}
第六步:数据存储
SharedPreferences (轻量级键值存储)
SharedPreferences 用于存储简单的键值对数据,例如用户的设置、登录状态等,数据以 XML 文件的形式存储在应用的私有目录中。
使用示例:
// 保存数据
val sharedPreferences = getSharedPreferences("my_prefs", MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.putString("username", "JohnDoe")
editor.putInt("user_age", 30)
editor.apply() // 异步提交,推荐使用
// 读取数据
val username = sharedPreferences.getString("username", "default_user")
val age = sharedPreferences.getInt("user_age", 0)
SQLite 数据库 (结构化数据存储)
当需要存储更复杂的数据结构时,可以使用 SQLite 数据库,Android 提供了 Room 持久化库来简化数据库操作。
使用 Room 的基本步骤:
- 添加依赖: 在
app/build.gradle文件中添加 Room 依赖。 - 创建 Entity: 定义一个数据类,并用
@Entity注解,它代表数据库中的一张表。 - 创建 DAO (Data Access Object): 定义一个接口,用于操作数据库(增删改查),并用
@Dao注解。 - 创建 Database: 创建一个抽象类,继承
RoomDatabase,并将 Entity 和 DAO 关联起来。 - 使用: 通过依赖注入获取
Database实例,然后通过 DAO 操作数据库。
第七步:进阶之路
掌握了基础后,你可以学习以下更高级的主题来构建复杂的应用:
- Fragment (碎片): 可以嵌入到 Activity 中的 UI 组件,用于构建灵活的多屏 UI,特别是在平板等大屏设备上。
- RecyclerView: 用于高效显示滚动列表(如联系人列表、新闻流)的控件,它只渲染屏幕可见的项,当用户滚动时,它会回收不可见的项并重新绑定新数据,性能远超旧的
ListView。 - 网络请求: App 通常需要从服务器获取数据,推荐使用 Retrofit 库进行网络请求,它非常简洁易用,通常配合 OkHttp 作为其网络层,并使用 Gson 或 Moshi 进行 JSON 数据解析。
- MVVM 架构模式: 这是目前 Google 主推的架构模式,它将应用分为 Model (数据层)、View (UI 层) 和 ViewModel (视图模型),ViewModel 负责连接 View 和 Model,使 UI 逻辑和数据逻辑分离,代码更易于测试和维护。
第八步:学习资源与社区
-
官方文档 (必看):
- Android Developers 官网: 最权威、最及时的学习资料,所有 API、指南、教程都在这里。
- Android Developers 中文社区: 官方中文资源。
-
推荐书籍:
- 《Android 第一行代码》: 郭霖 著,非常适合国内初学者,讲解清晰,实例丰富。
- 《Android Programming: The Big Nerd Ranch Guide》: 经典的英文入门书籍,以项目驱动的方式教学。
-
优质博客与网站:
- ProAndroidDev (Medium): 高质量的 Android 技术文章。
- [掘金、思否、CSDN**: 国内开发者社区,有很多实战经验和翻译文章。
-
社区与问答:
- Stack Overflow: 全球最大的程序员问答社区,遇到问题先搜索这里。
- Android 中文社区: 国内活跃的 Android 开发者社区。
Android 开发是一个庞大但非常有成就感的领域,本教程为你提供了一个清晰的路线图:
- 从零开始: 搭建环境,创建项目。
- 掌握核心: 理解 Activity, Intent, Layout, View。
- 学会交互: 处理用户点击,操作 UI。
- 存储数据: 使用 SharedPreferences 和 SQLite。
- 持续进阶: 学习 Fragment, RecyclerView, 网络和架构。
最重要的是 多动手实践,跟着教程做一个小项目,然后尝试自己实现一些新功能,遇到问题时,善用搜索引擎和官方文档,祝你学习愉快!
