Android Gradle - 一些 Gradle 的碎片知识(Android Gradle Plugin、namespace、package 属性、模块打包)
Gradle 与 Android Gradle Plugin
-
Gradle 是一个强大且高度可配置的构建工具,本身只提供了核心的构建框架和任务管理机制,,为各类项目(例如,Java、Kotlin、C++ 项目)提供构建能力的基础
-
Android Gradle Plugin 是运行在 Gradle 之上的一个特定插件,它的作用是让 Gradle 能够理解并执行构建 Android 应用所需的一切复杂工作,例如
1. 编译资源文件和 Java / Kotlin 代码
2. 处理 AndroidManifest.xml
3. 对 APK 进行签名和对齐
4. 管理构建变体
Android Gradle 中的 android { namespace }
-
namespace 是 Android Gradle Plugin(AGP)7.0 版本中引入了新的概念,用来取代旧版的 applicationId 和 package 在资源访问层面的角色
-
namespace 的核心作用是给 App 的
R.java文件指定一个包名路径 -
旧方式的
R.java的包名路径默认等于AndroidManifest.xml文件中的 package 属性
旧版 package 的属性身兼多职
1、基本介绍
-
应用唯一标识:系统根据 package 识别你的 App、布到 Google Play 后不可更改、影响安装路径
/data/data/<package>/ -
资源命名空间:决定
R.java文件生成的包路径 -
默认代码包名:如果没有显式指定,Java / Kotlin 文件的默认包名就是它,
AndroidManifest.xml文件中注册的四大组件可以省略包名
<!-- 完整写法 -->
<activity android:name="com.example.myapp.MainActivity" />
<!-- 省略包名 -->
<activity android:name=".MainActivity" />
2、AGP 7.0+ 的明确分工
-
应用唯一标识:交给项目级
build.gradle的 applicationId -
资源命名空间:交给项目级
build.gradle的 namespace -
默认代码包名:交给项目级
AndroidManifest.xml的 package
Android 模块打包
1、基本介绍
-
如果模块只包含纯逻辑代码,那可以打 JAR 包
-
但大多数 Android 模块会涉及资源文件,最推荐的还是打 AAR 包
布局文件(.xml)
图片、图标(drawable/)
颜色、尺寸、字符串(values/)
自定义 View 需要 attrs.xml
四大组件(Activity、Service 等)需要清单声明
-
只有纯算法、工具类(没有 Android 资源)可以打 JAR 包;但凡有界面或资源,必须打 AAR 包
-
Gradle implementation 可以拉取 JAR 包或 AAR 包
2、打 AAR 包
-
创建 Android Library 模块:
【File】 → 【New】 → 【New Module】 → 【Android Library】 -
构建 AAR 包:
打开右侧 Gradle 面板 → 找到【模块名/Tasks/build/assemble] → 双击执行 -
获取 AAR 包,生成位置如下
模块名/build/outputs/aar/
├── 模块名-release.aar # 正式版(推荐)
└── 模块名-debug.aar # 调试版
更多推荐

所有评论(0)