目录
- Android 开发基础
- 什么是 Android?
- 开发环境搭建
- 第一个 Android 项目:Hello World
- 应用核心组件简介
- 核心概念与 UI 开发
- Activity (活动)
- Layout (布局) 与 View (视图)
- Intent (意图)
- 基本控件使用
- 数据存储
- SharedPreferences (键值对存储)
- SQLite 数据库
- 文件存储
- 网络编程
- 使用 HttpURLConnection
- 使用第三方库 (如 Retrofit, OkHttp)
- 现代 Android 开发实践
- 为什么推荐使用 Kotlin?
- Java 在现代 Android 开发中的角色
- 学习资源与最佳实践
- 官方文档
- 推荐书籍与教程
- 代码规范与工具
Android 开发基础
什么是 Android?
Android 是一个基于 Linux 内核的开源操作系统,主要用于移动设备(如智能手机、平板电脑),它由 Google 主导并开放给 Open Handset Alliance(开放手机联盟)使用,对于开发者来说,Android 提供了一个强大的平台来创建丰富的移动应用程序。

开发环境搭建
你需要安装以下软件来开始开发:
- JDK (Java Development Kit): Android 应用使用 Java 语言编写,所以需要 JDK,推荐使用 JDK 8 或更高版本。
- Android Studio: 这是 Google 官方推荐的集成开发环境,它集成了代码编辑、调试、性能分析、模拟器管理等所有必要功能。下载地址: https://developer.android.com/studio
- Android SDK (Software Development Kit): Android Studio 会自动下载和管理 SDK,SDK 包含了开发 Android 应用所需的 API 库、模拟器系统镜像、工具等。
安装步骤:
- 下载并安装 Android Studio。
- 首次启动时,它会引导你完成 SDK 的下载和配置。
第一个 Android 项目:Hello World
创建新项目后,你会看到以下关键目录结构:
app/: 主要的应用代码目录。manifests/: 包含AndroidManifest.xml文件,这是应用的清单文件,声明了应用的包名、组件、权限等。java/: 包含你的 Java 源代码文件。res/: 包含应用的资源文件(如布局、图片、字符串等)。layout/: XML 布局文件。values/: 字符串 (strings.xml)、颜色、尺寸等定义文件。
build/: 构建输出目录。
运行应用: 你可以通过点击 Android Studio 上的绿色 "Run" 按钮(▶️)来运行应用,它会启动一个模拟器或连接到你的真机。

