Android組件化之組件/模塊初始化注冊(cè)到application;組件生命周期注冊(cè)

一個(gè)用于幫助 Android App 進(jìn)行組件化改造插件工具 —— 使業(yè)務(wù)組件,功能組件library 可以感知到主工程Application的創(chuàng)建與退出;
在Android組件化開發(fā)中,必會(huì)經(jīng)歷的問題之一:組件/模塊初始化問題。組件化為了解耦,每個(gè)組件/模塊有不同的功能,例如不同組件/模塊要在application中初始化一些第三方SDK或本組件/模塊需要在application初始化時(shí)做一些操作。

LiblifecycleRegisterPlugin

English


[TOC]

最新版本

模塊 com.qckiss.library:lifecycle.proxy com.qckiss.plugin:lifecycle.register
最新版本 1.0.0 1.0.0

一、功能介紹

library 可以感知到主工程Application的創(chuàng)建,從而做自身需要的操作

已開啟Transform增量編譯

二、基礎(chǔ)功能

  1. 添加依賴和配置

    //主工程中
        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'
                }
            }
        }
    
  1. 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");
        }
    }
    
  2. 殼子Application的onCreate方法添加標(biāo)記注解@MarkRecaptureLibProxy

    
    public class MyApplication extends BaseApplication {
        @MarkRecaptureLibProxy
        @Override
        public void onCreate() {
            super.onCreate();
        }
    }
    
  3. 添加混淆規(guī)則(如果使用了Proguard)

    -keep public class  com.qckiss.liblifecycleproxy.**{*;}
    -keep class * implements com.qckiss.liblifecycleproxy.IApplicationProxy
    

三、操作步驟


點(diǎn)贊加星小禮物
復(fù)制粘貼人人愛
如有 BUG記小本
攜爾長(zhǎng)刀來相砍

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容