| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android Gradle Plugin插件开发----介绍 -> 正文阅读 |
|
[移动开发]Android Gradle Plugin插件开发----介绍 |
????????以下内容基于本人所学插件内容而编写的,如与网上插件内容不相同,很正常 ????????android 插件化开发,这个词我们在网上经常可以看到,同时看到的还有组件化开发。在这里我们只讨论插件化开发的相关内容。 1.插件的作用?????????以我所学的插件知识,我简单概括下插件的作用,即插件可以用于哪些地方。 1.接入第三方SDK时进行统一配置参数。 ????????场景:有多个APP,都接入了友盟推送SDK ? ? ? ? 不使用插件时:如果友盟推送SDK进行了升级,此时需要一个个APP找过去,把他们的?build.gradle、androidManifest.xml、java文件 等等位置的代码进行修改,稍不留神就容易改错,改完以后还要验证配置是否升级成功。以及查找推送配置的时候,要在?build.gradle、androidManifest.xml、java文件 等等位置查找。维护、升级成本高。更新维护不方便,代码耦合度高 ? ? ? ? 使用插件:结合组件化功能,在gradle中将所有相关的配置参数都配置好,而不需要在 build.gradle、androidManifest.xml、java文件 这些不同的地方分开配置参数,方便统一管理配置参数、更新维护。 2.接入多个三方SDK时,使用插件统一对不同应用进行混淆配置 ? ? ? ? 场景:有多个APP,各接入了多个三方SDK,现在APP需要混淆? ? ? ? ? 不使用插件时:?去SDK对应网址查找混淆配置、其他APP处复制混淆配置,并添加到各个APP的混淆配置中,如果后续这些SDK混淆方式有所更改,需要一个个将这些APP的混淆配置改过来。更新维护不方便。 ????????使用插件:可以在打包APK的过程中,将特定的多个三方SDK的混淆配置加入到现有的混淆配置中,统一维护管理,一键添加、移除混淆。 3.使用插件一键切换SDK平台----相同功能SDK,平台不同 ????????场景:有很多APP,都接入了友盟统计SDK,如果某一天,需要将所有APP都改为接入百度统计SDK ????????不使用插件时: 需要每次都往应用代码中加入对应平台的统计SDK,注释掉之前使用的统计SDK,移除添加 build.gradle、androidManifest.xml、java文件 等配置、初始化代码,还要检查是否移除更改成功,等等操作。更新维护不方便,代码耦合度高 ?? ? ? ?使用插件:现有的 XCSUEvent?统计SDK,在里面接入了百度、友盟统计SDK,未来可以加入更多平台的统计SDK。可以通过gradle的配置,来让APP自由的切换应用百度统计SDK、友盟统计SDK、其他统计SDK,以及对应SDK的 androidManifest.xml、权限、混淆配置。即应用百度统计SDK时,只会加入百度统计SDK相关的配置加入到APP中;应用友盟统计SDK时,只会加入友盟统计SDK相关的配置加入到APP中。 4.使用插件动态更改类包名相关配置 ????????场景:多个APP接入微信支付、微信分享SDK时,需要新建文件夹,配置 包名.wxapi.WXPayEntryActivity ?包名.wxapi.WXEntryActivity ? 这两个文件;多个APP接入友盟产商推送时,需要各自新建 XXXPushNotifyActivity 类文件用于接收产商推送 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????不使用插件时: APP每次接入微信支付微信分享时,都需要配置?包名.wxapi.WX 文件,并在里面编写对应的逻辑代码,没有复用性;每次接入友盟产商推送时,都需要配置?XXXPushNotifyActivity?类文件用于接收产商推送,并在里面编写对应的逻辑代码,没有复用性; ????????使用插件:根据插件的接入文档,将组件中的 WXEntryActivity 包名动态修改为应用包名,并在回调处处理对应逻辑;将组件中的 XXXPushNotifyActivity 包名动态修改为产商推送后台配置的路径名,并在回调处处理跳转逻辑; 2.插件是怎么生效的2.1.插件的使用流程简单地介绍下插件的使用流程 ,以 友盟推送插件 为例子
首先在项目根目录下的 build.gradle 中配置插件的仓库地址 maven、插件地址 classpath
根据插件的说明文档,在app下新建?push-umeng-support.gradle 文件,并进行上诉的配置参数
在 app 的 build.gradle 中配置,应用插件,完毕! 2.2.插件的生效流程简单地介绍下插件的生效流程 ,以 友盟推送插件 为例子
在合并处理完并输出 AndroidManifest.xml 文件之后,插件将该文件复制保留一份,命名为?PushUmengOriginalAndroidManifest.xml ,然后将源文件进行修改,并保存。 在混淆 task 之前,将混淆配置加入到混淆列表中。 在转换 task 过程中,将 push-umeng-core 组件中的推送配置参数修改掉,完成推送配置 3.插件开发简单示例?插件可以使用 groovy 以及 kotlin 语言开发,这里就2个都给上例子 首先新建一个 buildScr 文件夹,该文件夹在 build 的时候,会自动应用到项目中,无需在?settings.gradle ?中配置 buildScr.jpg? ?GroovyLanguagePlugin.groovy ?KotlinLanguagePlugin.kt GroovyLanguagePlugin.properties? KotlinLanguagePlugin.properties? build.gradle? 然后在 app 模块下的 build.gradle 中配置插件 ?编译运行 ?Build -> Rebuild Project?,会打印日志 ?至此我们简单地介绍了下Android Gradle Plugin插件开发,下一篇,有缘再见 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 20:37:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |