Android Java 开发教程:从入门到实践
这份教程将分为以下几个部分:

- 前置准备:搭建开发环境
- 核心概念:Android 应用是如何工作的?
- 动手实践:创建你的第一个应用 "Hello World!"
- 深入探索:UI、交互与数据存储
- 学习资源与进阶之路
第一部分:前置准备 - 搭建开发环境
在开始编码之前,你需要安装必要的软件。
安装 Java Development Kit (JDK)
Android 应用是用 Java 语言编写的,因此你需要 JDK 来编译和运行 Java 代码。
- 下载地址:Oracle JDK 下载页面 或 OpenJDK (推荐使用较新的 LTS 版本,如 JDK 11 或 17)。
- 安装:根据你的操作系统(Windows, macOS, Linux)下载对应的安装包并按照提示进行安装,确保在安装过程中勾选 "Add to PATH" 选项。
安装 Android Studio
这是 Google 官方推荐的 Android 集成开发环境,它集成了代码编辑器、调试器、模拟器等所有必需的工具。
- 下载地址:Android Studio 官网
- 安装:下载后直接运行安装程序,安装过程中,它会自动检测你是否已安装 JDK,如果没有,它会提示你下载,请耐心等待所有组件下载和安装完成。
验证安装
安装完成后,打开 Android Studio,首次启动时,它可能会进行一些初始配置(如下载 SDK 组件),配置完成后,你会看到一个欢迎界面,这表明你的环境已经搭建成功!

第二部分:核心概念 - Android 应用是如何工作的?
在写代码之前,你需要了解几个关键概念。
四大组件
Android 应用由几个核心构建块组成,其中最重要的四个是:
- Activity (活动):一个屏幕,每个屏幕通常对应一个 Activity,一个应用可能有“登录屏幕”、“主屏幕”、“设置屏幕”等,当你切换屏幕时,实际上是在启动和销毁不同的 Activity。
- Service (服务):在后台运行执行长时间操作组件,没有用户界面,音乐播放器、下载文件等。
- Broadcast Receiver (广播接收器):响应系统级或应用级事件的组件,当手机电量低时,系统会发出一个广播,你的应用可以接收这个广播并做出相应处理。
- Content Provider (内容提供者):管理应用数据的组件,并允许其他应用访问这些数据(需要权限),手机的联系人信息就是由一个 Content Provider 管理的。
对于初学者,我们主要从 Activity 开始。
布局
Activity 的用户界面是由 布局 定义的,布局是一个 XML 文件,它描述了屏幕上有哪些控件(如按钮、文本框)以及它们的位置和样式,你可以在 XML 中编写布局,也可以使用 Android Studio 的可视化编辑器来拖拽生成。

