踩过好多坑之后
直接上代码
public class AppEntryApplication extends Application {
Application app;
@Override
public void onCreate() {
// OtherSDKPay.getInstance().applicationInit(this);
super.onCreate();
app.onCreate();
}
@Override
protected void attachBaseContext(Context context) {
super.attachBaseContext(context);
getVersionCode();
downloadFile();
inject();
Class realApplication = null;
ContextWrapper cw = null;
try {
realApplication = Class
.forName("com.example.androidtest11.MyApplication1");
cw = (ContextWrapper) realApplication.newInstance();
app = (Application) cw;
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
Method attachBaseContext = ContextWrapper.class.getDeclaredMethod(
"attachBaseContext", Context.class);
attachBaseContext.setAccessible(true);
attachBaseContext.invoke(cw, context);
} catch (Exception e) {
throw new IllegalStateException(e);
}
}
}
结束,简单易懂
本文介绍了一个Android应用启动过程中的优化技巧,包括如何自定义Application类的初始化流程、动态加载代码和资源、使用反射机制实现Context的重定向等。通过这些实践可以显著提升应用的启动速度。
646

被折叠的 条评论
为什么被折叠?



