安装Android Studio

下载

官方下载地址:Android Studio

安装

1、点击下载好的exe程序。注意:到此步不要勾选安装模拟器。

2、安装SDK。注意:路径不要放C盘,会很大。

QQ浏览器截图20260108162123.png

3、点击左下角设置按钮,选择setting,打开:Build, Execution, Deployment=》Build Tools=》Gradle;讲Gradle user home路径修改到非D盘(Gradle 会很大)。

第一个安卓APP

新建项目

点击New Project,选择Empty Activity。配置页不需要修改什么。

配置项目

首先点击Build图标,停止Build。

打开gradle\wrapper\gradle-wrapper.properties,将distributionUrl路径注释掉,替换为国内(阿里云)地址。注意版本号要一致,且将之前的bin版本替换为all版本。 新版本会有distributionSha256Sum字段,如果因为此字段配置错误报错,直接删除该字段重新构建即可。

#Thu Jan 08 16:37:18 CST 2026
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
#distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
distributionUrl=https\://mirrors.aliyun.com/macports/distfiles/gradle/gradle-8.13-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

打开settings.gradle.kts,找到两个repositories字段,在里面添加如下代码:

maven { url=uri("https://maven.aliyun.com/repository/google") }
maven { url=uri("https://maven.aliyun.com/repository/releases") }
maven { url=uri("https://maven.aliyun.com/repository/central") }
maven { url=uri("https://maven.aliyun.com/repository/public") }
maven { url=uri("https://maven.aliyun.com/repository/gradle-plugin") }
maven { url=uri("https://maven.aliyun.com/repository/apache-snapshots") }
maven { url=uri("https://maven.aliyun.com/nexus/content/groups/public/")}
maven { url=uri("https://jitpack.io") }
google()
mavenCentral()
gradlePluginPortal()

修改完的代码示例如下:

pluginManagement {
    repositories {
        maven { url=uri("https://maven.aliyun.com/repository/google") }
        maven { url=uri("https://maven.aliyun.com/repository/releases") }
        maven { url=uri("https://maven.aliyun.com/repository/central") }
        maven { url=uri("https://maven.aliyun.com/repository/public") }
        maven { url=uri("https://maven.aliyun.com/repository/gradle-plugin") }
        maven { url=uri("https://maven.aliyun.com/repository/apache-snapshots") }
        maven { url=uri("https://maven.aliyun.com/nexus/content/groups/public/")}
        maven { url=uri("https://jitpack.io") }
        google()
        mavenCentral()
        gradlePluginPortal()
        google {
            content {
                includeGroupByRegex("com\\.android.*")
                includeGroupByRegex("com\\.google.*")
                includeGroupByRegex("androidx.*")
            }
        }
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven { url=uri("https://maven.aliyun.com/repository/google") }
        maven { url=uri("https://maven.aliyun.com/repository/releases") }
        maven { url=uri("https://maven.aliyun.com/repository/central") }
        maven { url=uri("https://maven.aliyun.com/repository/public") }
        maven { url=uri("https://maven.aliyun.com/repository/gradle-plugin") }
        maven { url=uri("https://maven.aliyun.com/repository/apache-snapshots") }
        maven { url=uri("https://maven.aliyun.com/nexus/content/groups/public/")}
        maven { url=uri("https://jitpack.io") }
        google()
        mavenCentral()
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}

rootProject.name = "My Android(Application"
include(":app")

然后点击刚刚stop按钮上面的Sync按钮重新build项目。

创建模拟器

点击右侧工具栏的Device Manager、点击+号、选择Create.....选项。在新的页面选择Pixel 9 Pro,然后一路Next,等待下载就好了。

运行项目

点击上方的设备列表选择刚刚安装的Pixel 9 Pro,然后点击运行按钮:

项目结构

对于一个基于 Kotlin + Jetpack Compose,并遵循 MVVM (Model-View-ViewModel) 和 Clean Architecture 思想的项目,标准的文件夹结构应该是以功能(Feature)或层次(Layer)来组织的。

目前 Android 官方推荐 “按功能分包 (Package by Feature)”,因为这在大型项目中更易于维护。

app/src/main/java/com/yourname/app/
│
├── data/                       # 数据层:负责处理所有数据来源
│   ├── local/                  # 本地数据:Room 数据库、DataStore 设置
│   │   ├── dao/
│   │   └── AppDatabase.kt
│   ├── remote/                 # 远程数据:Retrofit 接口、网络模型
│   │   ├── api/
│   │   └── dto/                # Data Transfer Objects (后端返回的原始模型)
│   ├── repository/             # 仓库实现:决定是从网络还是本地取数据
│   │   └── UserRepositoryImpl.kt
│   └── mapper/                 # 映射器:将 DTO 转换为 Domain 模型
│
├── domain/                     # 领域层:纯 Kotlin 逻辑,不依赖 Android 框架
│   ├── model/                  # 业务模型:UI 直接使用的数据结构
│   ├── repository/             # 仓库接口:定义标准,解耦 Data 层
│   └── usecase/                # 案例:具体的业务用例 (如 LoginUseCase.kt)
│
├── ui/                         # UI 层:所有的 Compose 界面
│   ├── theme/                  # 主题:Color.kt, Type.kt, Theme.kt
│   ├── components/             # 通用组件:你之前写的 CustomInputField
│   ├── navigation/             # 路由:NavGraph.kt, Screen.kt
│   └── features/               # 按功能模块分包
│       ├── home/
│       │   ├── HomeScreen.kt
│       │   └── HomeViewModel.kt
│       └── chat/
│           ├── ChatScreen.kt
│           └── ChatViewModel.kt
│
├── di/                         # 依赖注入:Hilt/Koin 的模块配置 (NetworkModule.kt)
│
└── utils/                      # 工具类:二进制转换、日期格式化等

相关资料

Jetpack Compose 基础知识

Jetpack Compose 教程

Jetpack Compose 博物馆

Material3

Compose 中的 Material Design 3