sophix接入指南

setup1

app->build

implementation 'com.midust:HotCheckLib:1.0.6'

setup2

MyApplication->

 SdkContext.init(this);
        SophixCheck.getInstance()
                .setAppId("")
                .setMainVersion("")
                .setPatchVersion("")
                .setBrand(EquipmentUtil.getDeviceBrand())
                .setModel(EquipmentUtil.getSystemModel())
                .setOsVersion(EquipmentUtil.getSystemVersion())
                .setOs("1")
                .setDeviceId("");

由于大多數(shù)情況下需要冷啟動修復(fù)
AppFrontBackHelper helper = new AppFrontBackHelper();

    helper.register(instance, new AppFrontBackHelper.OnAppStatusListener() {

        @Override

        public void onFront() {
            // Toast.makeText(instance,"前臺",Toast.LENGTH_LONG).show();
            //應(yīng)用切到前臺處理
        }

        @Override

        public void onBack() {
            // Toast.makeText(instance,"后臺",Toast.LENGTH_LONG).show();
            //code=12 預(yù)加載階段, 需要重啟 才能修復(fù)
            if (SPUtils.getInt(instance, KeyConsts.SOPHIX_RESULT) == 12) {
                System.exit(0);
            }
            // new Handler().postDelayed(() -> ;
            //應(yīng)用切到后臺處理
        }
    });

setup3

SophixStubApplication->

  final SophixManager instance = SophixManager.getInstance();
        instance.setContext(this)
                .setAppVersion(appVersion)
                .setSecretMetaData("", "", "")//傳入對應(yīng)參數(shù)
                //注意上線必須改成false,否則會跳過校驗,風(fēng)險較大
                .setEnableDebug(false)
                .setEnableFullLog()
                .setPatchLoadStatusStub(new PatchLoadStatusListener() {
                    @Override
                    public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) {
                        //熱修復(fù)結(jié)果保存
                        if (code != PatchStatus.CODE_REQ_NOUPDATE) {
                            SPUtils.putInt(instances, KeyConsts.SOPHIX_RESULT, code);
                        }
                        if (code == PatchStatus.CODE_LOAD_SUCCESS) {
                            Log.i(TAG, "sophix load patch success!");
                        } else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {
                            // 如果需要在后臺重啟,建議此處用SharePreference保存狀態(tài)。
                            Log.i(TAG, "sophix preload patch success. restart app to make effect.");
                        }
                    }
                }).initialize();

setup4

進入app的時候調(diào)用
SophixCheck.getInstance().hotAppUpdate方法是否需要去阿里云查詢補丁包 需要的話調(diào)用SophixManager.getInstance().queryAndLoadNewPatch();并且SophixCheck.getInstance().reportUpdateFee上報記錄

setup5

在mainact和loginact 去判斷前面的SPUtils.getInt(instance, KeyConsts.SOPHIX_RESULT)的是否有值 如果不等于0調(diào)用SophixManager.getInstance()reportUpdateStatus(int code)方法,記錄補丁結(jié)果

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

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