`
leili
  • 浏览: 179976 次
社区版块
存档分类
最新评论

如何让Android UI设计性能更高效

 
阅读更多

Android在UI优化方面可以从以下五个方面入手:

◆Adapter优化

◆背景和图片优化

◆绘图优化

◆视图和布局优化

◆内存分配优化

Adapter优化

什么是Adapter?

Adapter在Android中占据一个重要的角色,它是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如图1直观的表达了Data、Adapter、View三者的关系。

一、Android中Adapter

在我们使用过程中可以根据自己的需求实现接口或者继承类进行一定的扩展。比较常用的有 BaseAdapter,ArrayAdapter,SimpleCursorAdapter等。

BaseAdapter是一个抽象类,继承它需要实现较多的方法,所以也就具有较高的灵活性;

ArrayAdapter支持泛型操作,通常需要实现getView方法,特殊情况下(结合数据row id),为了让ui事件相应处理方便点最好重写getItemId;

SimpleCursorAdapter可以适用于简单的纯文字型ListView,它需要Cursor的字段和UI的id对应起来。如需要实现更复杂的UI也可以重写其他方法。

二、一个继承BaseAdapter的类的代码段

Adapter与View的连接主要依靠getView这个方法返回我们需要的自定义view。ListView是Android app中一个最最最常用的控件了,所以如何让ListView流畅运行,获取良好的用户体验是非常重要的。对ListView优化就是对Adapter中的getView方法进行优化。09年的Google IO大会给出的优化建议如下:

Adapter优化示例代码:


以上是Google io大会上给出的优化建议,经过尝试ListView确实流畅了许多。


以上是不建议的做法!!

不过我们还是要怀疑一下,SO,我们还是来测试对比一下。

测试说明:

大家可以看到在getView的时候我们通过log打印出position和当前系统时间。我们通过初始化1000条数据到Adapter显示到ListView,然后滚动到底部,计算出position=0和position=999时的时间间隔。

测试机子:HTC Magic

测试实录:打开测序,让ListView一直滚动底部。

测试结果:

两种情况在操作过程中体验明显不同,在优化的情况下流畅很多很多!

1、优化建议测试结果

  1. 12-0510:44:46.039:DEBUG/MyAdapter(13929):Position:0---1291517086043
  2. 12-0510:44:46.069:DEBUG/MyAdapter(13929):Position:1---1291517086072
  3. 12-0510:44:46.079:DEBUG/MyAdapter(13929):Position:2---1291517086085
  4. ……
  5. 12-0510:45:04.109:DEBUG/MyAdapter(13929):Position:997---1291517104112
  6. 12-0510:45:04.129:DEBUG/MyAdapter(13929):Position:998---1291517104135
  7. 12-0510:45:04.149:DEBUG/MyAdapter(13929):Position:999---1291517104154
  8. 耗时:17967

2、没优化的测试结果

  1. 12-0510:51:42.569:DEBUG/MyAdapter(14131):Position:0---1291517502573
  2. 12-0510:51:42.589:DEBUG/MyAdapter(14131):Position:1---1291517502590
  3. 12-0510:51:42.609:DEBUG/MyAdapter(14131):Position:2---1291517502617
  4. ……
  5. 12-0510:52:07.079:DEBUG/MyAdapter(14131):Position:998---1291517527082
  6. 12-0510:52:07.099:DEBUG/MyAdapter(14131):Position:999---1291517527108
  7. 耗时:24535

在1000条记录的情况下就有如此差距,一旦数据nW+,ListView的Item布局更加复杂的时候,优化的作用就更加突出了!


分享到:
评论

相关推荐

    android UI设计技巧

    在Android平台上进行UI设计是一项既具有挑战性又充满创意的工作。设计良好的用户界面不仅可以提升用户体验,还能使应用程序更具吸引力和易用性。以下是对标题和描述中提到的几个关键知识点的详细阐述: 1、**该做...

    Android UI设计书籍PDF

    Android UI设计是移动应用开发中的一个重要领域,主要关注如何创建美观、用户友好的界面,以提升用户体验。在Android平台上,UI设计师需要掌握一系列工具和技术,包括布局管理、颜色理论、图标设计、字体选择以及...

    androidUI设计与网络开发

    首先,让我们关注Android UI设计。Android UI设计的目标是创建直观、美观且易于使用的界面。设计师和开发者需要遵循Material Design指南,这是一种由Google推出的统一设计语言,它包含了颜色、布局、动画和图标等...

    Android精美UI设计

    在提供的压缩包"AndroidUI"中,我们可以期待找到这些界面的XML布局文件,用于描述各个组件的结构和样式;Java或Kotlin代码文件,用于实现界面的逻辑和交互;以及PSD素材,这是设计师使用的图形文件格式,可能包含...

    安卓Android源码——UI设计之 仿做蘑菇街UI设计 源码.zip

    【Android UI设计与源码分析】 在Android应用开发中,用户界面(UI)设计是至关重要的,它直接决定了用户体验的好坏。"安卓Android源码——UI设计之 仿做蘑菇街UI设计 源码.zip" 提供了一个实战案例,通过模仿知名...

    android 雷达UI设计

    在Android平台上,雷达UI设计是一种独特且引人注目的用户界面设计方式,它通常用于展示数据分布、位置追踪、分析以及游戏中的导航等场景。雷达图(也称为蜘蛛图或星形图)以其多轴、多维度的特性,能够有效地可视化...

    Android源码设计模式解析与实战.pdf+精彩绝伦的Android UI设计.pdf

    《Android源码设计模式解析与实战.pdf》与《精彩绝伦的Android UI设计.pdf》这两本书籍涵盖了Android开发中的核心知识点,包括了设计模式的深入理解和实际应用,以及UI设计的创新与实践。 首先,设计模式是软件工程...

    Android UI设计代码生成器

    "Android UI设计代码生成器"工具就是为了帮助开发者更高效、更便捷地创建界面而设计的。这个工具通过可视化的方式,允许开发者直接拖拽控件到预览区域,然后自动生成对应的布局代码,极大地减少了手动编写XML布局...

    AndroidUI设计技巧.rar

    在Android平台上,UI(用户界面)设计是至关重要的,它直接影响到应用的用户体验和吸引力。...通过深入学习"Android UI设计技巧"的PDF文档,你将能获取更多实用的指导和案例分析,进一步提升你的设计技能。

    android UI设计中文版和UI编辑器

    本资源包主要涵盖了“Android UI设计中文版”和“UI编辑器”的相关内容,旨在帮助开发者更好地理解和运用这些工具来创建吸引人的用户界面。 首先,我们要理解Android UI的基本结构。Android UI通常基于组件...

    Android-UI.rar_android_android ui_ui

    Android UI设计不仅涉及视觉美观,还包含了交互逻辑、可访问性、易用性和性能优化等多个方面。这份"Android-UI.rar"压缩包包含了一份名为"特刊第11期UI设计.pdf"的学习资料,将为我们深入理解Android UI设计提供宝贵...

    androidUI典型例子

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

    android ui基础教程

    7. **案例研究与实践项目**:为了加深理解和实际操作能力,本书还包含了一系列案例研究和实践项目,让读者能够在真实场景下应用所学知识,从而更好地掌握Android UI设计与开发的全过程。 ### 三、学习目标与建议 ...

    Android UI试练 微信UIDemo

    这个项目不仅包含了完整的微信UI实现,还提供了一个实践平台,让开发者可以深入理解并应用Android UI设计的各种技术。 首先,我们要了解Android UI的基本构成。在Android中,UI主要由布局(Layouts)和视图(Views...

    《精通AndroidUI设计》

    它深入探讨了Android平台上UI设计的各种技术和最佳实践,旨在帮助开发者创建出美观、易用且高效的用户界面。 在Android应用开发中,UI设计是至关重要的,因为一个优秀的用户界面能够提升用户体验,使应用更具吸引力...

    android UI界面开发图片

    在UI设计中,图标的设计是一大重点。文章中提到的“888个经典Logo”,可以作为学习和参考的对象。图标设计时,要考虑清晰度、一致性、易识别性,并根据Material Design等设计规范来创建扁平化、简洁化的图标。这些...

    Android应用源码云信理财项目UI设计

    4. **布局管理**:有效的布局管理是UI设计的关键,例如,ConstraintLayout允许开发者创建更复杂的布局,并保持良好的性能。开发者可能会使用XML文件来定义这些布局,以便在不同屏幕尺寸和方向上自适应。 5. **资源...

    QQUI android QQUI

    总之,QQUI作为一个模仿QQ界面的Android应用,它在UI设计上展示了如何将美观、易用和高效融为一体。通过分析QQUI的设计,开发者们可以学习到如何创建吸引人的界面,提升自己的UI设计技能。无论你是初学者还是有经验...

    移植Android的UI组件到Web端以Android的方式来制作高性能优体验的WebApp

    1. **JavaScript库/框架**:为了实现高性能的Web渲染,AndroidUI4Web可能基于React、Vue或Angular等前端框架,这些框架提供了高效的DOM操作和虚拟DOM技术,确保UI更新的流畅性。 2. **自定义组件系统**:AndroidUI4...

Global site tag (gtag.js) - Google Analytics