ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:428.92KB ,
资源ID:8863246      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8863246.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Android的应用软件开发实例初探.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于Android的应用软件开发实例初探.docx

1、基于Android的应用软件开发实例初探目录1.引言 12.Android应用软件开发基础 22.1 Android应用软件开发的语言 22.1.1 Simple 22.1.2 Scala 22.1.3 Java 22.2搭建开发环境 22.2.1 计算机配置 22.2.2 下载SDK初始包 32.2.3 安装ADT 32.2.4 设置Eclipse 32.3 ADT的使用 32.3.1 创建一个Android项目 32.3.2 编译运行一个项目 42.4 Android平台应用程序基础 52.4.1概要 52.4.2 Android应用程序组件 52.4.3 AndroidManifest.

2、xml 文件 73.音乐播放器实例 73.1创建项目 83.2 设计界面 93.2.1准备图片 93.2.2准备字符串资源 103.2.3 设计程序的窗口布局 113.3编写Java代码 123.4 运行、调试程序 153.5打包发布程序 164.参考资料 165.附录 175.1 song_item.xml的代码 175.2 songlist.xml的代码 175.3 strings.xml文件代码 185.4 AndroidManifest.xml文件代码 185.5 MusicPlayer.java的代码 181.引言Android系统是由Google在2007年发布的一个开源平台,包括

3、操作系统、中间件,以及一些关键应用。由于Android系统有开源、免费、易于移植的特点,以及Google等厂商的大力支持,Android在短短几年时间内得到了飞速发展。2008年HTC推出第一款Android系统机型Dream G1之后,各厂商都纷纷跟进,推广速度十分喜人。另外还有一些厂家利用Android易于移植的特性,开发了或正在开发基于Android系统的电子书阅读器、平板电脑、MP4、MID等智能终端。可以预见,Android的应用范围将越来越广,学习Android的开发也一定会有越来越大的用武之地。在该课程设计中,我通过学习Android的API,开发了一个简易的音乐播放器,实现了最

4、基本的功能。通过这一实例,我们也能从中一窥Android应用的开发流程。2.Android应用软件开发基础2.1 Android应用软件开发的语言2.1.1 SimpleSimple是Google于2009年7月推出的一种新的语言,其目的就是简化Android开发的难度,提供一种类似于Visual Basic的编程体验,在设计时就为Android的开发作了许多考虑。它的平台是完全开源的,但是目前Simple的资料较为贫乏,不便于学习。2.1.2 ScalaScala是一种特色鲜明的语言,它和Java一样运行于JVM之上,但是却同Java有许多设计理念上的区别。它提供一种类似函数式编程的方式,同

5、时也提供了对面向对象的支持,这也是一种新生的语言,应用范围正变得越来越广,在编写运行于多核处理器的程序时具有一定优势。之所以可以用Scala编写Android的应用程序,根本原因是Scala和Java编写的程序一样运行于JVM上。但是光这一点还不够,编写Scala程序所用到的Scala库得作一些改动,已经有人将可用于Android开发的Scala库制作好了,开发人员可以直接使用修改后的Scala库代替原先的Scala标准库。 我们用Scala编写的程序,实际上是先被Scala的编译器编译成了Java的class文件,然后再由Android dex编译器将Java class文件编译成Andro

6、id设备里的JVM中可以运行的dex文件。2.1.3 JavaJava是Android上的主流开发语言,各种支持也最完善。Android发布的API和SDK也都主要是面向Java开发人员的。我们的播放器实例也是用Java开发的。2.2搭建开发环境2.2.1 计算机配置开发Android应用所用到的开发工具较占内存,尤其是模拟器。官方并未给出最低配置要求,根据个人实际体会,在本人Intel T2080双核及1G内存的情况,基本上能流畅使用。另外还需有600MB以上的剩余磁盘空间(官方文档中的说明)。2.2.2 下载SDK初始包初始包中有开发Android程序所要用到的工具,这些工具包括了从编译到

7、运行Android应用程序所需要的各种工具。因此,事实上最基本的开发环境至此就已经搭建完整。(SDK的下载地址为,本来官方网站为,但是经常被封锁,该链接更为稳定。)2.2.3 安装ADT按照2.2.2安装完SDK初始包后,就可以开始开发Android应用程序了,但是为了更高效地进行开发,Android团队推出了Android Development Tools (ADT) 。ADT是目前开发Android应用最有效的工具,它是一个Eclipse插件,支持Eclipse 3.4及3.4以上的版本。以Eclipse 3.5 (Galileo)为例,安装过程如下:1.打开Eclipse,选择 Hel

