《Android开发秘籍(第2版)》——第1.6节Android开发

1.6 Android开发
Android开发秘籍(第2版)
本书着眼于Android开发的最主要方面:编写Android代码。然而,略谈一谈开发的其他方面,如设计和发布,也是适宜的。

1.6.1 良好的应用设计
一个出色的应用程序应具备三个要素:好想法、好代码、好设计。通常,最后一点最不为人们所重视,因为多数开发者独立工作,且自身并不具备图形设计人员的素质。Google应该已经意识到了这一点,因此创建了一套设计指南,包括图标设计、窗口微件设计、Activity和任务设计,以及菜单设计等。这些可以在http://developer.android.com/guide/practices/ui_guidelines/中找到。Google还做了更进一步的工作,创建了一个专门演示设计原则及其在Android应用上的实现方法的网站,网址为http://developer.android.com/design/index.html

良好的设计无论怎样强调都不过分。它可以让应用显得与众不同,提高用户的接受度,并让用户赞不绝口。市场上许多最为成功的应用都是开发者与图形设计者通力合作的产物。应把应用开发时间的相当一部分投入到考虑它的最佳设计方案上来。

1.6.2 保持向前兼容1
新的Android版本通常在API层面上是逐渐增强且向前兼容的。事实上,一个设备,只有当其通过Android API的兼容性测试后,才能被称为Android设备。然而,如果一个应用对底层系统进行了改动,就无法确保兼容性。为确保未来的Android更新被安装到设备上时,应用程序能够向前兼容,Google提出了以下规则。

不要使用内部的或不被支持的API。
不要未经询问用户就直接修改设置。未来的系统版本可能会出于安全考虑对设置操作加以限制。例如,应用曾经可以自行打开GPS或数据漫游开关,但如今已经不被允许了。
不要在布局上做得太过火。虽然不常见,但太复杂的布局(层数超过10或总数超过30)的确可能导致程序崩溃。
不要对硬件做不恰当的假定。不是所有的Android设备都包含全套可能支持的硬件。应确保对所需硬件进行检查,并在硬件不存在时处理相应的例外。
确保设备方向变化不会干扰应用程序运行,或者引发不可预测的行为。屏幕方向是可以锁定的,这在第2章中会提到。
注意Android并不保证向后兼容,因此最好如第2章中将要提到的那样,声明应用所支持的最低SDK版本,这样设备可以载入适当的兼容性设定。如何在旧程序上使用其他新特性这一问题,在本书中将会多次提及。

1.6.3 确保健壮性
与兼容性同等重要,在应用程序设计和测试中还应考虑健壮性(robustness)。下面给出确保健壮性的几条建议:

优先使用Android库而非Java库。Android库专为嵌入式设备而设计,并且覆盖了应用程序的多种需求。在某些情况下,如使用第三方插件或应用程序框架时,可能要用到Java库。但在二者均可用的情况下,用Android库更佳。
注意内存分配。要对变量进行初始化。尽量对对象进行重用而不是再分配,这会提升应用程序运行速度并避免对垃圾收集(garbage collection)机制的过度使用。可以用Dalvik调试监视服务器(DDMS)工具对内存分配进行跟踪,这会在第16章中详述。
使用LogCat工具,并检查由其产生的警告或错误。这同样将在第16章中探讨。
调试要彻底,尽量涵盖不同的环境和设备。
1向前兼容(forward compatibility),在应用程序自身层面,可以理解为使应用程序较新版本产生的输出能被较早的版本所兼容(可能需要通过忽略早期版本中未实现的功能来达到此目的);而在应用程序与它所基于的操作系统的关系层面,则可理解为应用程序可以在未来发布的更新版系统上顺利运行。它与向后兼容(backward compatility)是一对截然相反的概念。后者在应用程序自身层面,意为应用程序的较新版本能够接受较早版本产生的结果;在应用程序与系统关系层面,则意味应用程序可以运行在任何操作系统的早期版本之上。具体到本节上下文,这里的向前兼容意为Android应用应能适应未来发布的Android系统更新。概念易混,特此辨析。——译者注

时间: 2025-01-27 21:16:16

《Android开发秘籍(第2版)》——第1.6节Android开发的相关文章

《Android应用开发与系统改造实战》——1.5节Android NDK开发环境搭建

1.5 Android NDK开发环境搭建 Android应用开发与系统改造实战 1.5.1 Android NDK简介 Android NDK是编译嵌入在Android应用中的原生代码(C或C++)的工具. Android应用运行在Dalvik虚拟机上.NDK允许开发者用原生代码(C或C++)实现应用的一部分.这将给某些应用带来好处,这种方式可重用代码,而且在某些情况下可加快运行速度. NDK提供了将C和C++源代码生成原生代码库的工具和文件:提供了将原生库嵌入apk文件的方法:提供了兼容An

《Android安全技术揭秘与防范》——第2.1节Android应用程序概览

2.1 Android应用程序概览 Android开发秘籍(第2版) Android应用程序包含的功能五花八门,比如编辑文本.播放音乐.启动闹钟或是打开通讯录等.这些功能可以被分类对应到4类Android组件之中,如表2-1所示,每一类都对应一个Java基本类. 每个应用程序都由一个或多个这样的组件组成.当要用到某个组件时,Android操作系统就会将其初始化.其他应用程序在指定的权限内也可以使用它们. 随着在操作系统中展现多种功能(有些功能甚至与预期的应用程序无关,如呼入电话),每个组件经历了

