当前位置: 首页 > news >正文

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

http://www.dtcms.com/a/54860.html

相关文章:

  • 属于网络安全规划重安全性需求
  • 专题02.DeepSeek R1大语言模型发展演进
  • ssm_mysql_暖心家装平台
  • android 横竖屏适配工作总结
  • CentOS 7.9 安装 ClickHouse 文档
  • 信息检索--课程笔记
  • Unity多Pass渲染与GPU Instancing深度优化指南
  • 使用基于深度学习的 T1 加权 MRI 个性化电场图直接估计 tDCS 数字孪生
  • 华为 VRP 系统简介配置TELNET远程登录
  • 第二次CCF-CSP认证(含C++源码)
  • CTF 中的 XSS 攻击:原理、技巧与实战案例
  • BZOJ2121 字符串游戏
  • uniapp+微信小程序+地图+传入多个标记点显示+点击打开内置地图导航+完整代码
  • 网络安全:利用 IP 查询构建网络安全系统的方法
  • 技术方案包括哪些内容
  • JavaAdv——多线程同步案例(售票系统)
  • OpenCV计算摄影学(16)调整图像光照效果函数illuminationChange()
  • BambuStudio学习笔记:KDTreeIndirect类
  • 数据库复习(第五版)- 第四章 数据库安全性
  • LeetCode hot 100—二叉树的中序遍历
  • 【JavaEE】SpringMVC简单练习
  • GTX 50系显卡cuda、pytorch环境配置
  • VMware ESX曝3个0Day漏洞,已被黑客利用
  • 股指期货的主要用途有哪些?
  • 百度权重有什么用?如何查看百度权重?
  • 20250306JIRA添加企业微信邮箱通知
  • C++ primier plus 第七节 函数探幽第一部分
  • Stable Diffusion教程|快速入门SD绘画原理与安装
  • 文本处理Bert面试内容整理-如何使用BERT进行微调?
  • linux0.11内核源码修仙传第四章——head.s