尽管现在Android智能手机和平板电脑的运行速率越来越快,但开发者仍需牢记,应用的运行环境仍受到电池和处理器等诸多资源的限制。以下是如何为应用“瘦身”的十条建议,以便能在当前和以后的所有Android设备都能运行出最佳效果。

随着移动平台的发展和其应用的不断改善,质量成为决定成败的关键。用户要求他们选择安装的应用响应快、性能好,如果某个应用不能提供卓越的功能和稳定的用户体验,那这样的应用注定会被很快卸载。

尽管现在Android智能手机和平板电脑的运行速率越来越快,但开发者仍需牢记,应用的运行环境仍受到电池和处理器等诸多资源的限制。以下是如何为应用“瘦身”的十条建议,以便能在当前和以后的所有Android设备都能运行出最佳效果。

1)首先要有良好的编码习惯

一个优秀的开发者应该善于运用常识、完善的算法和标准设计模式。要有资源意识,打开了就要记得关闭,尽量做到晚获取,早释放。这些由来已久的编码准则同样适用Android应用开发,尤其是使用基础设备服务时。

2)让阻塞操作远离主UI线程

通过使用AsyncTask、线程、IntentService和自定义后台服务,保证应用的灵活性。使用加载工具简化游标等长时间加载数据的状态管理。当有其他程序运行时,不能让你的应用滞后或中止。

如果一个操作需要消耗较多时间和资源时,取消该操作,换成异步处理,这样应用就能保持响应,用户可以继续各种操作。该方法适用磁盘读写、访问内容提供方、数据库和互联网,以及解析和其他需要花费较长时间的任务。

3)使用最新的Android SDK版本和API

使用Android平台的最新产品,保证你的应用紧跟Android的更新步伐。随着Android平台的不断发展,部分功能可能被弃用或被更好的 功能取代,核心API接收了bug修复和性能改进,新API有助于开发者编写出更稳定的应用。要明白最佳的做法总是随着时间的推移而变,聪明的开发者应该 总是站在整个平台的最前沿。

4)考虑使用StrictMode

从Android 2.3开始提供了一个新的类StrictMode,该类可以用于捕捉发生在应用程序主线程中耗时的磁盘、网络访问或函数调用,可以帮助开发者改进程序,使主线程处理UI和动画在磁盘读写和网络操作时变得更平滑,避免主线程被阻塞。

5)发布前禁用或尽量减少调试

如果开发周期较长,你很可能在应用中内置了一些日志或调试代码,在发布前确保这些功能已经最小化或完全禁用。

6)确保UI布局简单优雅

简单的屏幕不仅方便阅读,还能加快加载速度。与其在一个单一屏幕上堆砌太多不必要的功能,不如花时间去开发优雅的用户界面。简单优雅的UI不仅能提高应用性能,还能提高用户使用该应用时的效率。

7)根据目标设备调整应用资源

为尽可能高效地被加载,需要根据具体设备的配置调整相应资源,尤其是图片资源。为使应用包文件合理适用不同设备,首先可只添加运行该应用需要的核心资源,然后再根据具体设备下载相关内容。

8)使用Hierachy Viewer可视化调试工具

Hierachy Viewer能很方便地在开发者设计,调试和调整界面时,快速定位问题,解决问题,提高开发效率。

9)使用layoutopt进行布局优化

Layoutopt是一款简单的命令行工具,可帮助找到不必要的控件嵌套以及缩减布局资源,从而使应用变得可能“苗条”。控件越少、布局层次越浅,性能就越好。

10)使用Traceview及其他Android工具进行分析

Android SDK随带了很多用于应用分析的工具,其中最受欢迎的是Traceview,这款图形工具可以帮助调试和找到应用中的性能瓶颈。

结语

提升Android应用性能的方法有很多,有些需要使用特定的算法,有些依赖切实可行的调试和性能监测技术。幸运的是,Android平台随带了众多免费的实用工具,可以帮助跟踪和解决应用程序中的性能问题。

转载于:https://www.cnblogs.com/hnrainll/archive/2012/04/09/2438373.html

