第一个要点:首先要有良好的编程习惯
要成为一名优秀的资源管理员;既要运用常识,还要使用公认的算法和标准的设计模式。在资源使用方面,如果你打开了资源,要记得关闭资源。要尽量晚地获取,尽量早地释放。这些由来已久的编程准则同样适用于你的Android应用程序,如果它们使用底层的设备服务,更是如此。
比如说,假设你编写的一个应用程序依赖基于位置的服务。除非你绝对有必要,否则不要开始注册、获取位置最新信息;而且要确保,一旦你不再需要这些信息,就要取消获取最新信息的注册。这将帮助你避免不必要地耗费设备电池电量或占用系统资源。
第二个要点:让阻塞操作远离主用户界面线程
想确保你的应用程序运行起来很灵活,就要使用AsyncTask、线程、IntentService或自定义后台服务来处理脏活。应使用装入器来简化装入时间长的数据(如游标)的状态管理。你无法容忍你的应用程序在某个操作正在处理的时候出现滞后或停顿。
如果某个操作很费时间和资源,就要卸载这部分操作、对它进行异步处理,那样你的应用程序仍保持响应迅即,用户可以处理他们的事务。这个原则适用于下列操作:磁盘读写,访问内容提供方、数据库和互联网,以及解析和其他长时间的任务。
第三个要点:使用最新的Android软件开发工具包(SDK)版本、应用编程接口(API)和最佳实践
确保你开发的应用程序是最新的,因而要使用Android平台提供的最新工具。随着Android平台不断发展,它也在不断改进。一些功能可能已被弃用,或者换成了更好的功能。核心API得到了修正版(bug fix)和性能改进。已经引入了装入器等新的API,帮助开发者编写出运行更稳定、响应更迅即的应用程序。
你知道可以启用Android3.0应用程序中的硬件加速功能吗?赶紧启用吧!要明白最佳实践会随着时间的变化而变化。明智的开发者密切关注Android平台的新功能、哪些功能不再被推荐。
第四个要点:考虑使用限制模式(Strict Mode)
你可以使用名为限制模式(StrictMode)的AndroidAPI,帮助你查明哪里违反了几个良好的编程习惯。StrictMode会帮助你确认你的应用程序是不是存在内存泄漏,并且检测你的应用程序是不是在试图执行长时间的阻塞操作,这些操作应该被卸载到线程或别的渠道(参阅第二个要点)。
Android2.3里面引入StrictMode类(android.os.StrictMode)。
第五个要点:在发布应用程序之前,禁用或尽量少用调试和诊断
如果你的Android应用程序开发起来需要一些时间,你可能已将一些日志和调试代码嵌入到了应用程序中。写入到日志及其他此类输出系统给性能带来了影响。确保在发布应用程序之前,尽量少用或完全禁用这些功能。
现在不妨说说如何运用良好的用户界面设计原则,让你应用程序的屏幕更快速地装入:
第六个要点:确保你设计的布局简单、简练和浅层
简单的屏幕有助于阅读起来最轻松,而简单的布局装入起来最快速。你不应该过于深层地嵌套你的布局,或者用不必要的过多视图(View)控件塞满屏幕。花些时间来开发用户可以高效使用的简练用户界面,而不是试图把太多功能塞入到单单一个屏幕上。这不但有助于提升应用程序的性能,还有助于让你的应用程序对用户来说更高效。
Fragments有助于在不影响灵活地针对不同类型的设备进行设计的情况下,划分用户界面功能。
第七个要点:让你应用程序的资源适合目标设备
添加适合特定设备配置的资源,那样它们就能尽可能高效地装入。我们在谈论图形资源时,这点尤为重要。如果你添加了可利用的庞大图像资源,需要装入和调整大小,就无法有效地使用其他的应用程序资源。
另一个要点就是,如果你准备你的应用程序可以在许多设备上运行,为了让应用程序软件包文件保持合理的大小,应该最初只添加运行应用程序所需要的核心资源,然后让应用程序下载适合该设备的内容。
第八个要点:使用Hierarchy Viewer工具
Hierarchy Viewer工具可以帮助你调试你的应用程序布局。它还提供了宝贵的分析信息,以便了解布局里面的每一个视图控件测量、渲染和绘制要花多少时间。只有准确找到了问题的根源,问题解决起来才容易。
第九个要点:使用layoutopt工具
Layoutopt工具是一款简单的命令行工具,它可以帮助你找到不必要的控件嵌套以及缩减布局资源的其他方法,以便尽量减少资源的使用。它让你可以了解哪些布局控件可能是多余的或不必要的。控件越少、布局层次越浅,性能就越好。
最后,你认为你的应用程序做到了最好吗?现在该对它测试一下了。
第十个要点:使用Traceview及其他Android工具进行分析
Android SDK随带了许多工具,可用来对你的应用程序进行分析。其中最流行的工具恐怕莫过于Traceview,这款图形化工具可以帮助你调试和找到应用程序中的性能瓶颈。不妨看看Android说明文档中介绍的一些调试工具。
结束语
有许多方法可以帮助你提升Android应用程序的性能。有些需要使用特定的算法,有些依赖切实可行的调试和性能监测技巧。幸好,Android平台随带众多免费的实用工具,可以帮助你查明和消除应用程序里面的性能问题。既然有了这些工具,就要立马使用!
分享到:
相关推荐
1. **Eclipse with ADT**:Eclipse是一款流行的Java集成开发环境,结合Android Development Tools(ADT)插件,为Android应用开发提供了强大的支持。ADT提供了代码自动完成、资源管理、布局预览等功能,极大地提高了...
《软件开发者路线图:从学徒到高手》完整版,以前下载过6.3M那种,只有1、2章,此为完整版,旨在分享好东西
《Android系统原理与开发要点详解》是一份深入探讨Android操作系统核心机制及...通过学习,开发者不仅能掌握Android应用开发的基本技能,还能深入了解系统内部工作原理,从而在遇到问题时能更有效地进行调试和优化。
《Android应用开发详解》这本书是Android开发者的重要参考资料,它涵盖了从基础到高级的全面知识,旨在帮助读者深入理解和掌握Android应用程序的设计与实现。书中不仅有详尽的理论讲解,还附带了完整的源代码,方便...
通过阅读“Android应用开发揭秘14”这篇博客,开发者可以学习到这些高级技术和实践,进一步提升自己的Android开发技能。同时,文档“Android应用开发揭秘14.doc”应包含了对这些话题的详细讲解和示例,建议仔细阅读...
《Android应用开发全程实录》以Android各个组件应用为轴,系统地介绍了Android开发的各个技术要点,如Activity、Service、Broadcast等的使用,同时配以大量实例和实战技术来帮助读者学习。其中实战内容以模仿成熟...
本文将从该书可能涵盖的角度出发,详细阐述Android应用开发中的一些核心概念、关键技术以及实用案例。 ### Android应用开发概述 Android作为全球最广泛使用的移动操作系统之一,其应用程序开发具有广泛的市场需求...
4. **异步处理与线程管理**:Android应用开发中,线程管理和异步操作是避免阻塞UI的关键。源码可以揭示Handler、Looper和AsyncTask的工作机制,帮助开发者更有效地处理后台任务。 5. **SQLite数据库应用**:书中...
Android作为全球最流行的移动操作系统之一,它的应用开发涉及到许多方面,包括但不限于用户界面设计、数据存储、网络通信、多线程处理、性能优化等。 在Android应用开发中,首先需要理解的是Android的基础架构,这...
《Android开发艺术探索》是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。《Android开发艺术探索》从三个方面来组织内容。第一,介绍Android开发者不容易掌握的一些...
通过阅读《Android系统原理与开发要点详解》,开发者不仅能全面了解Android系统的工作原理,还能掌握实际开发中的技巧和最佳实践,从而提升开发效率和应用质量。无论你是初学者还是经验丰富的开发者,这份文档都值得...
对于开发者来说,理解资源管理和内存管理是提升应用性能的关键。Android系统对应用的内存使用有严格的限制,因此开发者需要学会有效地使用内存,避免内存泄漏。此外,理解线程模型和异步编程(如AsyncTask、...
- **开发工具与环境**:Android Studio等主流IDE已经提供了对C/C++的支持,包括代码编辑、编译和调试功能。此外,第三方库和框架的丰富也大大降低了使用C/C++的门槛。 - **社区与文档支持**:尽管C/C++的资源和文档...
《Android应用开发揭秘》是一本深受开发者欢迎的书籍,它深入浅出地讲解了Android应用开发的各个环节,从基础到高级,涵盖了丰富的知识点。源码是书籍内容的实践部分,对于学习者来说,通过阅读和分析这些源码,能够...
《Android系统开发与实践》这本书深入探讨了Android操作系统的核心技术和实际应用开发,是广大Android开发者和爱好者提升技术能力的重要参考资料。书中的内容涵盖了从系统架构到应用层开发的多个方面,旨在帮助读者...
《Android应用开发揭秘24》这篇博文主要涵盖了Android应用程序开发中的高级技术和实践,结合源码分析与工具使用,旨在帮助开发者提升对Android平台的理解和应用能力。以下将详细阐述其中可能涉及的知识点: 1. **...
通过解压并导入WordBook项目到Android Studio,开发者可以进一步分析和运行代码,查看每个类和方法的作用,加深对Android应用开发的理解。如果遇到问题,可以参考Android官方文档,或者直接在CSDN上向提供源码的作者...
总的来说,“传智播客_Andorid_Android项目手机卫士视频video_day03视频”通过实践教学,帮助开发者掌握Android应用开发中的核心技术和实践技巧,对于提升Android开发者的专业能力大有裨益。通过学习和实践,开发者...