的AndroidRuntime来执行,Runtime内有两个重要元件:该CoreLibraries(核心函数库)与DalvikVirtual
Machine(Dalvik虚拟机器)。核心函数库里包含了绝大多数Java程序语言所需要调用的函数,每个Android程序都以各自进程来执行,并且都以自属的Dalvik虚拟机器来同时执行,各个程序的执行效率却丝毫不会受到影响。应用程序框架包含了10个主要的软件元件,如LocationManager(位置管理员)、ActivityManager(活动管理员)、WindowManager(视窗管理员)、ResourceManager(资源管理员)、XMPPServices等等,便于用户开发不同类型的应用程序,这种框架,在移动终端应用程序开发历史上是独有的。在应用程序执行过程中,Android使用Intent类与IntentFilter来完成窗口之间的切换。一个Intent描述了应用程序想做的Activity(活动),而IntentFilter则描述了一个活动所能处理的所有Intent。在不同窗口之间切换是通过解析Intent完成的。平台采用XML布局与视图定制联合起来,做到“FirstLook”,将界面设计与应用程序逻辑分离。Android平台内置了地图服务模块,借助3G网络等无线网络的高速传输条件,开发者只需简单的几行Java代码即可将GoogleMaps的地图资源显示在移动终端上,有限的几行代码即可实现缩放、浏览、卫星图/地图切换等等,同时,该平台也支持其他数据提供商的数据资源。平台提供了两个基于位置服务的地图API开发包:android.location以及com.google.android.maps.通过对这两个地图API开发包内与位置服务相关的类的使用,配合设备本身的具备的定位定向等相关模块,可以很好地实现对用户移动空间信息服务应用程序开发。2.1Location接口Android的定位接口(android.location)包含几个与位置服务相关的类,并且提供LocationManager服务,这个服务提供定位与定向API,当然,前提是设备具备这种基本的功能模块,比如说,设备内置了GPS接收机模块等等。LocationManager服务不会被直接用来获取用户位置信息,它会通过getSystemService(Context.LOCATION_SERVICE)来获得一个指向它的Handle,实现对它的有效应用。一旦应用程序拥有了一个指向LocationManager的Handle,那么它将会拥有以下三种功能:1)查询LocationManager所掌握的全部LocationProviders的最终位置信息
列表;2)
注册或者注销当前位置从一个LocationProvider提供的实时位置更新;3)当移动终端在一个给定的位置半径范围以内的话,激活一个给定的intent,从而实现用户所需的空间信息功能。需要说明的是,开发阶段不能使用Network、GPS等获取的真正的实时位置数据。为此,平台提供了模拟数据开发的功能模块,开发者可以使用DDMS或者geo命令行导入模拟数据到模拟器中。通过DDMS工具,可以设定一个经纬度来更新当前位置、使用GPX文件来进行路径回放操作、使用KML文件来进行回放的多个独立地标标注等等;使用geo命令行时,通过geofix来设定一个地理位置,它可以设定一个包含经纬度,高程可选的地理位置,比如,geofix-121.4535646.511194392,通过geonmea来设定一个NMEA0183语句,这个命令接受一个单独的NMEA语句,这个语句的类型或是'$GPGGA'(fixdata),或是'$GPRMC'(transitdata).比如,geonmea$GPRMC,081836,A,3751.65,S,14507.36,E,000.0,360.0,130998,011.3,E*62DDMS与geo操作均可以把模拟位置数据送入模拟器,对应用程序开发者来说,是一个很好的位置信息服务开发辅助工具。2.2maps接口Android的地图接口(com.google.android.maps)包含了一系列与地图开发功能相关的类,这些类提供了渲染、控制以及绘制覆盖层等功能,开发者可以很容易地进行基于GoogleMaps