给 Android 应用开发者的十个建议相关推荐

  1. 为应用“瘦身”!给 Android 应用开发者的十个建议(转)

    随着移动平台的发展和其应用的不断改善,质量成为决定成败的关键.用户要求他们选择安装的应用响应快.性能好,如果某个应用不能提供卓越的功能和稳定的用户体验,那这样的应用注定会被很快卸载. 尽管现在Andr ...

  2. 学习Android 应注意的十个问题

    转自:http://www.cn-java.com/www1/bbs/viewthread.php?tid=85662&extra=page%3D1&frombbs=1 学习Andro ...

  3. Android P 开发者预览版

    Android P 开发者预览版首发! 在上周的世界移动通信大会 (Mobile World Congress) 上,我们看到由开发者.设备厂商以及芯片合作伙伴组成的 Android 生态系统不断为全 ...

  4. android 前后同时预览_vivo Android 11开发者预览版上线,抢先适配快人一步!

    大家好,我是凯航,一个被代码耽误的撰稿人,今天加薪姐不营业,我来代班. 昨天,谷歌发布了新版Android系统--Android 11 Beta.vivo仍是首批搭载Android 11 开发者预览版 ...

  5. Android P 开发者预览版首发!

    在上周的世界移动通信大会 (Mobile World Congress) 上,我们看到由开发者.设备厂商以及芯片合作伙伴组成的 Android 生态系统不断为全球用户创造美妙体验. 今天,我们要向各位 ...

  6. android开发者预览计划弹窗,vivo公布Android 12开发者预览计划 iQOO 7同步适配

    北京时间5月19日凌晨,谷歌年度开发者大会落下帷幕,全新的Android 12也正式亮相.对于Android 12这样的大版本更新,自然会受到诸多用户的关注,比如什么手机可以率先升级?什么时候可以升级 ...

  7. Android架构演进 · 设计模式· 为什么建议你一定要学透设计模式?

    一.引言 Hello,我是小木箱,欢迎来到小木箱成长营Android架构演进系列教程,今天将分享Android架构演进 · 设计模式· 为什么建议你一定要学透设计模式? 今天分享的内容主要分为四部分内 ...

  8. Android 11 开发者常见问题 | FAQ・第一期

    注: 由于部分问题答案较长,可上下滑动以查看完整内容 存储 01 Q: Android 11 的分区存储是强制的吗?如果 targetSdkVersion 低于 Android 10,运行在 Andr ...

  9. 欢迎体验 | Android 13 开发者预览版 2

    作者 / Dave Burke, VP of Engineering 上个月,我们 发布了 Android 13 的首个开发者预览版.Android 13 围绕我们的核心主题打造,即隐私和安全.开发者 ...

  10. (转自scrum中文网)给Scrum Master的十个建议,你值得拥有

    本文转自:Scrum中文网 文章链接:http://www.scrumcn.com/agile/scrum/22035.html 你想成为一个优秀的Scrum Master吗? 我想是的,除非你是一个 ...

最新文章

  1. 给一个ul列表中点击到的li赋予样式
  2. 机器学习和洗衣机的关系?
  3. Can I compile and run Dx11Shader for Maya 2015 on my side?
  4. 小程序的生命周期函数?
  5. 空间地理加权回归stata_xy妙妙屋丨地理加权回归和空间自相关
  6. cmake / target_** 中的 PUBLIC,PRIVATE,INTERFACE
  7. netty系列之:轻轻松松搭个支持中文的服务器
  8. 〖Windows〗Linux的Qt程序源码转换至Windows平台运行,编码的解决
  9. Android中文图混排时文图的居中对齐 FontMetrics以及自定义ImageSpan实现
  10. CIFAR-10 dataset 的下载与使用
  11. rpm | 升级软件包
  12. python中函数参数*args和**kw的区别
  13. 如何利用 MySQL 攻破数据库性能瓶颈?
  14. 23.3. 操作系统监控需求
  15. C++ 获取URL图片、html文件,CInternetSession 【转】
  16. (转)Error launching Console Application PDFLaTeX ... 的解决方法
  17. Final类型数据的初始化
  18. c语言无符号数最大值和最小值,c语言 int最大值是多少?
  19. 四柱排盘系统--阳历转农历
  20. matlab整流仿真,整流电路MATLAB仿真实验 - 范文中心

热门文章

  1. Dex Loader] Failed to load D:\adt-bundle-windows-x86_64-20190307\sdk\build-tools\28.0.3\lib\dx.jar
  2. LINUX下载编译gperf
  3. 编译出错:self-encoder.context-me_method = ME_UMH;
  4. 编译OpenJDK8:CreateJars.gmk/BuildJdk.gmk/Main.gmk/错误
  5. readlink()不能读取硬链接的目标
  6. 解决方法:Linux装完显卡驱动后分辨率显示不正常
  7. 创业失败反思二:领导不认错,不反省
  8. WIN10更新后超慢问题的解决
  9. linux检查启动与否,关于linux启动的问题。
  10. linux cmake 快速安装