1. Android开发入门:从系统架构到第一个Hello World
说实话,每次带新人入行,我都要先问一个问题:你真的了解Android吗?
很多人一上来就写代码,结果遇到个编译问题就懵了。我当年也是这样,踩了不少坑。所以这一章,咱们先把地基打牢。
1.1 Android系统架构:四层结构
Android系统不是铁板一块,它分成了四层。我习惯把这四层比作一栋楼:
- 底层地基:Linux内核层
- 承重墙:系统运行库层
- 楼层框架:应用框架层
- 住户:应用层
每一层各司其职,缺一不可。咱们从上往下看:
1.1.1 应用层(Application Layer)
这就是你平时用的那些App——微信、抖音、淘宝。它们都是用Java或Kotlin写的。说白了,这一层就是用户能直接看到、摸到的东西。
1.1.2 应用框架层(Application Framework)
这一层是开发者最常打交道的。它提供了一堆API,比如Activity管理、通知服务、内容提供者等等。我刚开始做开发时,总觉得这些API是黑盒子,后来才明白——它们就是系统给咱们的“工具箱”。
1.1.3 系统运行库层(Libraries & Android Runtime)
这里包含了两部分:C/C++库和Android运行时(ART)。ART负责把App的字节码转成机器码。嗯,这里要注意:从Android 5.0开始,ART彻底取代了Dalvik虚拟机,App运行速度提升了不少。
1.1.4 Linux内核层(Linux Kernel)
这是Android的根基。内存管理、进程调度、网络协议栈……这些底层活都是它干的。我曾经遇到过一个诡异的内存泄漏问题,查了两天才发现是内核层的驱动没处理好。所以说,了解底层真的能救命。
核心要点:Android的四层架构,每一层都依赖下一层。应用层调用框架层,框架层调用运行库层,运行库层调用内核层。这个依赖关系,你写代码时一定要心里有数。
1.2 Android发展史:从1.0到14
Android的历史,说白了就是一部“版本进化史”。我挑几个关键节点说说:
| 版本 | 代号 | 发布时间 | 关键变化 |
|---|---|---|---|
| 1.0 | 无 | 2008年 | 第一版,支持Google服务 |
| 2.2 | Froyo | 2010年 | 支持Flash,性能优化 |
| 4.0 | Ice Cream Sandwich | 2011年 | 统一手机和平板UI |
| 5.0 | Lollipop | 2014年 | Material Design诞生 |
| 8.0 | Oreo | 2017年 | 后台限制、通知渠道 |
| 12 | Snow Cone | 2021年 | Material You,隐私增强 |
| 14 | Upside Down Cake | 2023年 | 大屏适配、AI集成 |
你想想看,从2008年到现在,Android已经迭代了十几个大版本。我印象最深的是4.0那次,Google终于把手机和平板的UI统一了,开发者不用再写两套布局了。
1.3 开发环境搭建:JDK、SDK、Gradle
搭建环境这件事,说简单也简单,说复杂也复杂。我见过太多新手在这一步卡壳了。咱们一步步来:
1.3.1 安装JDK
JDK是Java开发工具包。Android开发虽然可以用Kotlin,但底层还是依赖Java。我个人建议安装JDK 17或更高版本。
# 检查是否已安装JDK
java -version
# 如果没安装,去Oracle官网或OpenJDK下载
# 安装后配置环境变量(Windows为例)
set JAVA_HOME=C:\Program Files\Java\jdk-17
set PATH=%JAVA_HOME%\bin;%PATH%
小技巧:我习惯把JAVA_HOME配到系统变量里,这样以后切换版本也方便。另外,记得把%JAVA_HOME%\bin加到PATH里,不然命令行找不到java命令。
1.3.2 安装Android SDK
SDK就是软件开发工具包。它包含了编译、调试、打包要用到的所有工具。现在最方便的方式是直接装Android Studio,它会帮你把SDK一起搞定。
不过,如果你只想用命令行开发,也可以单独下载SDK Tools。我个人还是推荐用Android Studio,毕竟图形界面省心不少。
1.3.3 配置Gradle
Gradle是Android的构建工具。它负责编译代码、打包资源、生成APK。嗯,这里要注意:Gradle的版本要和Android Gradle Plugin(AGP)匹配,不然会报错。
// 项目级 build.gradle
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.2.0'
}
}
// 模块级 build.gradle
android {
compileSdk 34
defaultConfig {
applicationId "com.example.myapp"
minSdk 21
targetSdk 34
versionCode 1
versionName "1.0"
}
}
避坑指南:我曾经因为Gradle版本和AGP不匹配,折腾了一下午。后来学乖了,每次升级前都去官方兼容性表查一下。你也别踩这个坑。
1.4 创建第一个Hello World项目
好了,环境搭好了,咱们来写第一个App。打开Android Studio,按以下步骤操作:
- 点击“New Project”
- 选择“Empty Views Activity”
- 项目名填“HelloWorld”,包名填“com.example.helloworld”
- 语言选Java或Kotlin(我建议Kotlin,但Java也行)
- Minimum SDK选API 21(覆盖了95%以上的设备)
- 点击Finish,等Gradle同步完成
同步完成后,你会看到这样的项目结构:
HelloWorld/
├── app/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/com/example/helloworld/
│ │ │ │ └── MainActivity.java
│ │ │ ├── res/
│ │ │ │ ├── layout/
│ │ │ │ │ └── activity_main.xml
│ │ │ │ └── values/
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ └── AndroidManifest.xml
│ │ └── test/
│ └── build.gradle
├── gradle/
└── build.gradle
打开 MainActivity.java,你会看到:
package com.example.helloworld;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
再打开 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">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textSize="24sp" />
</LinearLayout>
点击运行按钮(绿色三角形),选择模拟器或真机。等几秒钟,你就能看到屏幕上出现“Hello World!”了。
恭喜你:第一个Android App跑起来了!虽然只是显示一行文字,但这是你进入Android世界的第一步。我当年看到这个“Hello World”时,激动得差点跳起来。
1.5 本章知识体系
为了让你更直观地理解本章内容,我画了一张架构图:
这张图把本章的四个核心模块串起来了。你从系统架构开始理解,然后了解历史背景,接着搭建环境,最后动手写代码。每一步都是下一步的基础。
我的建议:别急着往下跳。把环境搭好,把第一个Hello World跑通,然后多改改布局文件里的文字,看看效果。我当年就是这么一点点摸索过来的。
公众号:蓝海资料掘金营,微信deep3321