Android项目优化同步速度

最近项目需要使用ffmpeg,需要gradle配置引入ffmpeg库,发现原来通过google官方的代码仓,下载太慢了,每秒KB级别的速度。(之前下gradle/gradle plugin都不至于这么慢),于是想到配置国内镜像源来提升下速度。配置完后,速度达到MB级别。这种配置之前也时常接触,但是没系统的整理下,这次就来整理下。本文用到阿里云的仓库,当然国内还有别的仓库,网上一搜就那几个。

settings.gradle 配置地址

原来settings.gradle文件中相关内容如下。

repositories {
maven {
url 'https://maven.aliyun.com/nexus/content/repositories/releases/'
}
google()
mavenCentral()
}

不过ffmpeg没从阿里的那个地址找到,因为并不在那个仓。

这次配置成下面。

repositories {
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url 'https://maven.aliyun.com/repository/public' }
//mavenCentral() //实在没资源就加上这个吧
//google() //实在没资源就加上这个吧
}

这么配置,可以保证能满足大部分的android项目开发要求,gradle/gradle plugin/一些常用库等等都能在这找到去同步下载(只要相应我们要的东西在浏览器上能访问到,那就是存在这东西了),只是版本肯定没google官方地址提供的版本那么新,不过如果没特殊要求,我们其实不用取那么新的版本。

引入的库的写法

build.gradle里的implementation后面接的库的写法可以参照下面。

加入你要引用的文件信息:

dependencies {

compile 'GROUP_ID:ARTIFACT_ID:VERSION'

}

转自阿里云官方说明(https://developer.aliyun.com/mvn/guide)。

结合代码图1和自己理解说明下各个字段的对应关系。

图1

比如拿下面这句来举例。

implementation "androidx.camera:camera-core:${camerax_version}"

GROUP_ID就是androidx.camera,在阿里云搜索的话,就是输入这个来搜索,如图2。

图2

ARTIFACT_ID就是camera-core,搜索列表中文件名就有包含。

VERSION就是对应${camerax_version},这里是定义了个常量,如下。

def camerax_version = "1.3.0-alpha06"

也就是1.3.0-alpha06,一般来说,代码中的版本号就填搜索结果中的version那一列内容,如图2红框。

这里说下implementation最终确定下来用哪个版本库的技巧。

在用GROUP_ID搜索时,能找到同一个版本后,不同后缀名的文件,后缀有module、pom、jar、aar等,如图3,具体要用哪个,你可以另外再确认下这些后缀名对应文件的作用是什么,这些网上都有资料这里不赘述。一般来说,如果我们只是要引入这个库,而不需要将对应的软件下载下来集成到我们项目工程的话,你只要通过GROUP_ID搜索到,同时ARTIFACT_ID也找到有,那就说明这个库在阿里云是存在的,直接配到代码中就好。当然也有例外,因为android项目在根据implement构建下载对应库时,会下载不同后缀的文件去,搞不好可能就是某个版本的jar或是pom或是其他文件不存在。如果碰到这情况,另外换个版本号就好,多试几次。实在没有,那就最后考虑加入那个龟速的官方地址吧。

图3

相关推荐
Android-Flutter12 小时前
android compose 知识点
android·compose
其实防守也摸鱼14 小时前
Codex 下载与本地部署实战:从安装到运行全指南
android·大数据·运维·安全·自动化
ttyyttemo14 小时前
协程并发执行与共享状态
android
miaowmiaow14 小时前
我让 AI 给老项目做了一次分层架构升级:对标 Now in Android,从「穿层」到「端口与适配器」
android·ai编程·deepseek
mmsx14 小时前
Android 栅格数据缓冲区的类型包装:用匿名子类破解泛型擦除
android·地图·栅格
叶羽西14 小时前
Android Camera HAL调整图像处理线程优先级
android
HouWan15 小时前
Flutter: MediaQuery.of(context) 为什么可能拖慢页面?
android·flutter·ios
事圆则缓15 小时前
Android 图片内存到底怎么算
android
Godikov16 小时前
弱网环境离线优先:Android 终端数据可靠同步架构实战
android