`
maoxy
  • 浏览: 141022 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

给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平台随带了众多免费的实用工具,可以帮助跟踪和解决应用程序中的性能问题。

分享到:
评论

相关推荐

    《给 Android 开发者的 RxJava 详解》 PDF

    《给 Android 开发者的 RxJava 详解》这本书深入浅出地介绍了如何在 Android 开发环境中应用 RxJava 这个强大的响应式编程库。RxJava 是一个用于处理异步数据流和事件流的库,它引入了函数式编程的概念,使得复杂的...

    【Android元宇宙】Android 12(S) 图形显示系统 - 示例应用NativeSFDemo

    这个名为"NativeSFDemo"的示例应用旨在展示这些新特性和功能,帮助开发者更好地理解和利用Android最新的图形技术。 一、Android 12(S)图形系统升级 1. **SurfaceFlinger优化**:在Android 12(S)中,SurfaceFlinger...

    转载:Android中如何修改系统时间(应用程序获得系统权限)

    Android应用在发布前需要使用Keystore系统进行签名,确保应用的唯一性并保护开发者身份。你可以使用` jarsigner `命令行工具或集成在Android Studio中的签名选项进行签名操作。 总结,修改Android系统时间需要在...

    《深入浅出Android-Google手持设备应用程序设计.pdf》高清下载

    本书详细地讲解了从入门到中阶的Android应用开发知识,包括工具安装、界面设计、活动生命周期、数据存储以及发布应用等关键领域。 书中首先介绍了Android的历史和重要性,它是如何在2008年通过开放手持装置联盟...

    高仿点评的android应用

    【标题】"高仿点评的Android应用"是一个模拟...通过深入研究这个项目,开发者不仅可以提升Android应用开发的技能,还能了解到如何构建一个完整的、具有实际功能的应用程序,这对于个人技能提升和职业发展都非常有益。

    android好用的相册选择框架(转载)

    总之,"android好用的相册选择框架"是一个实用的工具,它简化了Android应用中图片选择的实现过程,提高了用户体验,并解决了常见的开发问题,对于任何需要处理图片选择的Android应用都是一个值得考虑的解决方案。

    android设计模式详解转载

    在Android开发中,设计模式是一种重要的编程思想,它可以帮助开发者编写出更加灵活、可扩展和易于维护的代码。...在学习过程中,建议结合实际项目来实践,以便更好地理解每个模式的作用和应用场景。

    深入淺出 Android 深入浅出 Android 繁体

    《深入淺出 Android》是一本专门针对Android应用开发的电子教程,旨在帮助初学者和有一定经验的开发者深入了解Android平台的程序设计。这本书采用创新的CC BY-NC-ND授权方式,鼓励读者分享链接,但禁止未经许可的...

    android log 分析 内含分析过程 转载

    在Android开发中,日志(Log)分析是调试和优化应用程序不可或缺的一部分。它为我们提供了运行时应用程序的行为信息,帮助我们追踪错误,理解程序流程。本文将深入探讨如何进行Android Log分析,结合Handler对象的...

    [转载]Android学习笔记(一).doc

    Android应用程序主要使用JAVA语言编写,同时也提供了原生API供开发者选择。Application Framework是Android的核心开发平台,允许开发者访问并扩展系统功能。它包括: 1. View:提供用户界面元素,如列表、网格、...

    android NDK 开发总结

    1. NDK(Native Development Kit)的定义:NDK是Android平台的一个开发工具包,它允许开发者使用C或C++语言来编写应用的某些部分。这些部分通常被称为“原生模块”,它们可以被封装进一个.so(共享库)文件,并最终...

    Android 完美高仿的微信源码(转载)

    本篇文章将深入探讨一个名为"MyAppWeixin"的开源项目,该项目旨在高度模仿微信的用户界面和部分功能,帮助开发者理解如何在Android平台上构建类似的应用。 1. **界面设计与布局** 微信的用户界面设计简洁而直观,...

    happyanimee-history_today-master_history_android源码_源码

    这个项目可能是从"写bug的狐狸"这一开发者或作者那里转载的,旨在帮助开发者了解如何在Android应用中实现展示历史事件的功能。 【描述】"历史上的今天代码,转载自 写bug的狐狸" 暗示这个项目的核心功能是查询并...

    android 调用微信扫一扫(调用微信.so实现)

    在Android平台上,调用微信扫一扫功能通常涉及到集成微信官方提供的SDK,这一过程主要依赖于微信的动态链接库(.so文件),使得应用能够调用到微信的扫码服务。下面将详细介绍如何实现这一功能。 首先,我们需要从...

    android好用10个源码!

    "提供了一系列适用于新手学习的项目实例,这些源码可以帮助开发者深入理解Android应用开发的基本概念和实践技巧。以下是这10个源码项目的简要介绍: 1. **2_filebrowser.rar**:这是一个文件浏览器的源码,它展示了...

    转载:Android 小項目之--消息、線程、動畫顯示圖片(附源碼)

    这篇标题为“Android 小项目之--消息、线程、动画显示图片(附源码)”的文章,显然聚焦于Android应用开发中的几个关键概念:消息处理、线程管理和使用动画来显示图片。这是一篇教程性质的文章,作者提供了实际的源...

    [转载]Android学习笔记(四):不使用IDE采用命令行.doc

    通过这种方式,开发者可以在没有IDE的情况下,纯靠命令行工具进行完整的Android应用开发流程。这种方式虽然对新手来说可能较为复杂,但对于熟悉命令行操作和想要深入理解Android构建过程的开发者来说,是十分有用的...

    [转载]Android学习笔记(三):Andriod程序框架.doc

    这些都是Android开发者必须掌握的基本技能,对于理解Android应用的工作原理至关重要。在实际开发中,还需要学习更多关于Android框架的其他组件,如Intent、Service、BroadcastReceiver和ContentProvider,以及处理...

    Android学习笔记之NFC近距离无线通讯技术(Dean)(转载)

    - **Intent Filter**:Android应用可以通过定义特定的`<intent-filter>`标签来响应NFC标签的扫描事件。 - **Tag**:`Tag`类表示一个物理NFC标签,包含连接到该标签的多个技术(如ISO-DEP、MIFARE等)和其上的NDEF...

    [转载]Android学习笔记(五):Activity和main.xml文件.doc

    Activity是Android应用程序的主要组件,它代表了用户可以看到并与其交互的界面。而main.xml则是用来定义Activity用户界面布局的XML文件。 1. Activity的理解 Activity是Android中的一个抽象类,它是应用程序与用户...

Global site tag (gtag.js) - Google Analytics