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

相关推荐
程序员陆业聪8 分钟前
读者点单·02|Android 启动优化实战:Trace 抓取→Application 编排→冷启动全流程拆解
android
Coffeeee12 分钟前
帮你快速理解AI Agent之我想招个Android实习生
android·人工智能·agent
恋猫de小郭1 小时前
苹果 AirPods 协议,Android 也可以使用完整版 AirPods 能力
android·前端·flutter
黄林晴2 小时前
告别无效重建:Gradle 9.6.0 解决 CI 构建缓存失效痛点告别无效重建:Gradle 9.6.0 解决 CI 建筑缓存失效痛点
android·gradle
张风捷特烈2 小时前
Flutter 类库大揭秘#01 | path_provider架构与设计
android·flutter
_阿南_11 小时前
Android文件读写和分享总结
android
通玄20 小时前
Jetpack Compose 入门系列(六):Navigation 3 页面导航
android
rocpp1 天前
Android 多语言切换实战:从 Context 到 Android 13 应用语言适配
android·kotlin
释然小师弟1 天前
Android开发十年:反思与回顾
android·后端·嵌入式
黄林晴1 天前
用了这么久 Koin Scope,原来一直都用错了?
android·kotlin