第二章 开发110警务平台报警APP的相关技术
基于移动互联网的110警务平台-报警APP是一款基于Android平台开发的手机APP,采用JAVA开发语言。该报警APP使用Eclipse ADT作为开发环境,并且结合百度地图的使用提高报警APP实用性。以下进行详细介绍:
2。1 JAVA语言简介
在介绍Android相关技术之前,首先要先介绍Java语言,因为Android系统的高级编程语言是Java。在1995年Sun Microsystems公司正式推出了一款面向对象的程序设计语言,这款语言具有可移植性,提供了分布性、多线程、动态性的支持等优点,这款语言就是JAVA。简单性,面向对象性,安全性,鲁棒性,体系结构中立和高性能性等特点使它在众多编程语言中脱颖而出。人们常说的Java最显著的三个特性分别是:封装性,继承性和多态。封装性是将信息进行隐藏,只给外部提供一些借口进行联系,而把数据和对于数据的操作封装起来。对于继承来说就是指个性对共性的接受,当然也可以加入个性所特有的属性和方法,子类继承父类,该子类就拥有父类的属性和方法。多态性是以前两个特性为基础的,多态针对一个抽象的事,对于内部个体又能找到其自身的行为去实施。
2。1 Android简介
Android是一种基于Linux的自由及开放源代码的操作系统,主要是使用在手机和掌上电脑。说道Android的开发,不得不提到它的四大控件,以下分别讲述四大控件:
(1)Activity:
Activity是组成Android应用程序的最基本单位,Activity往往代表了一个独立的屏幕,它主要负责创建显示窗口[1]。图2-1为Activity生命周期图:
图2-1 activity生命周期图
一个最简单的完整的Activity生命周期会按照如下顺序回调:onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy,值得一提的是,当前Activity被暂停之后再次启动时,此时不是按照完整生命周期开始,而是跳过onCreat方法,直接运行onStart方法。
(2)Service
Service用于创建Android后台服务,功能是守护进程,能为用户提供长时间运行的后台程序。Service主要有两方面的功能:(1)告诉系统有关的事情要在后台做(甚至当用户没有直接互动申请时)。通过调用Context。startService()来启动服务,该服务一直运行,知道服务被终止。(2)通过调用Context。bindService()来允许一个长期运行的服务,以与其进行交互[4]。
(3)Broadcast Receier
BroadcastReceiver 用于异步接收广播Intent。主要有两大类,用于接收广播的:(1)正常广播 Normal broadcasts(用 Context。sendBroadcast()发送)是完全异步的。它们都运行在一个未定义的顺序,通常是在同一时间。这样会更有效,但意味着receiver不能包含所要使用的结果或中止的API。(2)有序广播 Ordered broadcasts(用 Context。sendOrderedBroadcast()发送)每次被发送到一个receiver。所谓有序,就是每个receiver执行后可以传播到下一个receiver,也可以完全中止传播--不传播给其他receiver。 而receiver运行的顺序可以通过matched intent-filter 里面的android:priority来控制,当priority优先级相同的时候,Receiver以任意的顺序运行[5]。
(4)Content Provider
ContentProvider(内容提供者)是Android中的四大组件之一。主要用于对外共享数据,也就是通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对指定应用中的数据进行操作。ContentProvider分为系统的和自定义的,系统的也就是例如联系人,图片等数据。
2。3 百度地图技术开发介绍
百度地图是百度提供的一项网络地图搜索服务,我们在开发中使用的是百度地图的SDK,即一套基于Android 2。1及以上版本设备的应用程序接口。该SDK主要包括以下功能:地图展示和地图操作功能,POI检索,定位,导航等功能。