在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:AutoRegister开源软件地址:https://gitee.com/luckybilly/AutoRegister开源软件介绍:自动注册插件前言此插件要解决的问题是:
使用此插件后,在编译期(代码混淆之前)扫描所有打到apk包中的类,将 名词解释
功能简介在apk打包过程中,对编译后的所有class(包含jar包中的class)进行扫描,将 scanInterface的实现类 或 scanSuperClasses的子类扫描出来,并在 codeInsertToClassName 类的 static块 中生成注册代码,如demo中: public class CategoryManager { static { CategoryManager.register(new CategoryA()); //scanInterface的实现类 CategoryManager.register(new CategoryB()); //scanSuperClasses的子类 }} 扫描的类包含:通过maven依赖的库、module依赖的library、aar包、jar包、AIDL编译后的类及当前module中的java类 要点:
使用方式
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0' classpath 'com.billy.android:autoregister:x.x.x' }}
apply plugin: 'auto-register'autoregister { registerInfo = [ [ 'scanInterface' : 'com.billy.app_lib_interface.ICategory' , 'scanSuperClasses' : ['com.billy.android.autoregister.demo.BaseCategory'] , 'codeInsertToClassName' : 'com.billy.app_lib_interface.CategoryManager' //未指定codeInsertToMethodName,默认插入到static块中,故此处register必须为static方法 , 'registerMethodName' : 'register' // , 'exclude' : [ //排除的类,支持正则表达式(包分隔符需要用/表示,不能用.) 'com.billy.android.autoregister.demo.BaseCategory'.replaceAll('\\.', '/') //排除这个基类 ] ], [ 'scanInterface' : 'com.billy.app_lib.IOther' , 'codeInsertToClassName' : 'com.billy.app_lib.OtherManager' , 'codeInsertToMethodName' : 'init' //非static方法 , 'registerMethodName' : 'registerOther' //非static方法 ] ]} 更新日志: 2018-08-18 V1.4.1支持增量编译及其开关(默认开启,可通过配置 2018-05-18 V1.3.0修复gradlew build命令同时打debug和release包时,release包中注册的代码重复的问题 2018-03-12 V1.2.0解决同时编译多个application module(点击Build -> Rebuild/Build APKs)时出现错误注册的问题 2018-01-15 V1.1.3解决windows的兼容性问题 2018-01-09 V1.1.0兼容java8 2017-12-17 V1.0.5
2017-12-06新增ARouter定制的路由自动注册插件:auto-register-for-arouter classpath 'com.billy.android:auto-register-for-arouter:1.0.0' apply plugin: 'auto-register-for-arouter' 2017-11-21 V1.0.4生成的注册代码不再局限于static块中,可以在任意方法(codeInsertToMethodName)中需要注意: codeInsertToMethodName 与 registerMethodName 必须同时为static或非static |
请发表评论