androidStudio gradle 配置学习总结

一、compileOnly、implementation、api 三者区别;

总结对比表:

配置 编译时可用 运行时可用 是否传递 使用场景
implementation 普通依赖,默认推荐
api 需要暴露给其他模块使用的依赖
compileOnly 仅编译时需要,如注解、平台 SDK

compileOnly 适合依赖机器存在jar代码时用,如编译的framework.jar,可减小apk体积。

最佳实践建议:

  1. **默认使用 implementation**:避免不必要的依赖传递。
  2. **慎用 api**:只有当多个模块需要共享某个库的 API 时才使用。
  3. **合理使用 compileOnly**:如 Lombok、Dagger 编译时生成代码,或 Android 中的 provided 场景。
  4. 迁移旧项目 :将旧的 compile 改为 implementationapi,根据实际暴露需求决定。

二、混淆配置

本地测试来看,编译aar时,

复制代码
minifyEnabled true  表示开混淆,为true时,proguard-rules.pro才有用;
consumerProguardFiles "consumer-rules.pro"    会将consumer-rules.pro 中的内容打包到aar中proguard.txt 中,类似一个说明作用。
复制代码
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 

则是按proguard-rules.pro 中的文件来决定哪些类不进行混淆。

但参数类型和注释保留测试不起作用。

相关推荐
星火开发设计10 小时前
类型别名 typedef:让复杂类型更简洁
开发语言·c++·学习·算法·函数·知识
Gorgous—l11 小时前
数据结构算法学习:LeetCode热题100-多维动态规划篇(不同路径、最小路径和、最长回文子串、最长公共子序列、编辑距离)
数据结构·学习·算法
Hello_Embed11 小时前
libmodbus 移植 STM32(基础篇)
笔记·stm32·单片机·学习·modbus
●VON12 小时前
Flutter for OpenHarmony 21天训练营 Day03 总结:从学习到输出,迈出原创第一步
学习·flutter·openharmony·布局·技术
香芋Yu12 小时前
【大模型教程——第四部分:大模型应用开发】第1章:提示工程与上下文学习 (Prompt Engineering & ICL)
学习·prompt
LYS_061812 小时前
寒假学习10(HAL库1+模数电10)
学习
runningshark13 小时前
【项目】示波器学习与制作
学习
€81113 小时前
Java入门级教程24——Vert.x的学习
java·开发语言·学习·thymeleaf·数据库操作·vert.x的路由处理机制·datadex实战
自可乐13 小时前
n8n全面学习教程:从入门到精通的自动化工作流引擎实践指南
运维·人工智能·学习·自动化