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

相关推荐
CYRUS STUDIO17 分钟前
FART 自动化脱壳框架一些 bug 修复记录
android·bug·逆向·fart·脱壳
寻找优秀的自己1 小时前
Cocos 打包 APK 兼容环境表(Android API Level 10~15)
android·cocos2d
大胃粥2 小时前
WMS& SF& IMS: 焦点窗口更新框架
android
QING6182 小时前
Gradle 核心配置属性详解 - 新手指南(二)
android·前端·gradle
QING6182 小时前
Gradle 核心配置属性详解 - 新手指南(一)
android·前端·gradle
_一条咸鱼_5 小时前
Android Runtime内存管理子系统启动流程原理(13)
android·面试·android jetpack
法迪5 小时前
Android的uid~package~pid的关系
android
二流小码农6 小时前
鸿蒙开发:hvigorw,一个你不得不去了解的神器
android·ios·harmonyos
雨白6 小时前
详解三种常见布局:LinearLayout、RelativeLayout及FrameLayout
android