安卓开发实验报告专业:地理信息系统姓名:***学号:************Android编程报告一、安卓系统简介Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。
它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。
底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。
2010年末数据显示,仅正式推出两年的操作系统Android已经超越称霸十年的诺基亚(Nokia)Symbian OS系统,采用Android系统主要手机厂商包括宏达电子(HTC)、三星(SAMSUNG)、摩托罗拉(MOTOROLA)、LG、Sony Ericsson等,使之跃居全球最受欢迎的智能手机平台,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。
以Google、苹果和路基亚为中心各自形成的生态链将以原来数倍的速度推动移动互联网的发展,这正式Google发布Android平台的意义,也是Andorid 平台存在的使命所在。
而作为Android平台成员之一的中国移动也投资成立了一家通讯公司,专门从事Google手机软件的应用以及本地化的软件的开发,比如将在Google手机平台上添加飞信、输入法等一系列符合国内用户使用特色的功能。
国内众多企业也将眼光投入到Andorid上面,并启动了相关的计划来深入的理解并发展Android。
更多的手机软件开发企业已经或者筹备着将公司进行转型,从其方向的开发转向到Android的开发。
二、初识安卓程序Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。
两者之间通过由ServiceConnection 和AIDL连结,达到复数程序同时运行的效果。
如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。
View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。
至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。
View的构造函数不需要再Activity 中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。
View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。
另外还有Image等同于J2ME的BitMap。
三、Android系统特点1.开放性。
Google 与开放手机联盟合作开发了 Android,Google 通过与运行商、设备制造商、开发商和其他有关各方面结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业形成一个开放式的生态系统。
2.应用程序无界限。
Android 上的应用可以通过标准 API访问核心移动设备功能。
通过互联网,应用程序可以声明它们的功能可提供其他应用程序使用。
3.应用程序是在平等的条件下创建的。
移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。
4.应用程序可以轻松地嵌入网络。
应用程序可以轻松地嵌入HTML、JavaScript 和样式表,还可以通过Web View 显示网络内容。
5.应用程序可以并行运行。
Android是一种完整的多任务环境,应用程序可以在其中并行运行。
在后台运行时,应用程序可以生成通知以引起注意四、Android开发流程由于Android 的优越性,其开发显得非常的有规律性可寻。
大致的开发流程如下:(1)需求分析。
作为一个软件,它必须有其存在的意义和价值。
而这价值和意义就需要靠需求分析来确定。
(2)功能分析。
作为一个手机软件,它的使命就是给用户使用的。
如何提供用户最好的用户体验就值得每一个程序员的深思。
这也是确保一个程序成功的关键所在。
(3)界面设计。
作为一个手机软件,其只能在极有限的区域中显示自己。
如何有限的空间里面更完美的展现出自己的独特之处就显得尤为重要了。
(4)系统开发。
作为一个软件的主体部分,系统开发的好坏直接决定了该系统的性能和寿命。
5)测试。
在任何一个软件开发行业中,无论是J2EE、J2SE、J2ME等等其他开发中,测试时必不可少的一环。
在Android 开发中,由于手机的搞频率使用,和硬件系统上的不足,使得对软件的要求更加的严格,这就要求在开发完成后,在对其进行严格的测试。
而测试又包括了像:单元测试、系统测试等等方面的测试。
(6)发布。
在完成了一个系统的开发后,就要将其发布,经过广大用户的考验,只有经过这,才算是一个合格的产品。
在Android 平台中,Google 提供了一套完整的发布机制——Google market。
五、开发工具介绍用于Eclipse集成开发环境的Android应用开发工具插件:它为Eclipse集成开发环境增加了强大的功能,使得创建和调试Android应用程序更加简单和快速。
如果你使用Eclipse来开发Android应用,ADT插件将给你带来极大的帮助:可以从Eclipse集成开发环境直接访问Android开发工具。
例如,ADT允许你直接从Eclipse访问DDMS工具的很多功能,包括截屏、port-forwarding、设置断点、查看线程和进程信息。
它提供一个新的项目向导,用于快速创建一个新的Android应用需要的所有基本文件。
它使构建Android应用的过程自动化和简单化。
它提供一个Android代码编辑器,用于为Android的manifest和资源文件编写有效的XML。
六、Android程序模块1. AndroidManifest.xml。
AndroidManifest.xml是每一个应用都需要的文件。
位于工程文件根目录下,描述了程序包的一个全局变量,包括的应用组件(activities, services等等)和为每个组件的实现类, 什么样的数据可以操作, 以及在什么地方运行。
一个AndroidManifest.xml文件的例子:2. Activity。
Activity是一个与用户交互的系统模块,几乎所有的Activity 都是和用户进行交互的,所以在每个Activity进行初始化的时候,都要执行setContentView (View)函数来指定界面UI。
在Activity中有两个重要的函数:onCreate(Bundle)函数是你进行初始化的地方,这个也是执行setContentView(View)函数的地方,setContentView(View)函数可以传入一个由XML编制的UI界面,可以使UI和具体实现完全分离。
onPause()函数是处理用户离开当前Activity的地方。
更重要的是,任何在当前Activity中的任何改变都要在这个函数中提交。
一般是使用ContentProvider来保存数据。
Activity有四种状态:活动状态,当Activity处于Stack顶时,就是手机当前的现实屏幕,这是Activity就处于activity或者运行状态。
运行但是失去焦点,当Activity还处于运行状态时,但是屏幕是有另外一个Activity处于文档处于焦点状态,当前的Activity就处于pause。
停止,当Activity被另一个Activity完全覆盖的时候,就被停止了,其实就是虽然在运行,但是用户却看不见。
结束,当Activity处于pause或者stop时,系统可以结束Activity,回收资源,这是Activity就是处于结束状态了。
处于结束状态的是Activity,如果要使用户可见,只要重启才可以。
Activity的生命周期是用Activity stack来管理的。
当一个新的Activity 启动,就把这个Activity放在Stack 的顶部,然后这个Activity就变成了一个运行的Activity。
以前运行的Activity现在被压在Stack的地步,处于Pause 状态。
只有Stack顶部的Activity才可以在前台运行,且处于活动状态。
3. View 。
View是界面中最基本的可视单元,存储了屏幕上特定的矩形区域内所显示内容的数据结构,并能够实现所占区域的界面绘制、焦点、变化、用户输入和界面事件处理等功能。
View也是一个重要的基类,所有在界面上的可见元素都是View的子类。
Viewgroup是一种能够承载多个View的显示单元,一般有两个用途,一个是承载界面的布局,另一个是承载具有原子特性的重构模块。
下面的这一段代码是在xml中配值一个Button,然后再Activity中获得这个Button的实例,然后可以设置这个Button的监听函数。
Xml中的代码如下:4.Intent是对被执行操作的抽象描述。
调用 startActivity(Intent),可以启动 Activity;调用broadcastIntent(Intent),可以把Intent发送给任何相关的IntentReceiver组件;调用startService(Intent, Bundle) 以及bindService(Intent, String, ServiceConnection, int) 可以让应用和后台服务进行通信。
5.Service。
服务是在后台长时间运行的应用组件,不和用户直接进行交互。
在每一个服务类在AndroidManifest.xml 文件中,必须有一个相应的<service> 声明。
服务必须用Context.startService() 或者Context.bindService() 启动。