版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Y1258429182/article/details/86521281
启动速度优化
初步测试
初步测试各个方法耗时:
序号 | 测试结果(ms) |
---|---|
Freso | 45 |
DownloadMannager | 3 |
okCache | 80 |
imageLoader | 17 |
Bugly | 40 |
LoginFromLocal | 167 |
InitSobot | 4 |
InitHpplay | 57 |
initYouZan | 220 |
测试依据
Trace分析 : 测试依据:具体可以参考 https://zhuanlan.zhihu.com/p/27331842 (支付宝大佬通过这个测试)
优化 Application 部分
代码如下:
@Override
public void onCreate() {
super.onCreate();
Trace.beginSection("KaishuApplication");
// .... 省略中间代码
Trace.endSection();
}
开始测试,Let‘s Go !!!!!!
一、 启动优化前(BH540 分支测试):
测试步骤: 测试五次,去掉一个最高,去掉一个最低: 然后剩下三个取平均值
序号 | 测试结果(ms) | 平均值 |
---|---|---|
1 | 1593 | 去掉 |
2 | 1619 | 去掉 |
3 | 1579 | 采用 |
4 | 1598 | 采用 |
5 | 1571 | 采用 |
最终平均值: (1579+1598+1571)/ 3= 1583ms
二、 启动优化后:
处理方法: 异步处理极光和友盟,去掉设置极光别名后,代码 修改如下:
// 异步处理 极光和友盟 todo: 有赞(200ms)左右还需要和有赞沟通是否能有api来优化
if (DeviceUtils.isMainProcess(this)) {
ExecutorService executorService = Executors.newSingleThreadExecutor();
executorService.execute(new Runnable() {
@Override
public void run() {
JPushInterface.setDebugMode(false);
JPushInterface.init(context);
initUmengShareAndLogin();
initUmengStatistics();
}
});
}
// 单独为KaishuApplication 初始化 登录的方法
public static void setLoginedFromLocal(Context context, MasterUser localMasterUser) {
//*************************
if (DeviceUtils.isMainProcess(context)) {
setLoginedForApplication(localMasterUser, false);
}
}
public static void setLoginedForApplication(MasterUser user, boolean bwriteToLocal) {
....
// 注释 设置别名 单独为
// JPushInterface.setAlias(KaishuApplication.getContext(), 1, "jpush" + masterUser.getUserid());
....
}
测试步骤: 测试五次,去掉一个最高,去掉一个最低: 然后剩下三个取平均值
序号 | 测试结果(ms) | 平均值 |
---|---|---|
1 | 692 | 去掉 |
2 | 770 | 去掉 |
3 | 708 | 采用 |
4 | 717 | 采用 |
5 | 701 | 采用 |
最终平均值: (708+717+701)/ 3= 709ms
最终优化结果
最终优化结果: (1583-709) / 1583 = 55.2 %
优化速度 55.2%