0.问题抛出
在Android里我们说的插件到底指的是什么,表达是否准确?
1.Android插件的种类
a.Android Studio插件
针对Android Studio这个IED的插件,一般可以帮你写代码或格式化等,与你编译或打包时的代码没关系
个人觉得好用的11个插件推荐:
- 1.GsonFormat:快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应java Bean的过程。
- 2.Android ButterKnife Zelezny:配合ButterKnife实现注解,从此不用写findViewById,想着就爽啊。在Activity,Fragment,Adapter中选中布局xml的资源id自动生成butterknife注解
- 3.Android Code Generator:根据布局文件快速生成对应的Activity,Fragment,Adapter,Menu。
- 4.Android Parcelable code generator:JavaBean序列化,快速实现Parcelable接口。
- 5.Android Methods Count:显示依赖库中得方法数
- 6.Lifecycle Sorter:可以根据Activity或者fragment的生命周期对其生命周期方法位置进行先后排序,快捷键Ctrl + alt + K
- 7.CodeGlance:在右边可以预览代码,实现快速定位
- 8.findBugs-IDEA:查找bug的插件,Android Studio也提供了代码审查的功能(Analyze-Inspect Code…)
- 9.ADB WIFI:使用wifi无线调试你的app,无需root权限(也可参考以下文章:http://www.jianshu.com/p/21d1b65d92a4)
- 10.AndroidPixelDimenGenerator:Android Studio自动生成dimen.xml文件插件
- 11.JsonOnlineViewer:在Android Studio中请求、调试接口
b.Gradle插件
针对单个项目的插件,一般不会帮你写代码,但是编译时会帮你生成代码,常见的提现方式:(在项目的build.gradle下添加插件作为 classpath)
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:3.6.3'
...
}
...
}
然后在app的build.gradle下
apply plugin: 'com.android.application'
c.APP的插件
针对APP的,将一个apk根据业务功能拆分成不同的子apk(也就是不同的插件),每个子apk可以独立编译打包,最终发布上线的是集成后的apk。在apk使用时,每个插件是动态加载的,插件也可以进行热修复和热更新,与组件化的区别是:组件化的单位是module,插件化的单位是apk。模块化、组件化、插件化细分可以看文章下面的一次搞懂—模块化、组件化与插件化
个人比较推荐360的Replugin,RePlugin是一套完整的、稳定的、适合全面使用的,占坑类插件化方案,也是业内首个提出”全面插件化“(全面特性、全面兼容、全面使用)的方案
另外比较热门的还有阿里的atlas,滴滴的VirtualAPK
参考资料: