一、安装 Android Studio

解压安装包:

配置环境变量:
bash
sudo vim ~/.bashrc
bash
export PATH=/home/sam/android-studio/bin:$PATH
bash
source ~/.bashrc

启动:
bash
studio

创建 Empty Activity:

指定最小SDK:API 23:

二、解决 gradle 下载慢

使用阿里云镜像加速:
bash
https://mirrors.aliyun.com/macports/distfiles/gradle/

调整下载源:
bash
distributionUrl=https://mirrors.aliyun.com/macports/distfiles/gradle/gradle-9.5.0-bin.zip
点击Sync Now:

如果仍然使用源链接下载,则手动在项目终端执行:
bash
rm -rf .gradle
./gradlew clean

手动下载:
bash
https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3+9/OpenJDK25U-jdk_x64_linux_hotspot_25.0.3_9.tar.gz
解压 jdk-25.0.3 :

然后在 gradle.properties 指定:
bash
org.gradle.java.home=/home/sam/jdk-25.0.3

三、添加环境变量
bash
/home/sam/.gradle/wrapper/dists/gradle-9.5.0-bin/bpmkcf6dvq0tjtjezkkgfy1ey/gradle-9.5.0/bin
将下载的 gradle 路径添加到 PATH 环境变量:

四、依赖包下载加速

在 Gradle 的用户目录下(Linux/macOS 是 ~/.gradle/,Windows 是 C:\Users\<你的用户名>\.gradle\)新建一个 init.gradle 文件,把下面的代码复制进去,这样所有项目都会自动使用阿里云镜像:
bash
// ~/.gradle/init.gradle
settingsEvaluated { settings ->
settings.pluginManagement {
repositories {
maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url 'https://maven.aliyun.com/repository/google/' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }
gradlePluginPortal()
}
}
}
// 使用 beforeSettings 在解析 settings 之前注入
beforeSettings { settings ->
// 这里可以添加全局仓库,但需要谨慎处理
}
配置完成后,可以执行 gradle build --refresh-dependencies 来强制刷新依赖,验证配置是否生效。

五、安卓模拟器
通过菜单栏:Tools -> Device Manager 创建一个 Android 虚拟设备(AVD)

选择分辨率:

选择API和系统镜像:

等待下载完成即可:


六、运行 app


七、代码详解
java
package com.example.myapplication
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.example.myapplication.ui.theme.MyApplicationTheme
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
MyApplicationTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
Greeting(
name = "Android",
modifier = Modifier.padding(innerPadding)
)
}
}
}
}
}
@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(
text = "Hello $name!",
modifier = modifier
)
}
@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
MyApplicationTheme {
Greeting("Android")
}
}
这是一个使用 Jetpack Compose 构建的 Android 应用主活动(MainActivity)的完整代码,展示了:
- ✅ 新一代声明式 UI 写法
- ✅ Material 3 设计系统
- ✅ 主题支持
- ✅ 实时预览功能
应用启动后,屏幕显示 "Hello Android!" 文本,应用了自定义主题风格,并支持边到边显示。
1. 包与导入
kotlin
package com.example.myapplication
定义了应用的包名,这是应用的唯一标识。
导入部分引入了 Compose UI、Activity 扩展、主题等必要组件。
2. MainActivity 类
kotlin
class MainActivity : ComponentActivity()
- 继承自
ComponentActivity,这是 Compose 应用的基类(而非传统 AppCompatActivity) - 重写
onCreate()生命周期方法
3. onCreate() 中的关键操作
| 代码 | 作用 |
|---|---|
enableEdgeToEdge() |
启用边到边显示,让内容延伸到系统栏下方(沉浸式效果) |
setContent { ... } |
设置 Compose UI 内容,这是传统 setContentView() 的 Compose 替代方案 |
4. Compose UI 层级结构
MyApplicationTheme (主题容器)
└── Scaffold (页面骨架)
└── Greeting (自定义组件)
└── Text (显示文本)
- MyApplicationTheme :应用自定义主题(颜色、字体、形状等),在
ui.theme包下定义 - Scaffold :Material 3 的布局骨架,提供顶栏、底部导航、浮动按钮等插槽。这里仅用于演示,用
fillMaxSize()填满屏幕 - innerPadding:Scaffold 自动计算的内边距(避开系统栏),传递给 Greeting 组件
5. Greeting 可组合函数
kotlin
@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(text = "Hello $name!", modifier = modifier)
}
- 一个简单的 UI 组件,接收姓名参数
- 显示 "Hello name!" 文本
- 支持外部传入 Modifier 以灵活调整布局
6. GreetingPreview 预览
kotlin
@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
MyApplicationTheme {
Greeting("Android")
}
}
@Preview注解让 Android Studio 预览此界面,无需运行到真机showBackground = true显示背景色,便于看清白色文字
八、Jetpack Compose
Jetpack Compose 是 Android 官方推荐的现代原生界面(UI)工具包,它完全使用 Kotlin 编写,旨在简化并加速 Android 应用界面的开发。
它的核心理念和优势可以概括为以下几点:
1. 核心优势
-
更少的代码,更高的效率 :Compose 采用声明式 UI,你只需描述界面长什么样,剩下的由框架处理。相比传统的 XML 方式,这能减少大量样板代码,有开发者反馈代码量减少了 45% 以上。
- 精简代码:例如,Twitter 反馈实现同样的按钮,代码量能减少 10 倍。
- 快速迭代 :借助 Android Studio 的实时预览功能,你可以即时查看 UI 在不同状态下的效果,无需反复部署到设备。
-
直观且强大的 API:所有代码都使用 Kotlin 编写,不再需要 View 系统的 XML 文件,逻辑和界面在同一个地方,更容易理解和维护。
-
全面的互操作性 :Compose 可以与现有的基于 View 的代码完全兼容。你可以在老项目中逐步引入 Compose,也可以在新项目中调用旧的 View 组件,按自己的节奏进行迁移。
-
跨设备适配 :Compose 从一开始就为各种屏幕设计,能轻松构建适用于手机、平板、可折叠设备、Wear OS 手表、电视甚至汽车的应用。
2. 编程思想:声明式 UI 与可组合函数
要理解 Compose,可以抓住两个核心概念:
- 声明式编程:传统的 View 系统是命令式的,你需要一步步告诉系统如何改变界面。而 Compose 是声明式的,你把数据传给界面,描述好 "数据长什么样,界面就长什么样",当数据变化时,界面会自动更新。
- @Composable 可组合函数 :Compose 应用由带有
@Composable注解的函数构成。这些函数接收数据,描述 UI 的一部分,它们可以自由组合和重用,构建出整个界面。
kotlin
// 一个简单的可组合函数示例
@Composable
fun Greeting(name: String) {
Text(text = "你好,$name!")
}
3. 核心功能与生态
Compose 提供了开箱即用的丰富功能:
- Material Design 支持:全面支持最新的 Material Design 3,帮助你轻松创建符合设计规范的美观应用。
- 强大的动画 API:创建流畅、生动的动画变得异常简单,有开发者反馈,在 Compose 中添加动画效果好得"没有理由不去做"。
- 直观的状态管理:Compose 要求状态是显式的,当状态改变时,相关的界面会自动重组更新,这使得应用逻辑更清晰,不易出错。
- 与 Jetpack 生态整合:它能与 Navigation, ViewModel, LiveData 等常用 Jetpack 库无缝协作。
4. 现状与未来
Jetpack Compose 的 1.0 稳定版于 2021 年 7 月发布,经过几年的发展,它已成为 Android 应用开发的主流选择。许多知名应用(如 Play Store、Twitter、Airbnb)都已在其产品中采用 Compose,并反馈显著提升了开发效率和应用质量。