8、p Install New Softare。2.在Available Software 对话框中,点击Add.。3.在弹出的Add Site 对话框中,任意填写一个名字到Name一栏。在Location一栏,则填入这一URL:“ps:/dl-4.返回到Available Software 窗口后,就能看到列表中出现了Developer Tools ,选中它前面的复选框,再点击“Next”,就会开始下载安装ADT的各种组件了。5.安装完毕后将弹出窗口显示ADT相关的各种信息以及许可协议,点击“Finish“即可完成安装。6.重新启动Eclipse。2.2.4 设置Eclipse1.选择Windo

9、w Preferences. 打开偏好设置2.从左侧边栏中选择Android一栏。3.单击SDK Location一栏边的Browse按钮,选择刚刚下载的SDK保存的路径。4.点击Apply,OK,设置生效。至此,Android的开发环境就已经搭建完毕,可以使用了 。2.3 ADT的使用2.3.1 创建一个Android项目1.选择 File New Project 2.点击Android Android Project ,然后点击Next 3.在弹出的对话框内,依照提示,输入必要的内容:1) 输入Project Name ,整个项目的代码将自动保存在以名字命名的文件夹下。2) 在Conten

10、ts选项中,选定 Create new project in workspace 以及项目保存的位置。3) 在Target选项中,从列出的Android目标平台中选择一个或多个。编译时将会编译成所选目标平台上的程序。4) 在Properties选项中,填写必要的内容:a)在Application name 处输入应用的名称。该名称将会作为标题显示在手机中。b)在Package name 处输入包的名称c)选择是否需要创建一个Activity(关于Activity的概念将在后面的章节中讲述)。大多数应用程序都需要有至少一个Activity。如果选择了创建,那么就还需要填写主Activity的名称

11、。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,完成设置。创建完成后,我们即可在方才设置的工作

12、目录中找到项目文件。ADT会为我们创建以下目录及文件:src/ 该目录下保存我们所编写的Java代码文件。/ 该目录下是我们所设置的目标Android版本所对应的android.jargen/ 该目录下保存的是由ADT根据我们的界面设置、资源设置等自动生成的代码assets/ 初始为空,可以用来存放assets文件res/ 保存程序要用到的资源,如窗口布局、字符串值等AndroidManifest.xml 用于描述应用程序的文件,Android会读取该文件,用以确定应用程序所需要的权限等信息。default.properties 用于保存该项目的信息,比如各项设置,该文件也由ADT管理,不需要

13、手动编辑。2.3.2 编译运行一个项目为了节省时间,我们大多数的测试都是在模拟器上运行,最后才在真实的硬件上运行程序。Android的SDK中提供有模拟器程序,要让模拟器运行起来,我们则还需要创建称为AVD(Android Vitual Device)的配置文件。SDK中的命令行工具可以用来创建AVD,安装ADT之后我们也可以更直观地用图形界面创建。1.创建AVD1) 选择Window Android SDK and AVD Manager ,打开AVD管理器2) 在弹出的窗口中会列出已经创建的AVD,我们点击创建一个新的AVD3) 填写所需的选项。包括AVD名称,是否需要SD,虚拟屏幕的分辨

14、率等。4) 单击Create AVD ,创建完毕。5) 运行程序运行(或调试程序)可以通过点击主菜单上的Run Run (或 Run Debug) ,ADT会为我们启动模拟器,并在模拟器中运行或调试我们的程序。在这个过程中,实际上Eclipse为我们完成了以下工作:6) 如果项目中的文件有改动,就重新编译一次。7) 如果没有设置启动选项,就创建之。8) 如果模拟器还没有启动,就运行模拟器。9) 通过Socket向模拟器发送编译过后的程序。10) 向模拟器发送命令安装并启动该应用。11) 如果是以调试方式运行,则应用程序启动后会等待调试器挂接,同时Eclipse 会切换到调试视图。2.配置运行选

15、项在编写应用程序的过程中,我们有时候需要调整运行设置,比如运行不同的AVD,启动应用程序的某个特定Activity。这时,我们可以按以下步骤设置:1) 打开 Run Open Run Dialog ,弹出设置窗口2) 展开Android Application 节点,点击项目名称,右侧即会显示出相应的配置选项卡。3) 在Android, Target,Common三个选项卡中,根据需要,修改设置。4) 点击Run,即会根据新的设置运行。3.为应用程序签名出于安全的考虑,所有的Android应用程序都必须有数字签名,Android系统才会允许安装该程序。在开发程序时,我们可以使用调试密钥(deb

16、ug key),带有这种密钥的应用程序可以在模拟器或是在我们开发用的设备上安装。如果要正式发布应用程序,则还需要取得正式的私钥。在实例开发一节中,讲详细介绍如何为应用程序打上数字签名。2.4 Android平台应用程序基础2.4.1概要Android 应用程序编写完成后,都是由aapt工具(ADT 会自动调用该工具)打包成apk文件,一个apk文件就是一个完整的应用程序,它包含了编译好了的程序以及各种资源、描述性文件(如Manifest.xml)。在运行时,每个Android应用程序具有如下特点:1.默认情况下,每个应用程序都运行在一个Linux进程中。当应用程序中的某部分代码需要得到执行时,

