Android 开发工程常识

环境配置

配置 gradle 源

打开 gradle/wrapper/gradle-wrapper.properties

找到distributionUrl这一行,将其修改为国内的镜像地址。例如,使用腾讯云的镜像地址:

properties 复制代码
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.11.1-bin.zip


# 或者使用阿里云 Gradle 镜像

distributionUrl=https\://mirrors.aliyun.com/gradle/gradle-8.2-all.zip

注意:URL中的斜杠需要转义,使用\代替/。

配置插件仓库源

settings.gradle.kts文件用于配置插件仓库源。将默认的仓库地址替换为国内镜像地址,可以加速插件的下载和更新。

  • 打开项目根目录下的settings.gradle.kts文件。
  • pluginManagementdependencyResolutionManagement块中添加国内镜像源。例如,使用阿里云的镜像地址:
kts 复制代码
pluginManagement {
    repositories {
         // 使用阿里云镜像替代默认仓库
        maven { url=uri ("https://maven.aliyun.com/repository/google")}
        maven { url=uri ("https://maven.aliyun.com/repository/central")}
        maven { url=uri ("https://maven.aliyun.com/repository/gradle-plugin")}
        maven { url=uri ("https://maven.aliyun.com/repository/public")}

        google()
        mavenCentral()
        gradlePluginPortal()
    }
}


dependencyResolutionManagement {
    # repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    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/central")}
        maven { url=uri ("https://maven.aliyun.com/repository/gradle-plugin")}
        maven { url=uri ("https://maven.aliyun.com/repository/public")}

        google()
        mavenCentral()
        gradlePluginPortal()
    }
}

使用代理工具加速下载

gradle.properties中加入以下:

properties 复制代码
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=7890
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=7890

模块管理

默认新建的模块(File -> New -> New Module)只能全部平铺在项目根目录下,实际我们需要将多个功能模块(Module)按业务或类型归类到子文件夹中,目录结构参考如下:

csharp 复制代码
MyApp (Project Root)
├── app/                          # 主模块
├── features/                     # 业务功能模块统一放在这个文件夹
│   ├── login/
│   ├── profile/
│   └── home/
├── libs/                         # 基础库模块
│   ├── base/
│   ├── network/
│   └── ui/
├── build.gradle
├── settings.gradle
└── gradle.properties

这种情况我们可以通过 settings.gradle 配置模块路径。

Android 项目通过 settings.gradle 文件来注册所有参与构建的模块。你可以在这里指定模块的 目录路径模块名称

步骤 1:创建文件夹并移动模块

  1. 创建文件夹:features/login
  2. 将原来的 feature-login 模块整个移动进去,重命名为 login

步骤 2:在 settings.gradle 中注册模块

修改 settings.gradle(或 settings.gradle.kts):

gradle 复制代码
include ':app'
include ':features:login'
include ':features:profile'
include ':libs:base'
include ':libs:network'

或者:

kts 复制代码
include(":app")
include(":features:login")
include(":features:profile")
include(":libs:base")
include(":libs:network")

这样 Gradle 就会去对应路径查找模块:

  • :features:loginfeatures/login/
  • :libs:baselibs/base/

步骤 3:确认模块内的 build.gradle 正确

确保 features/login/build.gradle 中的配置正常,比如:

gradle 复制代码
android {
    namespace 'com.example.login'  // 包名
    compileSdk 34
    ...
}

步骤 4:在其他模块中引用该模块

例如在 app/build.gradle 中依赖 login 模块:

gradle 复制代码
dependencies {
    implementation project(':features:login')
}

注意事项:

  1. 模块名:称用
  2. 路径是相对于项目根目录的,不需要写完整路径,Gradle 自动查找

推荐的结构:

csharp 复制代码
.
├── app/                      # 主应用模块
├── features/                 # 业务功能模块
│   ├── auth/                 # 登录/注册
│   ├── home/                 # 首页
│   ├── profile/              # 个人中心
│   └── shop/                 # 商城
├── libs/                     # 公共库
│   ├── base/                 # 基础组件(BaseActivity、Theme 等)
│   ├── network/              # 网络封装
│   ├── data/                 # 数据层(Room, Repository)
│   └── ui/                   # 通用 UI 组件(Compose 组件库)
├── build.gradle
├── settings.gradle(.kts)
└── gradle.properties
相关推荐
come112345 分钟前
深入分析JAR和WAR包的区别 (指南七)
android·spring boot·后端
用户0919 分钟前
停止滥用 Dispatchers.IO:Kotlin 协程调度器的深度陷阱与优化实战
android·面试·kotlin
峥嵘life20 分钟前
Android16 adb投屏工具Scrcpy介绍
android·开发语言·python·学习·web安全·adb
遇见你的那天1 小时前
反编译查看源码
android
用户2018792831671 小时前
SIGABRT+GL errors Native Crash 问题分析
android
Nathan202406161 小时前
Kotlin-Sealed与Open的使用
android·前端·面试
2501_916013741 小时前
iOS 26 设备文件管理实战指南,文件访问、沙盒导出、系统变更与 uni-app 项目适配
android·ios·小程序·uni-app·cocoa·iphone·webview
2501_915921431 小时前
前端用什么开发工具?常用前端开发工具推荐与不同阶段的选择指南
android·前端·ios·小程序·uni-app·iphone·webview
2501_916007472 小时前
iOS 26 能耗检测实战指南,升级后电池掉速是否正常 + KeyMob + Instruments 实时监控 + 优化策略
android·macos·ios·小程序·uni-app·cocoa·iphone
2501_916013742 小时前
苹果上架 App 全流程详解,iOS 应用发布步骤、ipa 文件上传工具、TestFlight 测试与 App Store 审核经验
android·ios·小程序·https·uni-app·iphone·webview