提升Android应用开发性能的10大要点

  虽然Android智能手机和平板电脑的速度一天比一天快,但是开发者必须记住一点:他们开发的应用程序仍在一种资源紧张的环境下运行,这种环 境主要依赖性能与最新的台式机或笔记本电脑无法比拟的电池和处理器。下面介绍的一些方法可以帮助你的应用程序“瘦身”或者说“Android提升开发性能 十大要点”,以便它们在今天和明天的Android设备上最顺畅地运行。

  先来说说确保应用程序响应迅即的几个编程要点。

  第一个要点:首先要有良好的编程习惯

  要成为一名优秀的资源管理员;既要运用常识,还要使用公认的算法和标准的设计模式。在资源使用方面,如果你打开了资源,要记得关闭资源。要尽量 晚地获取,尽量早地释放。这些由来已久的编程准则同样适用于你的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)控件塞满 屏幕。花些时间来开发用户可以高效使用的简练用户界面,而不是试图把太多功能塞入到单单一个屏幕上。这不但有助于提升应用程序的性能,还有助于让你的应用 程序对用户来说更高效。

  有助于在不影响灵活地针对不同类型的设备进行设计的情况下,划分用户界面功能。

  第七个要点:让你应用程序的资源适合目标设备

  添加适合特定设备配置的资源,那样它们就能尽可能高效地装入。我们在谈论图形资源时,这点尤为重要。如果你添加了可利用的庞大图像资源,需要装入和调整大小,就无法有效地使用其他的应用程序资源。

  另一个要点就是,如果你准备你的应用程序可以在许多设备上运行,为了让应用程序软件包文件保持合理的大小,应该最初只添加运行应用程序所需要的核心资源,然后让应用程序下载适合该设备的内容。

  第八个要点:使用Hierarchy Viewer工具

  Hierarchy Viewer工具可以帮助你调试你的应用程序布局。它还提供了宝贵的分析信息,以便了解布局里面的每一个视图控件测量、渲染和绘制要花多少时间。只有准确找到了问题的根源,问题解决起来才容易。

  第九个要点:使用layoutopt工具

  Layoutopt工具是一款简单的命令行工具,它可以帮助你找到不必要的控件嵌套以及缩减布局资源的其他方法,以便尽量减少资源的使用。它让你可以了解哪些布局控件可能是多余的或不必要的。控件越少、布局层次越浅,性能就越好。

  最后,你认为你的应用程序做到了最好吗?现在该对它测试一下了。

  第十个要点:使用Traceview及其他Android工具进行分析

  Android SDK随带了许多工具,可用来对你的应用程序进行分析。其中最流行的工具恐怕莫过于Traceview,这款图形化工具可以帮助你调试和找到应用程序中的性能瓶颈。不妨看看Android说明文档中介绍的一些调试工具。

  结束语

  有许多方法可以帮助你提升Android应用程序的性能。有些需要使用特定的算法,有些依赖切实可行的调试和性能监测技巧。幸好,Android平台随带众多免费的实用工具,可以帮助你查明和消除应用程序里面的性能问题。既然有了这些工具,就要立马使用!

时间: 2024-08-02 19:25:39

提升Android应用开发性能的10大要点的相关文章

提升Android应用开发性能的十大要点

虽然Android智能手机和平板电脑的速度一天比一天快,但是开发者必须记住一点:他们开发的应用程序仍在一种资源紧张的环境下运行,这种环境主要依赖性能与最新的台式机或笔记本电脑无法比拟的电池和处理器.下面介绍的一些方法可以帮助你的应用程序"瘦身"或者说"Android提升开发性能十大要点",以便它们在今天和明天的Android设备上最顺畅地运行. 先来说说确保应用程序响应迅即的几个编程要点. 第一个要点:首先要有良好的编程习惯 要成为一名优秀的资源管理员;既要运用常识

分享 Android 开发性能优化的技术要点