17、Android会为这个应用程序启动一个进程,该进程会一直存在,直到代码中要求退出,或者系统资源不足时Android将其杀死。2.每个进程都运行于一个相互独立的JVM。3.默认情况下,每个应用程序都会被赋予一个唯一的Linux user ID。结合Linux的权限设置,就可以保证只有该应用程序可以访问属于它的文件。4.某些特殊情况下,我们可以让两个应用程序共用一个Linux user ID,这时,应用程序的文件相互之间都是可以访问的。为了节约系统资源,Android会自动把这两个应用程序合并到一个进程中,共享一个JVM。2.4.2 Android应用程序组件Android应用程序最大的一个特点就

18、是每个应用都由若干组件构成。而且各个应用程序的组件还可以相互调用(需要在代码中设置相应权限)。例如假设我们需要编写一个内嵌有网页的程序,那么我们无需亲自编写浏览器,而是可以直接调用系统自带的Chrome Lite浏览器组件。又如假设我们编写了两个应用程序,其中一个程序中有列表显示图片的组件,那么我们在另外一个应用程序中就可以使用该组件,而不需要再编写该功能。也就是说,不同于我们平常编写的程序,Android的应用程序不是单一入口,而是可以从代码的不同位置启动。这就要依靠组件来实现。Android应用程序的组件有以下四种:1.Activities 一个activity实际上表现出来的就是一个程序

19、的界面。这个界面可能有许多种不同的形式,比如有列表形式,有文字形式,有图像格子等形式。一个应用程序也可能有不止一个activity。比如一个短消息的程序,需要有列表显示所有消息的activity,还至少需要一个编辑短消息的activity(界面),还可能需要设置、菜单等界面。每个activity都有一个默认的窗口用于绘制界面,一般情况下,它是充满全屏的,但是我们可以通过程序控制它,使其小于屏幕大小,也可以控制其浮动于其它窗口之上(如Android中的Toast信息),Activity中显示出来的内容其实是由view堆叠形成的,view是由View基类派生出来的各种形式的界面元素,如ListVi

20、ew,GridView等等,通过组合这些view,就形成了一个可见的activity。我们可以用Activity.setContentView()方法来设置一个activity中所要显示的view。2.Services service是一种没有界面的组件,同我们平常在Windows或Linux系统中所理解的“服务”一样,Android上的service也是运行在后台的,运行时间可以从系统启动到系统关闭为止。对于许多应用程序来说,service组件是至关重要的。以下载管理器为例,用户肯定希望能够在切换到其它程序时仍然在后台进行下载,这就需要用到service完成下载工作。而显示下载进度、已下载文

21、件等信息则由activity完成,同时我们还希望能控制下载过程,如停止、继续等,这就需要activity与service之间进行通信。 Android允许activity连接到或者绑定到service上,这样就可以让用户在界面上控制后台service的行为。3.Broadcast receivers Broadcast意为广播消息,Android系统自身会发出许多广播消息,如电量不足,用户修改了全局设置等,各个应用程序也以向整个系统广播消息,如文件下载完毕等。Broadcast receiver则是程序中专门用来接收广播消息的组件,它没有界面显示,只负责监听、接收广播消息,然后根据程序逻辑,启

22、动其它组件去处理广播消息。它可以启动一个activity来同用户交互,也可以使用NotificationManager向用户发出通知。NitificationManager的通知形式有许多种,比如说振动、响铃、闪LED灯,还可以在Android界面的消息栏处显示信息。4.Content providers content provider是一种为其它应用程序提供数据的组件。这些数据可以保存在文件中,也可以保存在SQLite数据库中,还可以以其它任何有效的方式保存。ContentProvider类为我们提供了一系列保存数据的方法供我们调用,可以很方便地存储数据。其它应用程序在需要使用这些数据时,

23、可以用ContentResolver对象,使用其中的方法。ContentResolver可以与任何content provider交互,获取其中的数据。只要需要某个组件,Android就会尽力保证它的可用:如果该组件还没启动,就启动它,如果该组件所属的应用程序还没拥有一个进程,则为它启动一个进程,如果系统资源不足以容纳一个新的进程,则将后台的某个进程杀死为新进程腾出资源。2.4.3 AndroidManifest.xml 文件在Android启动某个程序之前,它得事先知道程序中有哪些组件。因此,apk文件中需要有一些描述信息,告知Android系统,这个任务就由AndroidManifest.