应用核心组件简介
一个典型的 Android 应用由以下几个核心组件构成:
- Activity: 应用的一个屏幕,负责与用户进行交互,一个 App 的登录界面、主界面、设置界面都是一个 Activity。
- Service: 在后台运行没有用户界面的组件,音乐播放服务、下载服务。
- Broadcast Receiver: 系统或应用间消息的接收者,监听电池电量低、网络状态改变等系统广播。
- Content Provider: 管理应用数据的访问接口,允许一个应用访问另一个应用的数据(如联系人、相册)。
核心概念与 UI 开发
Activity (活动)
Activity 是用户交互的入口,每个 Activity 都有一个布局文件来定义它的界面。
// MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 加载布局文件 activity_main.xml
setContentView(R.layout.activity_main);
}
}
Layout (布局) 与 View (视图)
- View: UI 的基本单元,如按钮、文本框、图片等。
- ViewGroup: 可以包含其他 View 或 ViewGroup 的容器,如布局管理器。
布局文件是 XML 文件,位于 res/layout/ 目录下,它定义了 UI 的结构。
示例: activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, Android!"
android:textSize="24sp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me"
android:id="@+id/my_button" />
</LinearLayout>
Intent (意图)
Intent 是 Android 中不同组件间通信的“信使”,它主要用于:
- 启动 Activity: 从当前页面跳转到另一个页面。
- 启动 Service: 启动一个后台服务。
- 发送广播: 发送一个系统或应用内的事件。
示例: 点击按钮跳转到 SecondActivity
// 在 MainActivity.java 中
Button myButton = findViewById(R.id.my_button);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 创建一个 Intent,指定从当前 Activity 跳转到 SecondActivity
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
});
别忘了在 AndroidManifest.xml 中声明 SecondActivity!
<activity android:name=".SecondActivity" />
基本控件使用
- TextView: 用于显示文本。
- EditText: 用于输入文本。
- Button: 用于点击触发事件。
- ImageView: 用于显示图片。
- RecyclerView: 用于高效显示滚动列表(现代 Android 开发中强烈推荐)。
数据存储
Android 提供了多种数据存储方式,适用于不同场景。
SharedPreferences (键值对存储)
适合存储少量简单的配置数据,如用户设置、开关状态等,数据以 XML 文件形式保存在设备上。
// 保存数据
SharedPreferences.Editor editor = getSharedPreferences("my_prefs", MODE_PRIVATE);
editor.putString("username", "JohnDoe");
editor.putInt("age", 30);
editor.apply(); // 异步保存
// 读取数据
SharedPreferences prefs = getSharedPreferences("my_prefs", MODE_PRIVATE);
String username = prefs.getString("username", "default_user");
int age = prefs.getInt("age", 0);
SQLite 数据库
适合存储结构化的、大量的数据,Android 提供了 SQLiteOpenHelper 类来帮助管理数据库的创建和升级。
// 创建一个帮助类
public class MyDatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "my_database.db";
public static final int DATABASE_VERSION = 1;
public MyDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 创建表
String CREATE_TABLE = "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)";
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 升级数据库
db.execSQL("DROP TABLE IF EXISTS users");
onCreate(db);
}
}
// 使用
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase(); // 获取可写数据库
// 插入数据
ContentValues values = new ContentValues();
values.put("name", "Alice");
values.put("email", "alice@example.com");
db.insert("users", null, values);
文件存储
可以将数据直接以文件形式存储在设备的内部或外部存储中,适合存储大文件,如图片、视频、日志等。
网络编程
现代应用几乎都离不开网络,Android 从 Android 9 (API 28) 开始,默认限制了 HTTP 的使用,推荐使用 HTTPS。
使用 HttpURLConnection
这是 Java 标准库提供的原生方式,比较底层,需要手动处理线程和 IO。
// 注意:网络操作不能在主线程(UI线程)中进行!
new Thread(new Runnable() {
@Override
public void run() {
try {
URL url = new URL("https://api.example.com/data");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
// 在主线程更新UI
runOnUiThread(new Runnable() {
@Override
public void run() {
// 解析 response 并更新UI
Log.d("Network Response", response.toString());
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
使用第三方库 (如 Retrofit, OkHttp)
手动处理网络请求非常繁琐,社区和 Google 推荐使用成熟的第三方库。
- OkHttp: 一个高效的 HTTP 客户端,负责底层的网络请求。
- Retrofit: 在 OkHttp 之上构建,提供了类型安全的 HTTP 客户端,它将网络请求接口化,用注解来描述请求,极大简化了开发。
Retrofit 示例:
-
添加依赖 (
build.gradle):implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' // 用于解析JSON
-
定义 API 接口:
public interface ApiService { @GET("users/{user}") Call<User> getUser(@Path("user") String user); } -
创建 Retrofit 实例并发起请求:
Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .addConverterFactory(GsonConverterFactory.create()) .build(); ApiService service = retrofit.create(ApiService.class); Call<User> call = service.getUser("google"); call.enqueue(new Callback<User>() { @Override public void onResponse(Call<User> call, Response<User> response) { if (response.isSuccessful()) { User user = response.body(); // 更新UI } } @Override public void onFailure(Call<User> call, Throwable t) { // 处理失败 } });
现代 Android 开发实践
为什么推荐使用 Kotlin?
自 2025 年起,Google 宣布 Kotlin 为 Android 开发的首选语言,原因如下:
- 简洁性: Kotlin 代码更短,可读性更高。
- 空安全: 从语言层面杜绝了
NullPointerException,大大减少了崩溃。 - 互操作性: 可以 100% 与 Java 代码互操作,你可以在同一个项目中混合使用。
- 协程: 提供了更优雅、更简单的异步编程解决方案,替代了复杂的
AsyncTask和回调地狱。
Kotlin 示例 (对比上面的 Java 代码):
// Activity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val myButton: Button = findViewById(R.id.my_button)
myButton.setOnClickListener {
val intent = Intent(this, SecondActivity::class.java)
startActivity(intent)
}
}
}
Java 在现代 Android 开发中的角色
尽管 Kotlin 是首选,但 Java 仍然非常重要:
- 庞大的存量代码: 许多现有的优秀应用和库都是用 Java 编写的。
- 学习资源丰富: 大量的教程、书籍和开源项目仍然是 Java 的。
- 团队技能: 很多开发者团队仍然在使用 Java。
- 互操作性: Kotlin 调用 Java 非常简单,所以维护 Java 项目或使用 Java 库没有障碍。
对于新项目,强烈建议直接使用 Kotlin,但对于学习或维护旧项目,Java 依然是必须掌握的技能。
学习资源与最佳实践
官方文档
- Android Developers 官网: 最权威、最全面的资源,包含所有 API 参考、指南和 Codelab。
- Android 开发者培训: 官方的入门课程,有中文版。
推荐书籍与教程
- 书籍:
- Android Programming: The Big Nerd Ranch Guide (经典,有 Java 和 Kotlin 版)
- Head First Android Development (适合入门,图文并茂)
- 在线教程:
- B站/YouTube: 搜索 "Android Java 教程",有大量免费视频课程。
- Udemy/Coursera: 搜索 "Android Development",有很多付费的高质量课程。
代码规范与工具
- 代码风格: 遵循 Google 的 Java 代码风格指南,Android Studio 的代码格式化工具可以帮助你自动完成。
- 版本控制: Git 是行业标准,使用 GitHub 或 GitLab 来管理你的代码。
- 构建工具: Gradle 是 Android 的默认构建工具,用于管理依赖和构建流程。
- 日志工具: 使用
Logcat查看日志,推荐使用 Timber 这样的日志库来简化日志代码。
希望这份详细的指南能帮助你顺利开启 Android Java 开发之旅!祝你学习愉快!
