Android优化————启动优化

Click Event -> IPC -> Proc
ess.start -> ActivityThread -> bindApplication -> LifeCycle -> ViewRootImpl

  • 热启动:直接从后台切换到前台。
优化方向

可优化Application、Activity的创建以及回调过程

  1. 提前展示一个window(欢迎页),给用户友好的提示
  2. 避免启动做繁重密集的初始化操作
  3. 过度绘制,网络,io等优化
优化检测
  1. adb命令检测

// 其中的AppstartActivity全路径可以省略前面的packageName
adb shell am start -W [packageName]/[AppstartActivity全路径]

  • ThisTime:最后一个Activity的启动耗时
  • TotalTime:所有Activity的启动耗时
  • WaitTime:表示AMS启动Activity的总耗时。

一般读取WaitTime,为Application和Activity的初始化过程耗时。(冷启动耗时)

优缺点:

  • 线下使用方便,不能带到线上
  • 非精确时间
  1. 自定义打点查看耗时
  • 应用生命周期节点
  • 启动的初始化方法节点
  • 其他耗时业务,算法节点

优缺点:

  • 精确,可上线
  • 修改成本高

3.AOP打点 加入aspectjx库,打印出Application,Activity的耗时时间,进行针对优化

根路径build.gradle中添加

classpath ‘com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.0’

app中build.gradle中添加

apply plugin: ‘android-aspectjx’

implementation ‘org.aspectj:aspectjrt:1.8.+’

使用如下:

@Aspect
public class LauncherAop {

@Around(“call(* com.jw.myapplication.MainActivity.**(…))”)
public void getTime(ProceedingJoinPoint joinPoint) throws Exception{
Signature signature = joinPoint.getSignature();
String name = signature.toShortString();
long time = System.currentTimeMillis();
try {
joinPoint.proceed();
} catch (Throwable throwable) {
throwable.printStackTrace();
}
Log.d("kangkang = ","kangaop = " +name+ " cost " + (System.currentTimeMillis() - time));
}
}

4.TraceView

代码中开启

Debug.startMethodTracing();
method();
Debug.stopMethodTracing();

生成.trace文件,导入Android Studio,使用profile中的cpu查看文件生成的火炬图

优化方案
  1. 主题切换

设置自定义主题设置背景图,执行到onCreate方法后替换为Activiy的真实布局 2. 初始化分化 image

  • MultiDex以及Tinker的初始化操作
  • Application中的第三方组件的初始化
  1. 异步初始化组件,不阻塞主线程,设置异步线程为THREAD_PRIORITY_BACKGROUND
  2. 延迟初始化操作,再线程空闲时加载,
  3. EventBus、ota、bugly、migu、Linphone、Butterknife、地图、IOT
  • 设置线程池初始化任务
  1. 仿照AsyncTask新建线程池,核心线程数为2-4个

最后

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

[外链图片转存中…(img-iAXQ5gl2-1718986028276)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值