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

来源:互联网 发布:linux 配置vsftp 编辑:程序博客网 时间:2024/06/07 00:02

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

以Android4,.4 SDK为例

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


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


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

在自定义主题中不设标题

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

[html] view plaincopy
  1. <style name="Theme.NoBackgroud" parent="android:Theme">  
  2.     <item name="android:windowNoTitle">true</item>  
  3. </style>  
AndroidManifest.xml文件中引入自定义主题:

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

二.去掉主题栏后:

运行:


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

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


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

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

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

[html] view plaincopy
  1. <style name="Theme.NoBackgroud" parent="android:Theme">  
  2.     <item name="android:windowNoTitle">true</item>  
  3.     <item name="android:windowBackground">@null</item>  
  4. </style>  

AndroidManifest.xml文件中:

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

三.去掉背景:

运行:


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



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

参考代码:

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

0 0
原创粉丝点击