配置过程中的一些注意点
普通安装,除了 SDK,还需要安装SDK Tools中的NDK,Cmake和Google USBDriver
| 名字 |
类别 |
一句话 |
| SDK |
开发框架 |
写 Java/Kotlin 代码时用的官方库和工具 |
| NDK |
原生编译工具 |
写 C/C++ 代码时用的编译器和系统库 |
| CMake |
构建脚本 |
告诉编译器「哪些 C++ 文件要编译、怎么编」 |
| USB Driver |
电脑驱动 |
让电脑能识别你的手机,用来调试 |
连接mumu
mumu打开调试选项后,版本是Android15,端口是16384。
进入:D:\software\Android\SDK\platform-tools,里面有Android的adb,连接mumu
1 2 3 4 5 6 7 8 9 10
| # 建议先重启 adb 服务 adb kill-server adb start-server
# 连接(端口换成你自己的) adb connect 127.0.0.1:16384
# 查看设备 adb devices
|
配置 Gradle Sync
项目开始跑的时候,会用Gradle构建项目,初次使用需要下载Gradle,下载速度会很慢,所以需要快速的换源,换源前记得删除已经下载的缓存,防止错乱
1
| C:\Users\test\.gradle\wrapper\dists\gradle-9.6.0-bin
|
项目根目录 gradle/wrapper/gradle-wrapper.properties
将
1
| distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.0-bin.zip
|
换成
1
| distributionUrl=https\://mirrors.aliyun.com/gradle/gradle-9.6.0-bin.zip
|
如果这个下载源下载失败了,则可以用官方的下载源,然后配置下本地代理端口即可
1 2 3 4 5 6 7 8
| systemProp.http.proxyHost=127.0.0.1 systemProp.http.proxyPort=10808 systemProp.https.proxyHost=127.0.0.1 systemProp.https.proxyPort=10808
# 本机/模拟器通信不要走代理 systemProp.http.nonProxyHosts=localhost|127.0.0.1|127.0.0.1:* systemProp.https.nonProxyHosts=localhost|127.0.0.1|127.0.0.1:*
|
我的代理是V2,所以是10808。配置代理后后,gradle默认所有网络请求走代理,需要对本机的请求做一个排除。
然后将 Gradle 的包下载源改掉,在项目根目录的 settings.gradle.kts 内容也改一下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| pluginManagement { repositories { maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") } // 阿里云镜像(优先) maven { url = uri("https://maven.aliyun.com/repository/google") } // 阿里云镜像(优先) maven { url = uri("https://maven.aliyun.com/repository/central") } // 阿里云镜像(优先) google { content { includeGroupByRegex("com\\.android.*") includeGroupByRegex("com\\.google.*") includeGroupByRegex("androidx.*") } } // 只从 Google 官方下载,这是原配置用来兜底 mavenCentral() // 只从 Maven Central 下载,这是原配置用来兜底 gradlePluginPortal() // 只从 Gradle 插件门户下载,这是原配置用来兜底 } } plugins { id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { maven { url = uri("https://maven.aliyun.com/repository/public") } // 阿里云镜像(优先) maven { url = uri("https://maven.aliyun.com/repository/google") } // 阿里云镜像(优先) maven { url = uri("https://maven.aliyun.com/repository/central") } // 阿里云镜像(优先) google() // 这俩保留的原因同上 mavenCentral() } } rootProject.name = "demo" // 自己的项目名 include(":app")
|
一个项目跑起来需要的步骤如下:
1
| Sync(下载依赖) → Build(编译APK) → 连设备(MuMu) → Run(安装运行)
|
这里补充以下 gradle和maven的对比
| 特性 |
Maven |
Gradle |
| 语法/配置 |
纯 XML 配置(pom.xml),语法繁琐、灵活度低 |
支持 Groovy/Kotlin DSL,兼具声明式+命令式,简洁灵活 |
| 构建速度 |
较慢,无增量构建/缓存,每次全量构建 |
极快,支持增量构建、构建缓存、并行执行 |
| 灵活性 |
高度约定优于配置(Convention over Configuration),定制化需写插件,成本高 |
既支持约定也支持灵活定制,可直接写代码逻辑,定制化成本低 |
| 学习曲线 |
平缓,XML 规则固定,新手易上手 |
较陡,需了解 DSL 语法,进阶功能需学习 Groovy/Kotlin |
| 生态/插件 |
生态成熟,插件数量多且稳定 |
兼容 Maven 生态,插件丰富且更新快 |
| 依赖管理 |
依赖解析规则固定,冲突解决较麻烦 |
依赖解析更智能,支持动态版本、冲突策略自定义 |
| 多模块构建 |
支持,但跨模块依赖管理较死板 |
支持更灵活,跨模块任务依赖可自定义 |