Android性能调优涉及到多方面的工作,因本人技术水平有限,目前只总结了以下部分,希望大家继续补充. 要点 使用异步     保持 APP 的高度响应,不要在 UI 线程做耗时操作,多使用异步任务    使用线程时要做好线程控制:使用队列.线程池    谨慎使用糟糕的 AysncTask . Timer    警惕异步任务引起的内存泄露    应该异步任务分类,比如 HTTP ,图片下载,文件读写,每一类的异步任务维护一个任务队列,而不是每一个任务都开一个线程( Volley 表示我一个可以搞

Android 游戏开发性能优化经验总结

http://blog.csdn.net/lz201234/article/details/45640505 优化概论 说起游戏的优化,在游戏开发中经常分为这几步: 首先要确定游戏中经常会出现哪些问题 – Profile 然后确定在哪些方向进行性能优化 – Analyze 最后再尽可能将问题逐个解决 – Solve 游戏开发中一定是先做工具,进行Profile,再进行优化,所以,说优化就不得不再扯一下Profile 常见的工具有一些是引擎和IDE自带的,比如Unity自带的Profiler,就包

网站分析:缩短网页开发时间的10大方法

在当今的开发环境之下,快即是好. 原文:http://sixrevisions.com/web-development/10-ways-to-cut-down-web-development-time/ 在当今的开发环境之下,快即是好. 当今诸如"快速应用开发 ","敏捷软件开发 "以及"异步JavaScript和XML "(如今我们甚至无法耐心地等待网页的重新载入)等流行词汇和术语让你见识到究竟身处于怎样一个快节奏的世界当中. 但是做事赶时间并

提升你的开发效率,10 个 NPM 使用技巧

对于一个项目,常用的一些npm简单命令包含的功能有:初始化一个文件夹( npm init ),下载npm模块( npm install ),创建测试( npm test ) 和自定义脚本( npm run ).但是,进一步了解一些 npm 的使用技巧可以彻底改变你的日常开发任务. 注: 如果你需要关于初学npm的参考,可以参阅我们的初学者指南.如果你对 npm 和 Yarn 之间的差异感到困扰,可以参阅我们发表的文章:Yarn vs npm:你需要知道的一切 获取帮助 npm 文档 和 CLI

在Nginx中使用X-Sendfile头提升PHP文件下载的性能(针对大文件下载)_nginx

很多时候用户需要从网站下载文件,如果文件是可以通过一个固定链接公开获取的,那么我们只需将文件存放到 webroot下的目录里就好.但大多数情况下,我们需要做权限控制,例如下载 PDF 账单,又例如下载网盘里的档案.这时,我们通常借助于脚本代码来实现,而这无疑会增加服务器的负担. 例如下面的代码: <?php // 用户身份认证,若验证失败跳转 authenticate(); // 获取需要下载的文件,若文件不存在跳转 $file = determine_file(); // 读取文件内容 $co

J2ME程序开发新手入门九大要点

程序     一.J2ME中需要的Java基础知识 现在有大部分人,都是从零开始学J2ME的,学习J2ME的时候,总是从Java基础开始学习,而且现在讲Java基础的书籍中都是以J2SE来讲基础,这就给学习造成了一些不必要的麻烦,下面将J2ME中用到的和不需要的Java基础知识做一个简单的说明. J2ME中使用到的Java基础知识: 1.Java语法基础:包括基本数据类型.关键字.运算符等等     2.面向对象的思想:类和对象的概念,继承和多态等等. 3.异常处理 4.多线程 J2ME中没有用

Android 4.0设计规范10大改变

在拜读和翻译了Android design设计指导后,对比Android 4.0与Android2.3及之前版本的app设计指导,总结了Android 4.0设计的10大改变: 1. 导航栏 (详见模式PATTERNS>导航Navigation) 由之前的物理按键导航(返回.菜单.搜索.主页)变成了嵌入屏幕的虚拟按键(返回.主页.最近任务).   左侧为早期有4个物理按键的手机,右侧为新版只有3个虚拟按钮的手机 把菜单项和搜索项从导航栏去掉,把之前通过长按主页键才出现的最近任务直接展示在导航栏中

Android Wear开发

Android Wear从2014年3月发布到现在已经从1.0发展到2.0(目前还没正式发布).其产品定位也发化了巨大变化,因为Android Wear 1.0通讯方式只有蓝牙,限定了系统,比较依赖手机.比如:重新连接新的手机,手表端会删除所有安装的应用,重新同步新手机的应用到手表.所有应用更新,系统更新都需要通过手机端来完成,没有单独的应用市场.可以理解为Android Wear手表是个手机伴侣.Android Wear 2.0定位则完全不同,Android Wear 2.0支持通讯方式有蓝牙