`
jandroid
  • 浏览: 1933815 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android UI 优化 1

阅读更多

前边已经介绍了如何通过Layout优化系统 资源,减少不必要的资源占用。基于如何在合理利用资源的前提下,更进一步的提升视觉表现力。这里所提到的视觉表现力并不是指直观所看到的视觉效果,而是性能的提升。

这里将包含两个主要内容:

  • Drawing(绘制的刷新率)
  • Startup Time (启动Activities的时间)

     以上两个性能的优化都将依赖于 Window backGround drawable功能 设置
通过WindowbackGround标识会对部分人产生一定的误解,其实每次通过setContentView()来显示预先配置的界面 时,Android 仅仅是将你所创建的Views添加到Activiy的Window中。而且这个Window并不仅仅包含你所创建的Views,还包括Android为Activity预置的元素。通过Emulator运行你的程序 ,然后通过Hierarchy Viewer查看当前程序UI架构Root节点DecorView,这个是Android额外添加的最顶层的节点。

实际上Window background drawable是由DecorView决定的。可以在Activity中调用getWindow().setBackgroundDrawable() 方法来设置DecorView的background drawable。这里要特别注意这个方法是针对当前版本的Android平台,以后可能会因为版本的更新或不同的硬件设备而改变。(目前我们仅针对G1,如果在其它环境下测试需要小心验证)

如果目前正在使用android默认的标准Themes,那么在调用getWindow().setBackgroundDrawable() 方法之后,这个background drawable将会影响你的activities。通过一个例子来直观的比较性能提升的效果:

通过上边这个截图可以看到保持activity的redraw模式 下, 当前的FPS为39帧/每秒,大概相当于25毫秒/每帧。由于这个例子中将ImageView设为全屏显示,并且完全覆盖了activity的背景,所以 backgrounddrawable占用了不必要的计算资源。下边创建一个新的Theme并且应用在Activity中,创建res/values/theme.xml, XML的内容:


<resources>
<style
name="Theme.NoBackground"
parent="android:Theme">
<item name="android:windowBackground">@null</item>
    </style>
</resources>

同时也需要修改AndroidMainfest.xml文件 ,将上边所创建的Theme应用到Activity中,格式为:


<app lication android:icon="@drawable/icon" android:label="@string/app_name">

        <activity android:name=".EggImageViewer"

                  android:label="@string/app_name"

                  android:theme="@style/Theme.NoBackground">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>


    </application>(也可以将Theme应用于<Application />标签中)完成上边的修改后,再来看看当前的FPS发生了什么变化:

 .

FPS可以增大到60+,性能得到如此大的提升,是不是比较难以置信呢?由此可以明白当应用MapView或者WebView全屏显示的应用程序时,可以借用这个简单设置的方法,来提升整体的性能。
通过上边的例子可以直观的了解window background drawable的优化方法,并且根据比较可以很明显的看到设置前后的性能对比,希望这个简单的技巧可以给你的应用带来帮助。
另 外基于这个技巧的应用,还可以延展出另外一个优化功能。对于某些需要全屏显示的应用程序,可以通过Theme定义Window’sbackground的 图片,从而提高Activity的启动速度。毕竟无需建立一个ImageView作为自定义的背景,而重复叠加在Activitywindow background。
实现方法:
创建 res/drawable/background_res.xml
<bitmap
xmlns:android="http://schemas.android.com/apk /res/android"

android:src="@drawable/shelf_panel"
android:tileMode="repeat"
/>创建res/values/theme.xml
<resources>
<style
name="Theme.Shelves"
parent="android:Theme">
<item name="android:windowBackground">@drawable/background_res</item>
        <item name="android:windowNoTitle">true</item>
</style>
</resources>往往一些看似简单的方法,却能起到非常大的作用。还希望大家在实践中能不断的挖掘出非常实用的技巧,然后与你周围的人共享你的发现,同时在大家共同的见证下可以完善你的想法!

分享到:
评论

相关推荐

    Android UI 优化.ppt

    Android UI 优化.ppt

    Android UI 优化之merge标签的使用

    在Android开发中,UI性能优化是一项至关重要的任务,它直接影响到应用的用户体验。"merge"标签是Android XML布局文件中的一个特殊元素,主要用于减少视图层次,提高布局加载效率,从而提升UI性能。本文将深入探讨...

    Android 性能优化之UI优化源码

    在Android应用开发中,UI优化是一项至关重要的任务,它直接影响到用户体验和应用的性能。本文将深入探讨Android UI优化的源码层面,帮助开发者更好地理解并实现高效的UI更新与渲染。 首先,我们要明白Android UI的...

    Android UI基础教程 高清带标签pdf

     《AndroidUI基础教程》是一本Android用户界面设计的基础入门图书。全书从最基础的技术概念开始介绍,深入讨论了UI设计的各项技术,涵盖了为应用程序创建UI的所有内容。本书不仅会告诉读者创建灵活布局的最佳方法,...

    android UI界面开发图片

    在Android平台上进行UI界面开发时,图片资源是至关重要的元素,它们不仅决定了应用的视觉吸引力,也直接影响用户体验。本文将围绕“Android UI界面开发图片”这一主题,深入探讨相关知识点,帮助开发者创建出美观且...

    Android UI开发专题

    ### Android UI开发专题知识点概述 ...这对于Android UI开发者来说是非常宝贵的资源,有助于他们更好地设计和优化用户界面,从而提升用户体验。接下来的章节将会继续深入探讨更多关于Android UI开发的技术细节。

    android ui基础教程

    ### Android UI基础教程知识点概述 #### 一、Android UI基础知识 **1.1 Android UI简介** Android UI(用户界面)是Android应用程序与用户交互的主要方式。一个良好的UI设计能够极大地提升用户体验,使得用户更...

    AndroidUI界面开发规范

    ### AndroidUI界面开发规范 #### 一、引言 随着移动设备的普及和发展,用户界面(UI)设计在软件开发中的重要性日益凸显。一个良好的UI不仅能够提升用户体验,还能够帮助开发者更好地传达产品理念。本篇文章将从...

    Android UI试练 微信UIDemo

    总的来说,“Android UI试练 微信UIDemo”是一个全面的教程,涵盖了Android UI设计的多个方面,包括布局管理、组件使用、用户交互、网络请求和性能优化等。开发者可以通过这个项目学习并实践,提升自己的Android UI...

    Android UI优化之ViewStub标签的使用

    在Android开发中,UI优化是提升用户体验的关键环节。ViewStub是一个轻量级的视图组件,它在布局文件中占用极小的资源,主要用于延迟加载和动态插入布局。本篇文章将详细探讨ViewStub的使用方法及其在UI优化中的作用...

    androidUI设计实践

    9. **测试与迭代**:设计完成后,通过真实设备或模拟器进行测试,收集用户反馈,不断优化UI设计,使其更符合用户需求。 最后,了解并应用Android Studio中的设计工具,如Vector Asset Studio(用于生成SVG矢量图形...

    androidUI典型例子

    这个"androidUI典型例子"是基于模仿奇艺客户端,旨在帮助开发者掌握Android UI设计的基本原则和技巧。下面,我们将深入探讨这个主题,并结合"qiyi_UIPlayHD"这个压缩包中的文件,解析相关的知识点。 1. **布局管理...

    android UI大全

    1. **Android Widgets**: 文件名中的Widgets暗示了这个资源包可能包含了Android的各种小部件,如Button、TextView、EditText、ImageView、Spinner、Checkbox、RadioButton、ProgressBar等。这些基本组件是构建任何...

    android UI定制的一些资料

    在Android平台上,UI(用户界面)定制是一项关键的技术任务,它允许开发者根据需求和品牌风格创建独特的用户体验。这里,我们探讨的是"android UI定制的一些资料",这些资料可能包括设计原则、布局技巧、自定义视图...

    android ui源码:自己设计的一个精美布局

    1. **Android UI设计基础**: Android UI设计遵循Material Design规范,它提供了一套系统化的视觉语言,包括颜色、形状、动画和组件设计。理解这些基本元素可以帮助我们创建出符合平台标准且吸引人的界面。 2. **...

    Android UI设计工具

    1. Layout Editor:Android Studio自带的布局编辑器是设计Android UI的主要工具。它可以实时预览布局,并提供拖放组件、属性编辑和约束布局管理等功能。通过XML代码和可视化编辑相结合,可以快速构建复杂的界面结构...

    android-UI.zip_android_android ui_android ui_android 漂亮_安卓好看ui

    1. **Material Design**: Android UI设计主要遵循Google的Material Design规范,这是一种现代、统一的设计语言,强调层次感、动画效果和响应式交互。Material Design包含色彩、布局、图标、字体等元素,提供了一套...

    Android UI demo(远程医疗)

    最后,Android Studio作为开发工具,提供了丰富的调试和预览功能,帮助开发者优化界面效果。例如,使用布局编辑器实时预览界面,使用模拟器或真机测试不同设备上的显示效果。 总的来说,“Android UI demo(远程医疗...

Global site tag (gtag.js) - Google Analytics