//注: 从CC 1.x升级到CC 2.x的用户,用此文件替换原来的cc-settings.gradle的同时,需要在根目录build.gradle中将插件地址按照如下方式更换一下: // classpath 'com.billy.android:autoregister:x.x.x' -> classpath 'com.billy.android:cc-register:x.x.x' //cc-register extension: // 功能介绍: // 完成组件、拦截器及跨进程json解释器等CC库自身需要的自动注册功能 // 支持新增自定义的其它自动注册功能,参考AutoRegister,用法参考cc-settings-demo.gradle // 为使用此脚本的模块应用 Android library 插件(如果还没有应用) if (!project.plugins.hasPlugin('com.android.library') && !project.plugins.hasPlugin('com.android.application')) { project.apply plugin: 'com.android.library' } // 初始化 runAsApp 属性(CC 框架需要,默认 false,表示作为 library 模块) if (!project.ext.has('runAsApp')) { project.ext.runAsApp = false } // 注意:cc-register 插件与 AGP 8.x 不兼容,暂时禁用自动注册功能 // 如果项目需要自动注册功能,需要手动注册组件或等待插件更新 // 检查 AGP 版本,只在兼容的版本下应用插件 def agpVersion = project.rootProject.ext.has('agp_version') ? project.rootProject.ext.agp_version : 'unknown' def agpMajorVersion = agpVersion != 'unknown' ? (agpVersion.split('\\.')[0] as int) : 8 if (agpMajorVersion < 8) { // AGP 7.x 及以下版本,可以正常使用 cc-register project.apply plugin: 'cc-register' } else { // AGP 8.x 及以上版本,cc-register 不兼容,跳过插件应用 println "警告: cc-register 插件与 AGP ${agpVersion} 不兼容,已跳过自动注册功能" println "CC 库仍会正常添加,但组件需要手动注册" } // 添加 CC 库依赖 // 注意:由于此脚本在 Android 插件应用之前执行,需要延迟到 afterEvaluate 中添加依赖 project.afterEvaluate { // 尝试使用 api,如果不存在则使用 implementation def configName = 'implementation' try { project.configurations.getByName('api') configName = 'api' } catch (Exception e) { configName = 'implementation' } project.dependencies.add(configName, "com.billy.android:cc:2.1.5") } //此文件是作为组件化配置的公共gradle脚本文件,在每个组件中都apply此文件,下载到工程根目录后,可以在下方添加一些自己工程中通用的配置 // 可参考cc-settings-demo.gradle // 例如: // 1. 添加全局拦截器、下沉的公共类库等一些公共基础库的依赖; // 2. 添加自定义的通过cc-register实现的自动注册配置 // 3. 开启app内部多进程支持 // 4. 其它公共配置信息 //开启app内部多进程组件调用时启用下面这行代码 //文档地址:https://luckybilly.github.io/CC-website/#/manual-multi-process //ccregister.multiProcessEnabled = true //开启app内部多进程组件调用时,可以启用下方的配置排除一些进程 //ccregister.excludeProcessNames = [':pushservice', ':processNameB'] //按照如下格式添加自定义注册项,可添加多个(也可每次add一个,add多次) // 文档地址: https://luckybilly.github.io/CC-website/#/manual-IActionProcessor //ccregister.registerInfo.add([ // //在自动注册组件的基础上增加:自动注册组件B的processor // 'scanInterface' : 'com.billy.cc.demo.component.b.processor.IActionProcessor' // , 'codeInsertToClassName' : 'com.billy.cc.demo.component.b.ComponentB' // , 'codeInsertToMethodName' : 'initProcessors' // , 'registerMethodName' : 'add' //])