CPU优化
锁优化 目标:减少 CPU 空转 避免锁竞争 by lazy 使用 by lazy 时需要注意几个性能相关的点: 初始化成本:虽然延迟初始化可以推迟成本,但初始化时的开销仍然存在 内存占用:lazy 对象会持有初始化 lambda 的引用 多生成一个对象? 线程安全开销:默认的同步模式会有一定的性能开销 可以通过配置 lazy 的模式来优化性能: priva...
锁优化 目标:减少 CPU 空转 避免锁竞争 by lazy 使用 by lazy 时需要注意几个性能相关的点: 初始化成本:虽然延迟初始化可以推迟成本,但初始化时的开销仍然存在 内存占用:lazy 对象会持有初始化 lambda 的引用 多生成一个对象? 线程安全开销:默认的同步模式会有一定的性能开销 可以通过配置 lazy 的模式来优化性能: priva...
AndroidX AsyncLayoutInflater 见 [[AsyncLayoutInflater]] 异步加载,协程 OkLayoutInflater/oklayoutinflator/src/main/java/tech/okcredit/layout_inflator/OkLayoutInflater.kt at master · okcredit/OkLayoutInfl...
Maven 基础 POM 和 GAV 什么是 POM? POM(Project Object Model),项目对象模型。Maven 把一个项目的结构和内容抽象成一个模型,在 xml 文件中进行声明,pom.xml 就是这个模型文件。 Pom. Xml 文件中声明了当前项目的坐标,引入的依赖,打包的方式,以及 maven 管理使用到的插件等配置信息,是 maven 项目的核心配置文件...
Gradle 插件之 maven-publish maven-publish 介绍 maven-publish 官方文档:publishing_maven.htmlmaven 插件已经过时,官方推荐使用 maven-publish 插件来实现将我们的代码发布到 Apache Maven 仓库的功能。 maven-publish 插件引入 groovy 脚本引入 // bui...
AAR https://developer.android.com/studio/projects/android-library?hl=zh-cn#aar-contents 什么是 AAR? AAR 文件(名字来源于 Android Archive,见名知义,是一个 Android 库项目的二进制归档文件),这个不仅可以把 Java 文件给打进去,还包含 AndroidManifes...
Kotlin 之 Gradle 基础 gradle project 和 task 用 kotlin 自定义 task gradle 依赖 gradle 生命周期 扫描 执行 task("opendoor", { println("open door scan1") // 扫描阶段 doFirst({ println("open door...
Gradle 原理 以 Gradle6.5 源码来分析 Gradle 构建核心流程解析 整体流程: 具体流程: 我们执行一个构建任务的时候,都是执行 ./gradlew assembleDebug 这样的命令,其中的 gradlew 脚本就是整个 gradle 构建的入口,前面的代码基本上就是判断环境,设置变量的,直接看最后一行: exec "$JAVACMD" "${...
Gradle 技巧 远程 Gradle 脚本 可以将一些通用的 Gradle 脚本放到远程,提高复用性 gitlab:通过 gitlab 的 api v4 来访问 未验证 apply from: ‘https://git.私有化部署的 gitlab 域名.com/api/v4/projects/projectId(工程 id)/repository/files/目录名%2F ...
dependencyResolutionManagement 和 allprojects 的 repositories 同时配置了仓库 错误 A problem occurred evaluating root project 'android-architecture'. > Build was configured to prefer settings reposito...
为什么要选择 VersionCatalog 来做依赖管理?AGP 升级到 3.x 官网文档:https://developer.android.com/studio/releases/gradle-plugin.html#revisions升级到 AGP3.0.0+https://developer.android.com/studio/build/gradle-plugin-3-0-0-...