美文网首页
Android MO 界面启动速度

Android MO 界面启动速度

作者: 朱兰婷 | 来源:发表于2019-10-17 16:58 被阅读0次

背景

以下内容基于Android P code。

首先,我认为冷启动最常用的策略SplashScreenSurface不适合通话界面,所以我们只能用常归的界面启动优化方式。

界面启动流程

先概括一下拨号时界面显示的流程,如下:

MO 界面显示流程

InCallUI的具体步骤,如下:

MO InCallUI

telecom的具体步骤如下:

MO Telecom

从流程中,我们可以看到可以提升启动速度的方法有:

1. Android Profile查看耗时方法。比如PhoneNumberUtils#isEmergencyNumber()耗时,而telecom调用的次数也多,可以缓存结果减少调用次数。

2. 有序广播非常耗时,如果没有特别需求,可以先直接拨号再发广播。

3. 号码归属地的查询只需用到号码,所以可以移到创建CallerInfo时就开启工作线程处理。

4. 拨号盘拨号时把查询出来的联系人名字等信息封装在intent的extra中,incallui直接取出来用。

5. bindService时把拨号盘附在intent extra中的信息传给InCallUI,通过此构建PrimaryInfo先显示在界面上。

6. UI Layout要简洁,层次低,比如用SpannableString。不常用到的View用ViewStub,需要时再加载。

7. 音频相关操作,AudioManager、Ringtone、Vibrator的一些接口在某些时候是非常耗时的,尽量放到单独线程。

原创内容欢迎转载,但请注明出处,谢谢!

相关文章

网友评论

      本文标题:Android MO 界面启动速度

      本文链接:https://www.haomeiwen.com/subject/aijmmctx.html