[Update]启动优化初版

This commit is contained in:
chenfufeng
2022-05-11 18:25:49 +08:00
parent c72d86c48f
commit 56f8c969b8
20 changed files with 771 additions and 473 deletions

View File

@@ -1,8 +1,5 @@
package com.mogo.commons;
import static com.mogo.aicloud.services.httpdns.HttpDnsConst.HTTP_DNS_ADDRESS_TYPE_HTTP;
import static com.mogo.commons.debug.DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE;
import android.app.Application;
import android.content.Context;
import android.text.TextUtils;
@@ -12,20 +9,11 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.aicloud.services.httpdns.IMogoHttpDns;
import com.mogo.aicloud.services.httpdns.MogoHttpDnsHandler;
import com.mogo.commons.crash.FinalizeCrashFixer;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.device.Devices;
import com.mogo.commons.network.NetConfigUtils;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.mogo.toast.TipDrawable;
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast;
import com.mogo.eagle.core.utilcode.util.AppStateManager;
import com.mogo.eagle.core.utilcode.util.AppUtils;
import com.mogo.eagle.core.utilcode.util.CleanUtils;
import com.mogo.eagle.core.utilcode.util.ThreadPoolService;
import com.mogo.eagle.core.utilcode.util.Utils;
import io.reactivex.plugins.RxJavaPlugins;
@@ -40,27 +28,19 @@ public abstract class AbsMogoApplication extends Application {
private static final String TAG = "AbsMogoApplication";
private static Application sApp;
protected static Application sApp;
public static Application getApp() {
return sApp;
}
private static IMogoHttpDns sApis;
@Override
public void onCreate() {
super.onCreate();
AppStateManager.INSTANCE.init(this);
initRxJavaErrorHandler();
sApp = this;
FinalizeCrashFixer.fix();
initARouter();
Utils.init(this);
if (shouldInit()) {
initHttpDns();
}
}
private void initRxJavaErrorHandler() {
@@ -69,40 +49,10 @@ public abstract class AbsMogoApplication extends Application {
});
}
/**
* 初始化跨模块框架 ARouter
*/
private void initARouter() {
try {
if (DebugConfig.isDebug()) {
ARouter.openDebug();
ARouter.openLog();
}
// 初始化 arouter
ARouter.init(sApp);
} catch (Exception e) {
e.printStackTrace();
// 由于ARouter会在SP_AROUTER_CACHE.xml缓存路由表如果出现了被删除的情况会报错这里清除下就好了
CleanUtils.cleanInternalSp();
// 重启应用
AppUtils.relaunchApp();
}
}
protected boolean shouldInit() {
return true;
}
/**
* 初始化 HttpDNS ,这里会通过一个接口获取所有鹰眼中使用的微服务域名以及端口号
* 后续的网络请求会通过 HttpDnsInterceptor 进行拦截替换
*/
protected void initHttpDns() {
if (sApis == null) {
sApis = MogoHttpDnsHandler.getHttpDnsApi();
}
}
/**
* 初始化 自定义样式e饿
*/
@@ -143,49 +93,4 @@ public abstract class AbsMogoApplication extends Application {
}
return contentView;
}
/**
* 异步初始化
*/
protected void asyncInit() {
ThreadPoolService.execute(() -> {
if (DebugConfig.getCarMachineType() == CAR_MACHINE_TYPE_SELF_INNOVATE) {
Devices.init(getApp());
Devices.checkBindState();
}
//初始化网络配置
NetConfigUtils.init();
asyncInitImpl();
});
}
/**
* 异步厨初始化
*/
protected void asyncInitImpl() {
}
// 缓存IP地址
private String cacheIp = null;
/**
* 请求获取最新的 DNS 微服务 域名信息
*/
protected void registerSocketHttpDnsTTL(String host) {
sApis.addressChangedListener(map -> {
String dnsCacheIp = sApis.getCachedHttpDnsIps(host, HTTP_DNS_ADDRESS_TYPE_HTTP);
if (dnsCacheIp == null) {
return;
}
if (!dnsCacheIp.equals(cacheIp)) {
CallerLogger.INSTANCE.d("TEST_SOCKET", "获取缓存Dns IP : " + dnsCacheIp + " , 原缓存 IP " + cacheIp);
socketTTL();
this.cacheIp = dnsCacheIp;
}
});
}
protected abstract void socketTTL();
}