一個(gè)用于幫助 Android App 進(jìn)行組件化改造插件工具 —— 使業(yè)務(wù)組件,功能組件library 可以感知到主工程Application的創(chuàng)建與退出;
在Android組件化開發(fā)中,必會(huì)經(jīng)歷的問題之一:組件/模塊初始化問題。組件化為了解耦,每個(gè)組件/模塊有不同的功能,例如不同組件/模塊要在application中初始化一些第三方SDK或本組件/模塊需要在application初始化時(shí)做一些操作。
[TOC]
最新版本
| 模塊 | com.qckiss.library:lifecycle.proxy | com.qckiss.plugin:lifecycle.register |
|---|---|---|
| 最新版本 | 1.0.0 | 1.0.0 |
一、功能介紹
library 可以感知到主工程Application的創(chuàng)建,從而做自身需要的操作
已開啟Transform增量編譯
二、基礎(chǔ)功能
-
添加依賴和配置
//主工程中 apply plugin: 'com.android.application' apply plugin: 'com.qckiss.plugin.lifecycleregister //掃描配置 scanPackageNames { scanAll = false //默認(rèn)false;掃描 names中包含的包名library,true掃描所有 names = ["com/xxx1","com/xxx2"] //包名分割符“/” }//主工程和各library dependencies { //替換為最新版本號(hào) implementation 'com.qckiss.library:lifecycle.proxy:x.x.x' }//項(xiàng)目build.gradle dependencies { ... classpath 'com.qckiss.plugin:lifecycle.register:x.x.x' } allprojects { repositories { maven{ url 'https://raw.githubusercontent.com/qcks/public-maven-repo/master' } } }
-
Library中添加標(biāo)記注解@MarkLibApplictionProxy
/** * priority 值越小 注冊(cè)優(yōu)先級(jí)越高 */ @MarkLibApplictionProxy(priority = 2) public class ModelaApplicationProxy implements IApplicationProxy { @Override public void onCreate(Application application) { Log.i("ModelA", "ApplicationProxy onCreate"); } @Override public void onExitAllActivity() { //暫未實(shí)現(xiàn) Log.i("ModelA", "ApplicationProxy onExitAllActivity"); } } -
殼子Application的onCreate方法添加標(biāo)記注解@MarkRecaptureLibProxy
public class MyApplication extends BaseApplication { @MarkRecaptureLibProxy @Override public void onCreate() { super.onCreate(); } } -
添加混淆規(guī)則(如果使用了Proguard)
-keep public class com.qckiss.liblifecycleproxy.**{*;} -keep class * implements com.qckiss.liblifecycleproxy.IApplicationProxy
三、操作步驟
點(diǎn)贊加星小禮物
復(fù)制粘貼人人愛
如有 BUG記小本
攜爾長(zhǎng)刀來相砍