Hack 15 移除背景提升activity的启动速度

   系统绘制UI布局是耗时的操作,每个view都要耗时,在满足要求前提下,当然view越少越好,节点越少越好,通过系统自带的层级观察器HierarchyViewer,检查我们的view树,去掉比必要的节点,可以提升activity的加载速度。

以Android4,.4 SDK为例

一.新建一个默认的Android应用程序,启动运行

Hack 15 移除背景提升activity的启动速度_第1张图片

用层级观察器查看布局结构:

Hack 15 移除背景提升activity的启动速度_第2张图片

buju带图标那一栏就是标题栏,首先移除标题栏来减少节点,

在自定义主题中不设标题

在res/values/styles.xml文件中加入:

    
AndroidManifest.xml文件中引入自定义主题:

设置 标签中修改主题为  android:theme="@style/Theme.NoBackgroud"

二.去掉主题栏后:

运行:

Hack 15 移除背景提升activity的启动速度_第3张图片

用层级观察器查看布局结构:

可以看到view的ActionBarContainer节点被移除,view树变简单.

Hack 15 移除背景提升activity的启动速度_第4张图片

DecorView是视图树的根节点,默认状态下,框架层会以默认背景色填充窗口,DecorView就是装载背景色的视图,因此,如果自定义背景色,那么DecorView再绘制就是浪费时间,也就没有必要设置,可以移除默认背景,以加快Activity的启动时间。

在res/values/styles.xml文件中加入:

在不设主题的基础上,加入背景为null.

    

AndroidManifest.xml文件中:

设置 标签中修改主题为  android:theme="@style/Theme.NoBackgroud"

三.去掉背景:

运行:

Hack 15 移除背景提升activity的启动速度_第5张图片

用层级观察器查看布局结构:

Hack 15 移除背景提升activity的启动速度_第6张图片


当然 theme也可以在具体的标签中设定

参考代码:

Android去掉标题栏 
http://download.csdn.net/detail/xiaobijia/8101507

你可能感兴趣的:(Hack 15 移除背景提升activity的启动速度)