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,按以下步骤操作:

  1. 点击“New Project”
  2. 选择“Empty Views Activity”
  3. 项目名填“HelloWorld”,包名填“com.example.helloworld”
  4. 语言选Java或Kotlin(我建议Kotlin,但Java也行)
  5. Minimum SDK选API 21(覆盖了95%以上的设备)
  6. 点击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 本章知识体系

为了让你更直观地理解本章内容,我画了一张架构图:

Android开发入门知识体系 Android系统架构(四层) 应用层 → 应用框架层 → 系统运行库层 → Linux内核层 Android发展史(关键版本) 1.0(2008) → 4.0(2011) → 5.0(2014) → 8.0(2017) → 12(2021) → 14(2023) 开发环境搭建 JDK 17+ → Android SDK → Gradle + AGP 第一个Hello World项目

这张图把本章的四个核心模块串起来了。你从系统架构开始理解,然后了解历史背景,接着搭建环境,最后动手写代码。每一步都是下一步的基础。

我的建议:别急着往下跳。把环境搭好,把第一个Hello World跑通,然后多改改布局文件里的文字,看看效果。我当年就是这么一点点摸索过来的。


公众号:蓝海资料掘金营,微信deep3321