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 中的文件来决定哪些类不进行混淆。

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

相关推荐
ゆづき几秒前
假如编程语言们有外号
java·c语言·c++·python·学习·c#·生活
xuhaoyu_cpp_java几秒前
Linux学习(一)
linux·经验分享·笔记·学习
red_redemption4 分钟前
自由学习记录(189)
学习
yyyyy_abc8 小时前
ceph学习笔记
笔记·ceph·学习
晓梦林9 小时前
ximai靶场学习笔记
android·笔记·学习
nashane9 小时前
HarmonyOS 6学习:外接键盘CapsLock与长截图功能的实战调试与完整解决方案
学习·华为·计算机外设·harmonyos
一口吃俩胖子10 小时前
【脉宽调制DCDC功率变换学习笔记021】时域性能准则
笔记·学习
@杰克成11 小时前
Java学习30
java·开发语言·学习
三品吉他手会点灯11 小时前
C语言学习笔记 - 40.数据类型 - scanf函数的编程规范与非法输入处理
c语言·开发语言·笔记·学习
Bechamz13 小时前
大数据开发学习Day36
大数据·学习