从事Android开发我们要注意哪些?

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

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

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

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

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

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

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

3.使用最新的android SDK版本和API

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

4.考虑使用StrictMode

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

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

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

6.确保UI布局简单优雅

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

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

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

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

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

9.使用layoutopt进行布局优化

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

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

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

时间: 2024-10-12 08:44:46

从事Android开发我们要注意哪些?的相关文章

Android开发之入口Activity

原文:Android开发之入口Activity Android开发之入口Activity Adnroid App是如何确定入口Activity的? 难道就因为class的类名叫MainActivity,布局文件叫activity_main.xml? 如果这样认为,就大错特错了. 之所以能够确定入口Activity,是因为在应用的清单文件中有所配置,系统会根据应用的清单文件(AndroidManifest.xml)来确立. 如何确立,标志是什么? 我们来看一下清单文件,便一目了然: 对了,系统能够

2062326 齐力锋 实验四《Java面向对象程序设计Android开发》实验报告

北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构  班级: 1623  姓名: 齐力锋 学号: 20162326 成绩: 指导教师: 娄嘉鹏/王志强 实验日期: 2017年5月26日 实验密级:非密级 预习程度: 优良 实验时间: 2 Hours 仪器组次: 必修/选修: 必修 实验序号: 04 实验名称:Java面向对象程序设计Android开发 实验内容 1.Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBI

Android开发系列之SQLite

上篇博客提到过SQLite.它是嵌入式数据库,因为其轻巧但功能强大,被广泛的用于嵌入式设备其中.后来在智能手机.平板流行之后,它作为文件型数据库,差点儿成为了智能设备单机数据库的必选,能够随着安卓app打包到apk文件其中. SQLite的官方站点是http://www.sqlite.org/,能够随意下载,上面也有详尽的文档能够參考,这篇博客重点关注SQLite在Android开发中怎样使用. 在Android开发中.推荐建立一个类继承自SQLiteOpenHelper来创建数据库操作类,比方

Android开发之手把手教你写ButterKnife框架(二)

欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/52664112 本文出自:[余志强的博客] 上一篇博客Android开发之手把手教你写ButterKnife框架(一)我们讲了ButterKnife是什么.ButterKnife的作用和功能介绍以及ButterKnife的实现原理. 本篇博客主要讲在android studio中如何使用apt. 一.新建个项目, 然后创建一个module名叫processor 新建m

Android开发之实现两个手机之间的通讯

欢迎转载,转载请注明出处:http://blog.csdn.net/dmk877/article/details/51685656 Hello,大家好,今天又来写博客了,项目终于搞完了最近又有时间写写博客了.在上上篇博客中我们学习了Android中网络通讯,并用Socket实现了Android客户端与服务器的通讯,那么这一篇将进一步来完善这一功能,就是要实现两个android手机端的通讯. 如有谬误,欢迎批评指正,如有疑问欢迎留言 通过本篇博客你将学到以下知识点 ①Socket的用法 ②如何实现

搭建Android开发环境

通过学习Android系统基本构架和Android移植的工作后,我们就要学习如何搭建Android开发环境了. 搭建Android底层开发环境,主要包括:Android应用程序开发环境.Android NDK开发环境.交叉编译环境. 底层环境的开发,需要配置Linux的驱动开发环境,Android应用程序和Android NDK的开发环境,还需要辅助工具测试Linux驱动及调试开发板,本书作者建议使用Ubuntu Linux10.04或以上版本作为Linux驱动的平台.底层环境开发需要的工具有:

这些小工具让你的Android 开发更高效

在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一下Android 开发遇到的小工具,来让你的开发更高效. Vysor Vysor 是一个可以将手机的屏幕投影到电脑上,当然也可以操作,当我们做分享或者演示的时候,这个工具起到了作用. Vector Asset Android Studio 在1.4 支持了VectorAsset,所谓VectorAsset:它可以帮助你在Android 项目中添加Materia

Android开发不得不看的11个实战小项目

是不是想学Android开发(http://www.maiziedu.com/course/android-px/)却不知道如何下手?懂得一点点入门基础知识却无法应用到实际开发中?看相关资料觉得都懂了实际动手却发现什么都不懂?本地搭建Android开发环境太麻烦? 如果你有以上的各种问题,那么今天小编推荐的Android开发的这11个小项目,你一定要看!! 因为,这些实战项目都是基于google 官方的API Demos制作而成,而且全部配有Android在线开发环境,你可以随时动手跟着课程操作

WEBApp-搭建Android开发环境

学习目标:WebApp——把HTML5应用打包到Android手机中. 特点:代码量少!思路简单!——过程有点乱,很容易出错! 面试题:面向过程(function)和面向对象(object)的区别? 面向过程的语言:C.C++.JavaScript.PHP —— 底层软件,如三大基础软件 面向对象的语言:C++.JavaScript.PHP.Java.C# —— 高层应用软件 Hybrid App = NativeApp + WebApp 1.原生App和WebApp的比较  原生(Native

Android 开发第七弹:简易时钟(秒表)

本文承接,Android 开发第五弹:简易时钟(闹钟) 和 Android 开发第六弹:简易时钟(计时器),这一部分是关于秒表的. 布局 同样是新建一个类(StopWatchView)并扩展自LinearLayout,并将其用作布局. <myapplication.nomasp.com.clock.StopWatchView android : id = "@+id/tabStopWatch" android : layout_width = "match_parent