《Android安全技术揭秘与防范》——第1.1节Android的发展历史

第1章 Android简介Android安全技术揭秘与防范近年来我们对"Android"这个词已经不再陌生.在过去的几年时间里,Android的快速发展已经影响到了每个人的日常生活.如今Android不仅仅意味着一台手机.一部平板电脑,也可能是一台电视.一只手表.一部智能汽车.一副眼镜.然而,在一个生态系统形成的同时,总会有一群人希望通过一些不常规的手段谋取利益. 本章主要从Android黑色产业链与破解人员的动机来分析Android的安全问题. 1.1 Android的发展历史And

《Android应用开发与系统改造实战》——1.2节Android开发系统环境要求

1.2 Android开发系统环境要求Android应用开发与系统改造实战 1.2.1 操作系统配置在你的计算机上具备以下其中的一个条件方能正常地开发Android程序. Windows XP(32-bit).Windows Vista(32- or 64-bit)或Windows 7(32- or 64-bit).Mac OS X 10.5.8或later(x86 only).Linux(Ubuntu Linux,Lucid Lynx).GNU C 库(glibc)2.11或者最新的.Ubun

《Android应用开发与系统改造实战》——1.3节Android开发所需软件的下载

1.3 Android开发所需软件的下载Android应用开发与系统改造实战 1.3.1 Elcipse目前,Android官方已经给出的最新ADT集成开发环境的插件已经开始支持Eclipse的3.6(Helios)版本,也可以使用Eclipse3.4或者3.5版本.Eclipse的下载网址:http://www.eclipse.org/downloads/. 1.3.2 ADTADT是Eclipse的一个插件,全称为Android Development Tools.是Google开发用来给A

《Android应用开发与系统改造实战》——1.4节Android SDK开发环境配置

1.4 Android SDK开发环境配置Android应用开发与系统改造实战 1.4.1 安装已下载的软件(1)建立一个开发环境的文件夹,例如D:/delvelop文件夹. (2)解压Eclipse到一个delvelop文件夹下. (3)解压ADT到develop文件夹下. (4)解压SDK到develop文件夹下. 1.4.2 本地安装ADT(1)打开Eclipse应用程序. (2)然后进入Help→Install New Software项,如图1.17所示. 点击"Install New

《Android 应用案例开发大全(第二版)》——2.6节绘制相关类

2.6 绘制相关类 Android 应用案例开发大全(第二版) 上一节完成了水族馆辅助绘制类开发过程的介绍,这一节将对本案例中的绘制相关类进行详细介绍.主要包括气泡绘制相关类.群鱼绘制相关类.鱼群绘制相关类和鱼食绘制相关类,从而使读者对本案例的开发有一个更加深刻的理解.下面就对这些绘制相关类进行详细介绍. 2.6.1 绘制气泡相关类 真实的水族馆中时常会冒出一些气泡,所以,在该壁纸中加入了透明气泡元素,从而达到仿真.酷炫的效果.最后本案例的运行效果是鱼在水族馆里面游,透明的气泡从屏幕下方不断冒出

《Android 应用案例开发大全(第二版)》——2.7节线程相关类

2.7 线程相关类 Android 应用案例开发大全(第二版) 上一节详细介绍了绘制相关类,使读者对本案例的开发有了进一步的理解,在这一节将对线程相关类的开发进行详细介绍.前面已经完成了对水族馆背景及水族馆中鱼.鱼群和气泡绘制的开发,但是只是将鱼.鱼群.气泡绘制出来是远远不够的,还要让它们动起来,从而产生更加真实的效果. 本案例中启动了多个线程来定时刷新它们的位置.线程相关类主要包括气泡移动线程类.群鱼游动线程类.鱼群游动线程类.鱼食游动线程类和吸引力线程类,下面就对线程相关类的开发进行详细介绍

《Android 应用案例开发大全(第二版)》——2.1节案例背景及功能概述

2.1 案例背景及功能概述 Android 应用案例开发大全(第二版) 这一节将会对本案例背景及其基本功能进行简单介绍,通过本节学习,读者将会对本案例的具体功能及相应开发过程有一个整体了解,为读者进行以后的学习打下基础. 2.1.1 水族馆动态壁纸背景概述 壁纸是用户在手机屏幕上用来替代原先单一颜色背景的一张图片,有了这样一张图片可以使手机屏幕变得好看.漂亮.而随着移动手持设备功能的不断强大,静态壁纸已经不能再满足用户对酷炫壁纸的需求了,所以产生了动态壁纸. 动态壁纸是将手机屏幕所使用的壁纸以动

《Android 应用案例开发大全(第二版)》——2.2节壁纸策划及准备工作

2.2 壁纸策划及准备工作 Android 应用案例开发大全(第二版) 上一节介绍了本案例的背景及功能,本节将要介绍动态水族馆的策划以及开发前的准备工作.读者要认真阅读这一节,这对理解壁纸的开发有着很大的作用. 2.2.1 3D水族馆动态壁纸的策划 接下来将要对本案例的策划进行介绍,在以后的实际项目开发中,对项目的策划还需要更加地细致.具体.全面,该壁纸的策划如下所示. 动态水族馆. 本案例为3D水族馆动态壁纸,在该壁纸中有许多可以自由游动的鱼,点击该壁纸的地面可以给鱼喂食,壁纸前面还有透明的气