【Android论文栏目提醒】:本文主要为网学会员提供“安卓游戏开发--基于Android的应用软件开发实例初探 - 产品手册”,希望对需要安卓游戏开发--基于Android的应用软件开发实例初探 - 产品手册网友有所帮助,学习一下!
基于
Android 的应用软件开发实例初探 指导教师:xxxxxx 项目作者:xxxxxx 2010 年 3 月 15 日 目 录1.引言 ......................................................................................................................................... 32.
Android 应用软件开发基础 ...................................................................................................... 3 2.1
Android 应用软件开发的语言......................................................................................... 3 2.1.1 Simple................................................................................................................. 3 2.1.2 Scala................................................................................................................... 3 2.1.3 Java .................................................................................................................... 3 2.2 搭建开发环境................................................................................................................. 4 2.2.1 计算机配置 ......................................................................................................... 4 2.2.2 下载 SDK 初始包................................................................................................ 4 2.2.3 安装 ADT............................................................................................................ 4 2.2.4 设置 Eclipse ....................................................................................................... 4 2.3 ADT 的使用 ................................................................................................................... 5 2.3.1 创建一个
Android 项目 ....................................................................................... 5 2.3.2 编译运行一个项目 .............................................................................................. 5 2.4
Android 平台应用程序基础 ............................................................................................ 6 2.4.1 概要..................................................................................................................... 6 2.4.2
Android 应用程序组件 ......................................................................................... 7 2.4.3 AndroidManifest.xml 文件 .................................................................................. 83.音乐播放器实例 ....................................................................................................................... 8 3.1 创建项目........................................................................................................................ 9 3.2 设计界面..................................................................................................................... 10 3.2.1 准备图片............................................................................................................ 10 3.2.2 准备字符串资源................................................................................................. 11 3.2.3 设计程序的窗口布局......................................................................................... 12 3.3 编写 Java 代码 ............................................................................................................ 13 3.4 运行、调试程序 .......................................................................................................... 16 3.5 打包发布程序............................................................................................................... 174.参考资料 ................................................................................................................................ 175.附录 ....................................................................................................................................... 18 5.1 song_item.xml 的代码 ................................................................................................. 18 5.2 songlist.xml 的代码...................................................................................................... 18 5.3 strings.xml 文件代码.................................................................................................... 19 5.4 AndroidManifest.xml 文件代码 .................................................................................... 19 5.5 MusicPlayer.java 的代码 ............................................................................................. 191.引言
Android 系统是由 Google 在 2007 年发布的一个开源平台,包括操作系统、中间件,以及一些关键应用。
由于
Android 系统有开源、免费、易于移植的特点,以及 Google 等厂商的大力支持,
Android在短短几年时间内得到了飞速发展。
2008 年 HTC 推出第一款
Android 系统机型 Dream G1 之后,各厂商都纷纷跟进,推广速度十分喜人。
另外还有一些厂家利用
Android 易于移植的特性,开发了或正在开发基于
Android 系统的电子书阅读器、平板电脑、MP4、MID 等智能终端。
可以预见,
Android的应用范围将越来越广,学习
Android 的开发也一定会有越来越大的用武之地。
在该课程设计中,我通过学习
Android 的 API,开发了一个简易的音乐播放器,实现了最基本的功能。
通过这一实例,我们也能从中一窥
Android 应用的开发流程。
2.
Android 应用软件开发基础2.1
Android 应用软件开发的语言2.1.1 Simple Simple 是 Google 于 2009 年 7 月推出的一种新的语言,其目的就是简化
Android 开发的难度,提供一种类似于 Visual Basic 的编程体验,在设计时就为
Android 的开发作了许多考虑。
它的平台是完全开源的,但是目前 Simple 的资料较为贫乏,不便于学习。
2.1.2 Scala Scala 是一种特色鲜明的语言,它和 Java 一样运行于 JVM 之上,但是却同 Java 有许多设计理念上的区别。
它提供一种类似函数式编程的方式,同时也提供了对面向对象的支持,这也是一种新生的语言,应用范围正变得越来越广,在编写运行于多核处理器的程序时具有一定优势。
之所以可以用 Scala 编写
Android 的应用程序,根本原因是 Scala 和 Java 编写的程序一样运行于 JVM 上。
但是光这一点还不够,编写 Scala 程序所用到的 Scala 库得作一些改动,已经有人将可用于
Android 开发的 Scala 库制作好了,开发人员可以直接使用修改后的 Scala 库代替原先的 Scala标准库。
我们用 Scala 编写的程序,实际上是先被 Scala 的编译器编译成了 Java 的 class 文件,然后再由
Android dex 编译器将 Java class 文件编译成
Android 设备里的 JVM 中可以运行的 dex 文件。
2.1.3 Java Java 是
Android 上的主流开发语言,各种支持也最完善。
Android 发布的 API 和 SDK 也都主要是面向 Java 开发人员的。
我们的播放器实例也是用 Java 开发的。
2.2 搭建开发环境2.2.1 计算机配置 开发
Android 应用所用到的开发工具较占内存,尤其是模拟器。
官方并未给出最低配置要求,根据个人实际体会,在本人 Intel T2080 双核及 1G 内存的情况,基本上能流畅使用。
另外还需有 600MB 。
以上的剩余磁盘空间(官方文档中的说明)2.2.2 下载 SDK 初始包 初始包中有开发
Android 程序所要用到的工具,这些工具包括了从编译到运行
Android 应用程序所需要的各种工具。
因此,事实上最基本的开发环境至此就已经搭建完整。
SDK 的下载地址为http://androidappdocs.appspot.com/sdk/index.html ,本来官方网站为
android.com,但是经常被封锁,该链接更为稳定。
)2.2.3 安装 ADT 按照 2.2.2 安装完 SDK 初始包后,就可以开始开发
Android 应用程序了,但是为了更高效地进行开发,
Android 团队推出了
Android Development Tools ADT 。
ADT 是目前开发
Android 应用最有效的工具, 支持 Eclipse 3.4 及 3.4 以上的版本。
Eclipse 3.5 它是一个 Eclipse 插件, 以Galileo为例,安装过程如下: 1.打开 Eclipse,选择 Help gt Install New Softare。
2.在 Available Software 对话框中,点击 Add...。
3.在弹出的 Add Site 对话框中,任意填写一个名字到 Name 一栏。
在 Location 一栏,则填入这一 URL:“https://dl-ssl.google.com/
android/eclipse/”,然后确认返回。
(注意:如果在后续的步骤中发现无法安装插件,可以试着把 URL 中的 https 换成 http。
) 4.返回到 Available Software 窗口后,就能看到列表中出现了quotDeveloper Toolsquot ,选中它前面的复选框,再点击“Next”,就会开始下载安装 ADT 的各种组件了。
5.安装完毕后将弹出窗口显示 ADT 相关的各种信息以及许可协议,点击“Finish“即可完成安装。
6.重新启动 Eclipse。
2.2.4 设置 Eclipse 1.选择quotWindow gt Preferences... quot打开偏好设置 2.从左侧边栏中选择quotAndroidquot一栏。
3.单击 SDK Location 一栏边的 Browse 按钮,选择刚刚下载的 SDK 保存的路径。
4.点击 Apply,OK,设置生效。
至此,
Android 的开发环境就已经搭建完毕,可以使用了 。
2.3 ADT 的使用2.3.1 创建一个
Android 项目 1.选择 File gt New gt Project 2.点击
Android gt
Android Project ,然后点击 Next 3.在弹出的对话框内,依照提示,输入必要的内容: 1 输入 Project Name ,整个项目的代码将自动保存在以名字命名的文件夹下。
2 在 Contents 选项中,选定 Create new project in workspace 以及项目保存的位置。
3 在 Target 选项中,从列出的
Android 目标平台中选择一个或多个。
编译时将会编译成所选目标平台上的程序。
4 在 Properties 选项中,填写必要的内容: a)在 Application name 处输入应用的名称。
该名称将会作为标题显示在手机中。
b)在 Package name 处输入包的名称 。
大多数 c)选择是否需要创建一个 Activity(关于 Activity 的概念将在后面的章节中讲述) 应用程序都需要有至少一个 Activity。
如果选择了创建,那么就还需要填写主 Activity 的名 称。
d 输入 Min SDK Version ,ADT 会把该设置写入 Manifest.xml 文件中(下文将介绍该文 。
这一选项是用于判断该应用程序是否能兼容于某版本的
Android 系统。
由于推 件的作用) 出时间不久,
Android 的更新速度十分快,现已发布了 1.0,1.1 1.5 1.6 2.0 2.0.1 2.1 这 几个版本。
市面上现有的大部分
Android 终端都是基于 1.5(API Level 为 3)以后的版本, 少数最新款的设备使用了 2.0 以后的版本。
因此,如果没有使用特殊的 API,我们把此处设 为 3 即可保证良好的兼容性。
4.点击 Finish,完成设置。
创建完成后,我们即可在方才设置的工作目录中找到项目文件。
ADT 会为我们创建以下目录及 文件: src/ 该目录下保存我们所编写的 Java 代码文件。
ltAndroid Versiongt/ 该目录下是我们所设置的目标
Android 版本所对应的
android.jar gen/ 该目录下保存的是由 ADT 根据我们的界面设置、资源设置等自动生成的代码 assets/ 初始为空,可以用来存放 assets 文件 res/ 保存程序要用到的资源,如窗口布局、字符串值等 AndroidManifest.xml 用于描述应用程序的文件,
Android 会读取该文件,用以确定 应用程序所需要的权限等信息。
default.properties 用于保存该项目的信息,比如各项设置,该文件也由 ADT 管理, 不需要手动编辑。
2.3.2 编译运行一个项目 为了节省时间,我们大多数的测试都是在模拟器上运行,最后才在真实的硬件上运行程序。
Android 的 SDK 中提供有模拟器程序,要让模拟器运行起来,我们则还需要创建称为AVDAndroid Vitual Device)的配置文件。
SDK 中的命令行工具可以用来创建 AVD,安装ADT 之后我们也可以更直观地用图形界面创建。
1.创建 AVD 1 选择 Window gt
Android SDK and AVD Manager ,打开 AVD 管理器 2 在弹出的窗口中会列出已经创建的 AVD,我们点击创建一个新的 AVD 3 填写所需的选项。
包括 AVD 名称,是否需要 SD,虚拟屏幕的分辨率等。
4 单击 Create AVD ,创建完毕。
5 运行程序 运行(或调试程序)可以通过点击主菜单上的 Run gt Run 或 Run gt Debug ,ADT 会为我们启动模拟器,并在模拟器中运行或调试我们的程序。
在这个过程中,实际上 Eclipse 为我们完成了以下工作: 1 如果项目中的文件有改动,就重新编译一次。
2 如果没有设置启动选项,就创建之。
3 如果模拟器还没有启动,就运行模拟器。
4 通过 Socket 向模拟器发送编译过后的程序。
5 向模拟器发送命令安装并启动该应用。
6 如果是以调试方式运行,则应用程序启动后会等待调试器挂接,同时 Eclipse 会切换到调试视图。
2.配置运行选项 在编写应用程序的过程中,我们有时候需要调整运行设置,比如运行不同的 AVD,启 动应用程序的某个特定 Activity。
这时,我们可以按以下步骤设置: 1 打开 Run gt Open Run Dialog ,弹出设置窗口 2 展开
Android Application 节点,点击项目名称,右侧即会显示出相应的配置选 项卡。
3 在
Android TargetCommon 三个选项卡中,根据需要,修改设置。
4 点击 Run,即会根据新的设置运行。
3.为应用程序签名 出于安全的考虑,所有的
Android 应用程序都必须有数字签名,
Android 系统才会允许 安装该程序。
在开发程序时,我们可以使用调试密钥debug key,带有这种密钥的应 用程序可以在模拟器或是在我们开发用的设备上安装。
如果要正式发布应用程序,则还 需要取得正式的私钥。
在实例开发一节中,讲详细介绍如何为应用程序打上数字签名。
2.4
Android 平台应用程序基础2.4.1 概要
Android 应用程序编写完成后,都是由 aapt 工具(ADT 会自动调用该工具)打包成apk 文件,一个 apk 文件就是一个完整的应用程序,它包含了编译好了的程序以及各种资源、描述性文件(如 Manifest.xml)。
在运行时,每个
Android 应用程序具有如下特点: 1.默认情况下,每个应用程序都运行在一个 Linux 进程中。
当应用程序中的某部分代码 需要得到执行时,
Android 会为这个应用程序启动一个进程,该进程会一直存在,直到 代码中要求退出,或者系统资源不足时
Android 将其杀死。
2.每个进程都运行于一个相互独立的 JVM。
3.默认情况下,每个应用程序都会被赋予一个唯一的 Linux user ID。
结合 Linux 的权 限设置,就可以保证只有该应用程序可以访问属于它的文件。
4.某些特殊情况下,我们可以让两个应用程序共用一个 Linux user ID,这时,应用程序 的文件相互之间都是可以访问的。
为了节约系统资源,
Android 会自动把这两个应用程 序合并到一个进程中,共享一个 JVM。
2.4.2
Android 应用程序组件
Android 应用程序最大的一个特点就是每个应用都由若干组件构成。
而且各个应用程序的组件还可以相互调用(需要在代码中设置相应权限) 。
例如假设我们需要编写一个内嵌有网页的程序,那么我们无需亲自编写浏览器,而是可以直接调用系统自带的 Chrome Lite 浏览器组件。
又如假设我们编写了两个应用程序,其中一个程序中有列表显示图片的组件,那么我们在另外一个应用程序中就可以使用该组件,而不需要再编写该功能。
也就是说,不同于我们平常编写的程序,
Android 的应用程序不是单一入口,而是可以从代码的不同位置启动。
这就要依靠组件来实现。
Android 应用程序的组件有以下四种: 1.Activities 一个 activity 实际上表现出来的就是一个程序的界面。
这个界面可能有许多种不同的形式,比如有列表形式,有文字形式,有图像格子等形式。
一个应用程序也可能有不止一个activity。
比如一个短消息的程序,需要有列表显示所有消息的 activity,还至少需要一个编辑短消息的 activity(界面) ,还可能需要设置、菜单等界面。
每个 activity 都有一个默认的窗口用于绘制界面,一般情况下,它是充满全屏的,但是我们可以通过程序控制它,使其小于屏幕大小,也可以控制其浮动于其它窗口之上(如
Android 中的 Toast 信息) , Activity 中显示出来的内容其实是由 view 堆叠形成的, view 是由 View 基类派生出来的各种形式的界面元素,如 ListViewGridView 等等,通过组合这些 view,就形成了一个可见的 activity。
我们可以用 Activity.setContentView方法来设置一个 activity 中所要显示的view。
2.Services service 是一种没有界面的组件,同我们平常在 Windows 或 Linux 系统中所理解的“服务”一样,
Android 上的 service 也是运行在后台的,运行时间可以从系统启动到系统关闭为止。
对于许多应用程序来说,service 组件是至关重要的。
以下载管理器为例,用户肯定希望能够在切换到其它程序时仍然在后台进行下载,这就需要用到 service 完成下载工作。
而显示下载进度、已下载文件等信息则由 activity 完成,同时我们还希望能控制下载过程,如停止、继续等,这就需要 activity 与 service 之间进行通信。
Android 允许 activity 连接到或者绑定到 service 上,这样就可以让用户在界面上控制后台 service 的行为。
3.Broadcast receivers Broadcast 意为广播消息,
Android 系统自身会发出许多广播消息,如电量不足,用户修改了全局设置等,各个应用程序也以向整个系统广播消息,如文件下载完毕等。
Broadcast receiver 则是程序中专门用来接收广播消息的组件,它没有界面显示,只负责监听、接收广播消息,然后根据程序逻辑,启动其它组件去处理广播消息。
它可以启动一 个 activity 来 同 用 户 交 互 , 也 可 以 使 用 NotificationManager 向 用 户 发 出 通 知 。
NitificationManager 的通知形式有许多种, 比如说振动、 闪 响铃、 LED 灯, 还可以在
Android界面的消息栏处显示信息。
4.Content providers content provider 是一种为其它应用程序提供数据的组件。
这些数据可以保存在文件中,也可以保存在 SQLite 数据库中, 还可以以其它任何有效的方式保存。
ContentProvider 类为我们提供了一系列保存数据的方法供我们调用, 可以很方便地存储数据。
其它应用程序在需要使用这些数据时,可以用 ContentResolver 对象,使用其中的方法。
ContentResolver 可以与任何 content provider 交互,获取其中的数据。
只要需要某个组件,
Android 就会尽力保证它的可用:如果该组件还没启动,就启动它,如果该组件所属的应用程序还没拥有一个进程, 则为它启动一个进程,如果系统资源不足以容纳一个新的进程,则将后台的某个进程杀死为新进程腾出资源。
2.4.3 AndroidManifest.xml .