Intent (意图)
Intent 是 Android 中不同组件之间通信的“信使”,你可以用它来:
- 启动一个 Activity:点击登录按钮后,通过
Intent启动主界面 Activity。 - 启动一个 Service。
- 发送广播。
第三部分:动手实践:创建你的第一个应用 "Hello World!"
让我们创建一个最简单的应用,它在屏幕上显示一行文字。
步骤 1:创建新项目
- 打开 Android Studio。
- 点击 "New Project"。
- 选择 "Empty Views Activity"(空视图活动),然后点击 "Next"。
- 配置你的项目:
- Name:
MyFirstApp(你的应用名称) - Package name:
com.example.myfirstapp(应用的唯一标识符) - Save location: 选择一个保存项目的文件夹。
- Language: Java (这是我们教程的重点)
- Minimum SDK: 选择一个较低的 API 级别(如 API 24),这样可以在更多旧版手机上运行。
- Name:
- 点击 "Finish",Android Studio 会为你生成项目结构并开始构建。
步骤 2:认识项目结构
在左侧的 "Project" 面板中,你会看到以下关键文件夹:
app/src/main/java: 你的 Java 源代码都在这里,你会看到一个包名com.example.myfirstapp,下面有MainActivity.java文件。app/src/main/res: 你的资源文件都在这里。layout: 存放 XML 布局文件,默认有一个activity_main.xml,它定义了主界面的布局。mipmap-hdpi,mipmap-mdpi等: 存放应用图标。values: 存放字符串 (strings.xml)、颜色 (colors.xml) 等资源。
步骤 3:修改布局文件
-
打开
app/src/main/res/layout/activity_main.xml文件。 -
默认情况下,你会看到一个
TextView。TextView就是用于显示文本的控件。 -
切换到 "Code" 或 "Split" 视图,查看 XML 代码:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" />android:text="Hello World!"这行代码定义了TextView显示的文字。
-
打开
app/src/main/res/values/strings.xml文件,你会看到:<string name="hello_world">Hello World!</string>
我们将使用这个资源来代替硬编码的字符串,这是 Android 开发的良好实践。
-
回到
activity_main.xml,修改TextView的android:text属性,引用这个字符串资源:android:text="@string/hello_world"
@string/hello_world的意思是:去strings.xml文件中寻找名为hello_world的字符串。
步骤 4:运行应用
- 连接你的 Android 手机(开启“开发者选项”和“USB调试”),或者使用 Android Studio 自带的模拟器。
- 在 Android Studio 顶部工具栏,选择一个设备(模拟器或真机)。
- 点击绿色的 "Run" 按钮(一个三角形图标)。
- 等待片刻,应用会安装到设备上并自动启动,你将看到一个屏幕,上面显示着 "Hello World!"。
恭喜!你已经成功创建了你的第一个 Android 应用!
第四部分:深入探索 - UI、交互与数据存储
让我们让应用变得更有趣一点。
添加一个按钮并响应点击
目标:在屏幕上添加一个按钮,点击按钮后,将 "Hello World!" 的文字改为 "你好,Android!"。
步骤 1: 修改布局文件 (activity_main.xml)
在 TextView 下面添加一个 Button。LinearLayout 是一个简单的布局,它会垂直或水平排列其子控件。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" <!-- 垂直排列 -->
android:gravity="center" <!-- 内容居中 -->
tools:context=".MainActivity">
<TextView
android:id="@+id/myTextView" <!-- 为TextView添加一个ID,方便在Java代码中找到它 -->
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
android:textSize="24sp" <!-- 设置字体大小 -->
android:layout_marginBottom="20dp" <!-- 与下方按钮的距离 -->
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/myButton" <!-- 为Button添加一个ID -->
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击我" <!-- 按钮上的文字 -->
android:textAllCaps="false" <!-- 不让所有字母大写 -->
/>
</LinearLayout>
步骤 2: 修改 Java 代码 (MainActivity.java)
- 打开
app/src/main/java/com/example/myfirstapp/MainActivity.java。 - 在
onCreate方法中,添加以下代码来找到按钮并设置点击监听器。
package com.example.myfirstapp;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button; // 导入Button类
import android.widget.TextView; // 导入TextView类
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 加载布局文件
// 1. 通过ID找到布局中的Button和TextView
Button myButton = findViewById(R.id.myButton);
TextView myTextView = findViewById(R.id.myTextView);
// 2. 为Button设置一个点击事件监听器
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 当按钮被点击时,这里的代码会执行
// 3. 修改TextView的显示文本
myTextView.setText("你好,Android!");
}
});
}
}
代码解释:
findViewById(R.id.myButton): 通过在 XML 中定义的id(R.id.myButton) 来找到对应的Button控件。R是一个自动生成的类,包含了所有资源的 ID。setOnClickListener: 为按钮设置一个点击监听器,当用户点击按钮时,它会执行onClick方法中的代码。myTextView.setText("..."): 调用TextView的setText方法来改变它显示的内容。
再次运行应用,现在你应该能看到一个按钮,点击它,文字就会改变。
数据存储:使用 SharedPreferences
SharedPreferences 是一种轻量级的数据存储方式,用于保存简单的键值对数据,非常适合保存应用的设置、用户偏好等。
目标:保存用户点击按钮的次数,并在下次打开应用时显示出来。
步骤 1: 修改 Java 代码 (MainActivity.java)
在 onCreate 方法中,添加 SharedPreferences 相关的逻辑。
// ... (前面的import语句)
public class MainActivity extends AppCompatActivity {
private TextView myTextView;
private Button myButton;
private int clickCount = 0; // 用于记录点击次数
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myTextView = findViewById(R.id.myTextView);
myButton = findViewById(R.id.myButton);
// 1. 获取SharedPreferences对象
// "MyPrefs" 是文件名,MODE_PRIVATE 表示只有这个应用可以访问
SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", MODE_PRIVATE);
// 2. 从SharedPreferences中读取上一次保存的点击次数
// "click_count" 是键,0 是默认值(如果键不存在,则返回0)
clickCount = sharedPreferences.getInt("click_count", 0);
myTextView.setText("点击次数: " + clickCount);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clickCount++; // 点击次数加1
// 3. 更新TextView
myTextView.setText("点击次数: " + clickCount);
// 4. 将新的点击次数保存到SharedPreferences
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("click_count", clickCount); // 存入键值对
editor.apply(); // 提交修改,必须调用!
}
});
}
}
代码解释:
getSharedPreferences("MyPrefs", MODE_PRIVATE): 获取一个名为 "MyPrefs" 的 SharedPreferences 文件。sharedPreferences.getInt("click_count", 0): 尝试从文件中读取名为 "click_count" 的整数,如果不存在,则使用默认值0。sharedPreferences.edit(): 获取一个Editor对象,用于修改数据。editor.putInt(...): 要保存的数据(键值对)。editor.apply(): 提交修改。apply()是异步的,不会阻塞主线程,推荐使用。
再次运行应用,点击几次按钮后,关闭应用,然后重新打开,你会发现,点击次数被记录下来了!
第五部分:学习资源与进阶之路
你已经掌握了 Android Java 开发的基础,你可以通过以下资源继续深入学习。
官方文档 (最重要!)
- Android Developers 官方网站: 这是最权威、最全面的资源,几乎所有问题的答案都能在这里找到。
- Android Developers Guide (中文): 官方教程,涵盖从入门到高级的各个方面。
在线教程与课程
- Udemy / Coursera: 搜索 "Android Development with Java",有很多高质量的课程,Angela Yu 的课程非常受欢迎。
- Bilibili / YouTube: 搜索 "Android Java 教程",有大量免费的视频教程,可以跟着视频一步步敲代码。
实践与项目
- 从模仿开始: 尝试仿制一些简单的 App,如计算器、待办事项列表、天气预报(使用公开 API)。
- 阅读开源代码: 在 GitHub 上找一些 Star 数量适中的开源 Android 项目,阅读它们的代码,学习优秀的架构和编码规范。
进阶主题
当你掌握了基础后,可以开始学习:
- Material Design: Google 的设计规范,让你的 App 更现代、更美观。
- RecyclerView: 用于高效显示长列表数据(如微信聊天记录),是
ListView的升级版。 - 网络编程: 使用 Retrofit 或 OkHttp 从服务器获取数据。
- Jetpack 组件: 现代 Android 开发推荐使用的库,如 ViewModel (管理 UI 数据)、LiveData (数据观察者)、Room (数据库) 等,虽然 Kotlin 是主流,但 Jetpack 同样支持 Java。
- 多线程: 使用 AsyncTask (已废弃) 或 Executor/Handler 来处理耗时操作,避免界面卡顿。
祝你学习愉快,早日成为一名优秀的 Android 开发者!