24、xml文件完成。AndroidManifest.xml文件是一个结构化的XML文件,它除了包含有各个组件的信息,还包括许多其它的信息,如声明该程序所需要用到的库、声明所需要的权限等。它的基本样式如下所示: . . . 不难看出,name,icon,lable这些属性就分别指activity的名称、图标、标识。我们通过manifest描述程序的信息,Android系统就能读取出来并产生相应的行为。3.音乐播放器实例为了更好地体会Android应用程序的开发,我们将编写一个简易的音乐播放器为例,逐步分析如何编写一个Android程序。下图就是播放器在模拟器中运行的截图。它具有基本的播放功能,能自动

25、扫描SD卡中的Music目录,并列出该目录下的所有mp3文件。点击列表中的歌曲名称即可播放,通过上方的按钮可以控制暂停、继续、上一曲、下一曲。3.1创建项目1.点击 File-New -Project,选择Android Project,再点击Next,即弹出项目属性窗口。2.填写项目名称。在Contents选项中,我们按如图所示选择。保存的位置可以根据需要选择Use default location或是另外选择。3.在Build Target选项中,我们从已经安装的平台中选择一个,我们选择1.5版。4.在Properties选项中,我们按如下所示填写:5.填写完毕后,点击Finish,项目即

26、创建好了。6.在Eclipse的左侧栏中,我们可以看到项目的结构:顾名思义,src目录就是我们将要编写的java代码文件。另外需要我们注意的就是res这个目录。它下面的drawable目录保存的是我们要用到的图片。layout目录保存的是描述窗口布局的XML文件。values文件则保存的是包含有字符串值信息的XML文件。3.2 设计界面该播放器程序的主界面并不复杂,它由两部分组成,上半部分是一排按钮,下半部分是一个列表。下面我们逐步分析如何绘制界面。3.2.1准备图片该程序共用需要以下7个图标,全部为png格式。把这些图标放在项目的res/drawable目录下。3.2.2准备字符串资源 除了

27、图片资源,在程序中,我们还需要用到一些字符串资源。之所以不将字符串直接写入java代码中,是因为那样在项目规模大了以后不便于管理,也不便于实现多语言等功能。利用ADT,我们可以很方便地添加字符串资源。步骤如下:1.展开左侧栏中的res/values目录,双击打开values目录下的strings.xml文件。2.在编辑窗口中,我们可以看到ADT已经为我们自动添加了名为hello和 app_name的两个String类型的资源。下面我们将添加另外一个字符串,当歌曲列表中没有曲目时,就将显示该字符串。首先,点击Add.,在弹出的窗口中,选择String,然后点击OK。然后在Name和Value处填

28、入字符串的名称和字符串的内容。保存之后,就可以在其它地方引用该资源。3.2.3 设计程序的窗口布局窗口布局文件位于res/layout目录下,我们将在layout目录下创建我们的布局文件。1在左侧栏中的layout文件夹上右键,选择New-File,在弹出的窗口中的File name处填入songlist.xml。单击Finish,即创建了一个空的布局文件。如果对Android布局XML文件的语法非常熟悉,那么可以直接编辑该文件,但是一般情况下,我们还是用ADT工具进行所见即所得的编辑。2Android的窗口是由Layout和View组成的,Layout中可以包含View和Layout。我们这

29、个应用的界面排列较简单,因此,最外层的Layout可以采用LinerLayout这种比较简单的格式。要添加它,先点击右侧边栏中Outline选项卡下的绿色“+”按钮,在弹出的窗口中选择LinerLayout,就添加成功了,在Outline窗口中就可以看到刚刚添加的这一项,同时中间的主窗口中也会显示一个空的黑色窗体。另外,我们还可以修改某个Layout或View的属性,方法是在右侧的Outline窗口中选中要修改的窗口元素,在下侧边栏中,切换到Properties选项卡,就可以看到所有的项目属性。大多数的选项都不需要我们手动设置。下面我们继续添加其它的窗口元素。Layout下可以嵌套其它的Lay

30、out和View,界面的上部分就是在最外层的LinerLayout下再放置了一个LinerLayout,然后在里层的LinerLayout里放置一排ImageButton。界面的下半部分是一个ListView(或者TextView)。当要在某个Layout里添加元素时,只需要先点击选中该Layout然后再点击+图标,就可以添加子元素到其中。最后布局层次如图所示:这时我们还需要对各个元素的属性作一些修改。例如对于5个ImageButton,我们需要设置其Src属性。这个属性表示的是图片的来源。例如back按钮上要显示是的一个指向左边的箭头,这个箭头图标名为back.png,在前述步骤中已经被放在了res/drawable目录中了。我们要把这个图标设为back按钮的图片来源,就需要在Src属性处填入drawable/back。drawable/back就是引用这个箭头图标资源的ID。如左图所示,在第一个LinerLayout下面,我们还添加了一个View。这个View中没有显示元素,而只是起一个分隔线的作用,让界面更美观一些。我们把这个View的Layout height 属性设为5dip,在显示时,上方的按钮就不

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1