毕业论文完整版(实用10篇)
43
2023 / 11 / 24
【摘要】安卓系统模式下设计开发的测量软件,可以应用在移动终端中,从而达到单一导线、水准路线、计算功能以及外业功能,还能够转换不同坐标,并且也能够依据蓝牙设备接收以及传输计算机和移动设备、移动设备之间的数据信息。本文主要分析了基于安卓系统的测量软件开发技术。
【关键词】安卓系统;测量软件;开发技术
现阶段,社会上越来越普及安卓操作系统,具备使用方便、价格低、功能强大等特点,开源性系统是其基本动力,能够在不同行业中得到大量推广,并且逐渐取代其他形式的掌上设备,因为设计开发时间相对比较长,需要建立符合实际情况的平板电脑和安卓手机测量软件开发系统,设计基本功能模块。
1测量软件开发中应用安卓系统的重要性
安卓系统的操作性和实用性比较强
随着日常生活中不断普及智能手机,给人们生活带来严重影响,安卓系统的可操作性和实用性比较强,已经成为众多系统中比较出色的系统,逐渐成为目前使用最多的移动终端系统。此外,安卓系统基本属于开源系统,促使用户使用和设计开发的时候十分方便,测量过程中安卓系统能够有效解决测量条件、环境等问题,以便于全面提高测量的准确度。
安卓系统可以提高测量效率
为了能够有效提高测量的质量以及效率,合理应用Java语言来开发和设计安卓系统,基于此建立相应的测量软件,不但能够实时记录、保存和传输测量以及采集数据信息,还能够保留界面中原始记录,以便于全面提高测量效率,达到降低测量工作量的目的[1]。
安卓系统能够解决测量外业不续航现象
外业测量的过程中,因为野外、隧道、井下等环境影响和限制测量工作,促使测量的时候已经逐渐不能应用传统设备。随着不断发展信息化技术,外业测量过程中急需要开发新技术。现阶段外业测量过程中经常应用测量软件平台就是PDA平台,虽然能够在一定程度上提高工作效率和质量,但是由于PDA具备比较小的屏幕,使用的时候十分不方便,促使不能完全满足测量实际需求。测量软件中合理应用安卓系统的可操作性、开源性、实用性比较强,可以完全满足测量中不足续航问题。
2测量软件程序功能
测量软件具备比较小内存和安装包,操作方便和简单。开发过程中主要就是应用sqllite和Java嵌入式形式。用户应用测量软件的时候能够对检查角进行随时检查,并且及时进行保存记录。依据系统实际情况用户可以随时修改数据信息。依据国家相关标准以及观测等级来对光标位置进行自动移动。超限检查的过程中,如果系统超限,系统会提出GO字样。如果出现偶数站,系统中需要提示输出信息,按钮从红色自动变为绿色,对数据进行记录,为了不丢失系统数据,需要设置能够及时保存的保存按钮。依据相关统计结果可以发现,利用空间数据处理软件,来促进自动形成结果电子表格。设计系统软件的基本功能有,打开软件、文件保存、新建文件、删除文件等。存储外业记录数据。测量软件中应用安卓系统,需要合理设计外业记录管理测量的软件模块,以此来添加、创建、备份、浏览测量数据,此外,这种外业模块需要能够创建数据输入口,以便于达到存储数据的目的。传输外业数据。测量软件中应用安卓系统实际上就是传输以及接受计算机和移动终端、移动终端之间的数据。
3程序设计开发
开发程序的环境
开发系统软件之前需要对开发软件的环境充分了解,搭建好环境才能够开发系统软件,主要包括JDK安装、AndroidSDK安装、myEclipse安装、ADT安装、创建AVD。
建立新程序
【摘要】主要介绍基于安卓系统手机WiFi的家用智能遥控器客户端的开发。通过在安卓手机上开发遥控器界面,并载入多个不同品牌不同型号设备的遥控器指令数据包,借助WiFi转红外模块译码成与家电相匹配的红外信号,使实物遥控设备数据化,实现“一个家庭只需一个遥控器”的目标,为人们提供一个智能舒适、环保节能的居家环境。
【关键词】安卓系统;WiFi;红外遥控
一、引言
由于红外遥控器价格低廉、技术成熟等优点,许多智能家电设备仍普遍采用红外遥控器进行控制,包括电视、空调、DVD机、电视机顶盒等等。然而,随着家庭中智能家电设备的增多,红外遥控器数量也在增加,一个家庭使用的遥控器数量少则数个,多则十几个,这会带来三大问题:
(1)数量众多的遥控器给使用者带来使用和管理上的不便;
(2)红外遥控器使用的一次性碱性电池,废弃后给环境带来极大的危害;
(3)遥控器意外损坏后,很难找到匹配的遥控器。
基于安卓手机WiFi的家用智能遥控器,可同时控制多个不同品牌不同型号的家用电器,取代传统的实物遥控器,实现“一个家庭只需一个遥控器即可控制所有红外遥控的家电设备”的目标,极大减少遥控器数量和一次性电池的使用量,为人们创造便捷舒适、环保节能的居家环境。
二、系统的结构
整个系统主要包括客户端软件、WiFi转红外模块,客户端软件通过WiFi,将已编码的数据通过WiFi传送至WiFi转红外模块,然后WiFi转红外模块根据编码规则,传递指令至内部红外发射模块,实现红外数据的发送。
(一)家用智能遥控器客户端的构成
1.键码数据包的采集与设计
(1)键码数据包的采集
红外遥控器的编码格式通常有NEC。
NEC格式的特征:使用38kHz载波频率,引导码间隔是9ms+,使用16位客户代码,使用8位数据代码和8位取反的数据代码。
随着家庭电器种类、型号的不断增多,相对应的遥控器也随之增加,为了便于管理、存取与更新家电遥控器的红外代码,需要为繁多冗杂的代码建立一个数据包。
(2)遥控器按键数据包的设计
由于红外协议各不相同,并且又相互不兼容,所以直接发送红外数据会导致WiFI转红外模块处理十分繁琐。因此,收集多种红外协议数据,按照自定义编码规则,将多种协议编码化,并保存于后台数据库。
为了实现按键界面与遥控器数据包的匹配,定义数据包格式如下:
文件起始标志位4位。
键码属性128位:设备的信息,访问中文字库编码、ASCII码。
载波频率4位:35-42kHz;分辨率,以适应不同载波的遥控器。
键码编码:对遥控器界面软件的所有按键进行编码,键码位数根据实际红外协议确定。
2.遥控器界面软件的设计
(1)数据库设计
安卓操作系统采用标准SQLite数据库,提供管理数据库相关的API。利用SQLiteOpen Helper类中的onCreate,Call Back方法以及onUpdate,Call Back方法创建与打开各种遥控器红外代码表Table,存进数据库中,方便数据的及时更新。
(2)按键与数据包匹配
在手机界面中,每个按键都与其相对应的红外代码相匹配,即按键功能与数据库中各种遥控器数据相连接。通过调用getReadable Database,方法当用户按下按键时,软件会查找数据包,将与该按键相连的数据包数据,即相对应的控制家电的红外代码以WiFi的形式发送至WiFi转红外模块。
(二)WiFi转红外模块
本模块负责数据接收、红外发射。包含WiFi数据接收与传送、串口数据解析、红外电平发射。采用WiFi芯片USR-WIFI232,提供WiFi信号及获得客户端所发送数据,再将数据通过串口传送至中控CPU。
本模块内部采用单片机作为中控CPU,处理编码化数据与红外协议的转化。由于单片机价格低廉,资源足够,功能满足中控CPU的需求,因此,采用单片机作为中控CPU。在单片机程序中设置多个红外协议入口点,当编码化的数据传送至单片机后,按照自定义的编码规则,寻找对应的红外协议入口,从而发射对应的红外电平。
中控CPU功能硬件电路由单片机最小系统及红外发射电路成。在中控CPU程序中,包含定时器功能、串口数据读取功能、红外电平控制功能。中控CPU的程序流程图如图3。定时器功能主要是用于产生载波,并与红外信号叠加,从而提高红外信号在空气中传播的抗干扰能力。串口数据读取,将WiFi芯片传递的数据加以分析,按照自定义的编码规则,进入不同的红外协议功能函数。红外电平控制功能,实现具体的红外协议函数,通过串口读取功能提供的数据,发射出匹配的红外信号。
三、实验测试
本次试验采用专用的红外测试仪器,可以监测到红外信号并将其波形显示出来。采用安装客户端的安卓手机及WiFi转红外模块,对比于实物遥控器。将实物遥控器、WiFi转红外模块都对准红外测试仪器。按下实物遥控器的某个按键之后,观察红外测试仪器显示的波形,如图3所示;接着按下安卓手机上对应的遥控器按键后,观察红外测试仪器上的波形。
由图3、图4可以看得出,安装客户端的安卓手机及WiFi转红外模块可以实现实物遥控器的功能。
四、结束语
本项目设计的运行在安卓手机上的新型遥控器,实测数据证明,其实现的功能与原配的实物遥控器性能一致,完全可以取代现有的各种实物遥控器,实现实物遥控设备数据化,降低成本。由于它基于安卓手机平台,具有成本低、扩展好、“一机多控”、环保、智能等优点,作品成熟后,具有较高的市场应有价值。
1) 软件园研发建筑空间形态设计研究
2) 基于数据库的滑动轴承设计计算软件开发
3) 一种复杂模式网传数据软件模拟器的设计
4) VB环境下交互式GMT地学绘图软件的设计及实现
5) 基于等效的单体包装机软件模块化设计研究
6) 基于Visual Basic的工程数量计算软件设计与开发
7) 嵌入式系统设计实验的Qt MIPS仿真软件开发
8) Solidworks参数化设计软件在我国家具研发中的应用
9) 会议电视系统平板会控软件设计与实现
10) 锅炉设计中引入三维设计软件的思考
11) 平面设计软件与DICOM图像数据处理技术
12) FLASH动画设计软件在多媒体技术中的应用
13) 无人机飞控计算机自动测试软件设计与开发
14) 基于虚拟现实技术的软件界面设计与研究
15) 面向掩星观测的软件接收机设计
16) 基于软件通信体系结构的波形FPGA软件设计方法
17) 基于MATLAB的同步发电机原动机及其调速系统参数辨识与校核可视化软件设计
18) 基于USB的软件综合安全模块设计及应用
19) 面向大数据处理的内容服务器软件设计与实现
20) 基于Android终端的企业即时通信软件的设计与实现
21) 基于Android的可配置工业远程监控软件设计与实现
22) 基于图像方式的受电弓滑板磨耗检测系统软件设计
23) 基于移动互联网的个人健康管理软件设计与实现
24) 老年人的握力测量软件沉浸式界面设计
25) 基于Android的移动学习软件设计与实现
26) 一种基于FPGA的软件无线电平台设计与实现
27) 脉冲发生器系列的软件设计
28) 航天器电子设备的地面测试系统自动化测试软件设计与实现
29) 《民航服务礼仪》CBT软件的.设计与开发
30) 安防机器人软件系统设计
31) 移动互联网软件产品中的UI设计研究
32) 探究式游戏型学习软件模型的设计与应用
33) 无人飞行器综合试验台主控软件设计与实现
34) 基于GIS的城市规划软件系统的设计与实现
35) 矢量网络分析仪误差校准算法及系统软件的设计与实现
课题背景
随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,Windows Mobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此与20xx年11月推出了一个专为移动设备设计的软件平台——Android。
Android 是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android 是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。
根据中国互联网信息中心(CNNIC)发布的《第22次中国互联网络发展状况统计报告》显示,截止2008年6月底,我国网民数量达到了亿,首次大幅超过美国,网民规模跃居世界第一位, 其中手机网民达到7305万,手机上网成为网络接入的一个重要发展方向。
相关技术的发展现状
手机操作系统的发展现状
Palm OS是一套专门为掌上电脑编写的操作系统,是一种轻量级、比较开放的操作系统,占用的内存非常小,允许用户在其基础上编写和修改相关软件,是支持的应用程序更加丰富多彩。Plam 在其它方面也还存在一些不足,如Plam操作系统本身不具备录音、MP3播放功能等,但是可以通过加入第三方软件或硬件设备来实现。其代表性的产品有Palm m505、Palm m500、Palm III等。
Symbian是一个实时性、多任务的纯32位操作系统,具有功耗低、内存占用少等特点,非常适合手机等移动设备使用,经过不断完善,可以支持GPRS、蓝牙、SyncML以及3G技术。
Windows mobile系列操作系统是从微软计算机的Windows操作系统上变化而来的。Windows mobile系列操作系统功能强大,而且支持该操作系统的智能手机大多数都采用了英特尔嵌入式处理器,主频比较高,在其它硬件设置(如内存、储存卡容量等)上也采用其他操作系统的智能手机要高出许多,因此性能比较强劲,速度比较快。Windows mobile系列操作系统包括SmartPhone以及Pocket PC Phone两种平台。Pocket PC Phone主要用于掌上电脑型的智能手机,而SmartPhone则主要为手上智能手机提供操作系统。
Linux系统是一个源代码开放的操作系统。由于其开源性,手机制造商可以根据实际情况开放自己的Linux手机操作系统,从而也能够吸引更多的软件制造商在其上开发更多的应用软件,丰富第三方的应用。但是Linux操作系统也还存在一些不足,集成开放环境和基于Linux的产品与PC的连接性比较差等。
论文组织结构
本文首先分析了系统的研究背景,介绍了当前手机操作系统、即时通讯软件的发展现状和即时通讯协议,以及本文的主要内容。
第二章,介绍了Android的特征、Android的架构以及Android应用的构成和工作机制,并对Android与其它手机操作系统进行了比较,说明了Android的优势。
1) 移动端儿童娱教软件交互设计研究
2) 竞赛对大学生发展的影响分析
3) 基于ThinkPHP框架的软件学院教务管理系统的设计与实现
4) 基于MAYA软件的动画角色设计和实现
5) 关于雷达信号分析软件的设计与实现
6) 基于MOOS的自主式水下机器人软件系统设计与实现
7) 基于Android的移动学习软件的设计与实现
8) 基于微信平台的家庭隐患报警系统软件设计与实现
9) 基于Android的机器人示教软件设计与实现
10) 基于安卓的某公司移动客户端软件系统的设计与实现
11) 基于PLC与组态软件的智能物料安装系统的设计与实现
12) 大学英语词汇锁屏移动学习软件的设计与应用
13) 开放式结构拓扑优化软件设计与研发
14) 基于BIM设计软件的工程量计算实现方法研究
15) 面向服务的物联网软件体系结构设计与模型检测
16) 面向Android手机应用的功能测试软件的设计与实现
17) 四旋翼飞行器整体设计与航迹跟踪地面站软件设计
18) 面向用户体验的智能手机软件界面设计研究
19) 小型无人机地面站软件系统的设计与实现
20) 基于Android系统的畅跑助理软件的设计与实现
21) 基于ZYNQ的软件无线电平台设计与实现
22) 急诊分诊管理软件的设计及应用效果
23) 基于SOC的手持式频谱仪的软件设计与实现
24) 基于第一创造法的可拓创新软件设计
25) 基于DCS的工程项目设计软件介绍
26) 双排桩支护结构理正软件设计计算与有限元(MIDAS/GTS)模拟分析
27) 移动端智能手机软件产品的UI设计研究
28) 基于ZYNQ的软件无线电平台设计与实现
29) 基于面向对象的纸机传动系统软件设计的研究
30) 软件企业设计人员胜任力模型研究
31) 算法可视化软件设计中关键问题的研究
32) 基于参与式设计方法的移动端烹饪软件界面设计研究
33) 支持语音识别功能的Andriod记事本软件设计与实现
34) 中小企业财务软件设计与应用
35) 基于Android的便携式心电监护系统软件的设计
36) 通用测试系统软件架构及关键技术的设计与实现
37) 基于双DSP的制导飞行器控制系统的软件设计
38) 达芬奇技术下的视频处理及传输系统的软件设计与实现
39) 基于SolidWorks的管壳式换热器辅助设计软件研究
40) 医学影像处理与分析软件平台设计与实现
针对有关Java语言的安卓手机软件开发,本文将从Java语言的特点、安卓手机架构、Java语言安卓手机软件开发的优势上进行简单的分析。
随着社会的发展,科技创新的脚步越来越快,安卓系统的智能手机也慢慢成为人们日常生活中必不可少的物品。Java语言是安卓手机软件开发的基础,甚至在 Android系统中也用到了Java语言核心类库中大量的类。之所以要开发安卓软件,不仅仅是因为随着时代进步、科技发展,人们对信息的需求强烈,更是因为手机市场的竞争所致。建立标准化、开放式的通信软件平台是获得行业竞争力优势的关键。
一 Java语言的特点
安卓应用的开发语言是Java语言,因此分析安卓手机软件的开发,应先认识Java语言。它是计算机语言中发展得最快的。概括起来Java语言具有以下几个特点:
第一,Java语言具有面向对象的特点,比较易于被人们所理解。现实中任何实体都可以看作为对象,并归属于某类事物中,也就是说任何对象都是某类事物的事例。如果将传统的过程式编程语言解释为以过程为中心以算法为驱动的一种“算法+数据”的程序编写语言,那么面向对象的Java语言则可以说是以对象为中心以消息为驱动,是“对象+消息”的程序语言。Java语言具有很强的封装性。所谓封装,就是用一个自主式框架把对象的数据和方法连成一个整体。面对对象的封装性、多态性和继承性,使Java语言的交互功能越来越成熟。
第二,Java 语言具有可靠性和安全性的特点。Java语言最初设计目的是应用于电子类消费产品,因此可靠性要求较高。Java语言虽然源于C++语言,但它克服了许多 C++语言的不可靠因素。如显式的方法声明可以确保编译器发现方法调用错误;不支持指针,可以防止内存的'非法访问;自动单元收集可以避免内存丢失等导致的问题;解释器运行实时检查可以发现数组和字符串访问是否越界等,都保证了Java语言的可靠性。Java语言通过自己的安全机制还可以防止病毒程序的产生,减轻下载程序对本地系统的威胁、破坏。在解码器内还有字节校检器进行检查,来自网络的类则由类装载器负责装载到单独的内存区,避免应用程序之间的相互干扰。这些机能使Java语言成为安全的编程语言。
第三,Java语言具有体系结构独立的特点。以往所通用的程序语言都有只能在统一体系的计算机结构中运行的弊端。而Java语言的运行与计算机结构无关,在任何系统中都可以随意运行。
二 安卓手机的架构
Java语言的安卓手机基本架构包括应用程序、应用程序框架、程序库、运行库和数据库。首先是应用程序。安卓手机软件会跟同一系列的核心应用程序一起发布,它包括一些客户端,短消息程序,日历、地图、浏览器等管理程序。Java语言是安卓手机程序的编写工具,大大提高了安卓手机交互的可能性。应用程序框架是指开发人员访问核心应用程序所使用的主要框架。框架的设计简化了一些组件的重用频率,在遵循框架安全性原则的前提下,一个程序任何时候都可以发布可供任何其他的应用程序使用的功能块。框架的重组机制还为用户替换程序组件提供了便利。安卓手机软件的数据库与其他系统的数据库相比有着极大的优点,更易于管理,更新方便快捷,因此Java编程语言的安卓手机应用软件可以更好地满足用户需求。
三 安卓手机软件开发的优势
在科技信息化时代,安卓手机软件开发具有明显的优势。首先,安卓手机软件的开发有强大的谷歌作为后盾。其次,开放软件开发的组件,可以让第三方的开源社区方便快捷地开发众多实用的Android应用程序。而且与手机行业中最具影响力的龙头公司联盟,并建立标准化、开放式的通信软件平台,程序的可移植性好就变成了安卓手机的优势。当前,由于手机操作系统的不同而造成手机间文件格式错乱,信息无法顺利流通的问题很普遍,如今只要使用安卓操作系统平台,就基本不受硬件装置的限制。另外,安卓手机的广阔发展前景也是软件开发的优势。在中国市场,安卓系统非常热销,还推出了安卓手机软件其他的一些产品。根据资料分析,到目前为止全国已经有23多亿部的移动设备使用安卓软件,手机就约占60%。安卓系统的广泛应用,将会吸引越来越多致力于开发互联网在线传播解决方案的运营商,开发和推广更多功能更强的安卓手机软件。而且随着Java语言的升级换代,Java语言的安卓手机软件开发也将持续不断发展。
四 结束语
Java语言的安卓手机软件开发为社会进步和人们生活方式的改变做出了无可比拟的重要贡献。安卓手机应用软件的服务范围已涵盖到商城、酒店、汽车、医疗、地产、旅游、美容、服装、传媒、娱乐等产业,人们的通讯、购物、学习和生产生活都离不开Java语言的安卓手机软件带来的便利。就目前来说,我们国家手机软件开发正处于高速增长的阶段,今后还需持续不断地进行研究和探索。
1. 引言
随着手机的普及以及手机应用的深入人心,近几年“智能手机”成为了人们关注的话题。在现今这个智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统。Android凭借其开放性和良好的人机界面,受到广大手机生产商的重视。
Android是基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,而且不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。
从Android的从业角度分析,Android的开发概括为两类:一是系统开发,包括低层linux内核的裁剪和扩展,硬件驱动的开发和系统移植等,从业人员主要工作在硬件厂商的公司里:而是应用开发,主要包括游戏开发、Android互联网客户端开发和工具软件开发等。随着用户群体的不断壮大,Android系统有望成为手机操作系统的“Windows”所以Android应用开发应用需求将非常大。
2. 研究背景
Android的前世今生
Android平台是开放手机联盟为创造一代更好的移动电话而合作开发的产品。该联盟由谷歌领导,成员包括移动运营商,手机设备制造商,元件制造商,软件解决方案和平台供应商以及销售商。从软件开发的角度,机器人立足于开源世界。
市场上第一款基于Android系统的手机G1由HTC制造并供应给T - Mobile用于销售。然而,该设备从放出风声到真正发布,用了大概一年的时间,因为发布的sdk补丁累计了一年才使唯一的软件开发工具变得可用。随着G1发布日期的临近,Android团队发布了,为新的平台而设计的应用也开始浮出水面。
为了鼓励创新,谷歌赞助了两轮“Android开发者挑战大赛”,并提供了数百万美元的奖励。在G1发布后的几个月,谷歌发布了Android市场,它允许用户直接在自己的手机上浏览和下载应用程序。大约过了18个月,一个新的移动平台进入了公众的视野。[3]
Android简介
Android是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟Open Handset Alliance开发。它采用了软件堆层software stack,又名以软件叠层的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google开始发表自家品牌手机电话的Nexus One。
Android开发工具
Android的上层应用程序是用Java语言开发的,同时需要基于Dalvik虚拟机,所以Google公司推荐使用主流的Java继承开发环境 Eclipse。有了Eclipse还不够,因为使用Java语言进行开发,应该有由SUN公司提供的Java SDK,其中包含了JRE:Java Runtime Environment。另外,Android的应用程序开发还是和Java开发有一定区别,所以还需有一个Google提供的Android SDK。
Android应用程序特点
Android系统是一个强大的智能机系统,与之相适应的硬件也一般具备相对较高的性能。总结起来,Android系统上的应用程序具有以下一些特点:
(1).功能强大。Android平台的设备一般都具备较强的运算能力、存储空间、网络功能以及各种各样的传感器。
(2).可复用性强。Android的应用程序由许多Activity组成,不同的Activity在程序中实现不同的功能模块。而最令人赞叹的就是,得益于Android的良好设计,不同应用程序之间的Activity可以实现共享(可以通过安全选项进行配置)。这就实现了良好的复用性。[6]
(3).开放程度高。“开放”是Android的设计宗旨之一,开发人员可以自己编写程序替代系统中原有的程序,甚至连拨号、短信、主屏幕这样的核心功能都可以由第三方开发人员的程序替代。
3. Android上的应用程序开发概要
Android应用程序的组成部分
Android 有丰富的功能,是一个分层的环境,构建在 Linux 内核的基础上,包括丰富的功能。
Android 应用程序是用 Java 编程语言编写的,它们在Dalvik虚拟机中运行。每个 Android 应用程序都占用Dalvik VM 的一个实例,这个实例驻留在一个由 Linux 内核管理的进程中。
Android应用程序是由Android体系结构定义的四个基本组成部分类型构成,:
(1) Activities 活动
这些都是在台式机媲美独立的系统,如办公应用软件。Activities是实时可执行代码,当用户或操作系统和运行需要时即被实体化。他们可以通过其他Activities或通过查询或意图服务与用户交互和请求数据。Android的大多数可执行代码将执行写在一个活动的环境中。活动通常对应显示屏:每个活动显示一个屏幕给用户。当它运行的不积极,活动可以结束运行的系统来节省内存。
(2) Services服务
与桌面和服务器操作系统守护进程相似。服务组件在后台运行,直到手机关机。他们一般不公开用户界面。
MP3播放器是一个服务的典型例子,需要一直处理等待处理的的文件,甚至当用户已经在使用其他应用程序。即使没有一个用户界面仍然存在,应用程序可能需要实现服务来执行。
(3) Broadcast and Intent Receivers广播接收机和意图
这些服务请求的响应另一个应用程序。一个广播接收机响应一个事件。这些广播可能来自Android本身(如电池低),或从任何在系统上运行的程序。一项活动或服务提供了访问其功能的接口是通过执行一个意图接收器,一段响应数据或其他活动的服务要求的可执行代码。广播接收器会自动地启动应用程序来响应某个到来的Intent,这个特点使它们成为了事件驱动的程序的最佳选择。
意图,一个简单的消息传递框架。使用Intent,可以在系统范围内向目标活动或者服务广播消息,以说明希望执行某个动作的意图。之后系统就会确定那些最适合执行动作的目标。
(4) Content providers内容提供程序
一个可共享的数据仓库。每一个内容提供器都开放一个唯一公共URI(由URI封装)。例如,当应用程序发出一个通讯录数据的查询,它涉及到一个URI查询的形式:
内容:/ /联系方式/人
该操作系统查询内容提供者给定的URI,并发送请求到相应的应用程序(如果尚未运行,启动应用程序)。如果有多个内容提供商请求的URI登记,系统会询问用户哪一个是想要的。
应用程序不必使用所有的Android组件,但是一个好的应用程序会使用所提供的机制,而不是硬编码重塑功能或引用其他应用程序。 URI和意向一起让Android提供了非常灵活的用户环境。应用程序可以很容易地添加,删除和取代意图而URI使其联系在一起工作。
Android 应用程序是连同一个 文件一起部署到设备的。 包含必要的配置信息,以便将它适当地安装到设备。它包括必需的类名和应用程序能够处理的事件类型,以及运行应用程序所需的许可。例如,如果应用程序需要访问网络如为了下载一个文件, 那么 manifest 文件中必须显式地列出该许可。这种显式声明有助于减少恶意应用程序损害设备的可能性。
存储和返回数据
Android提供了很多种类的存储机制以及网络服务。在Andriod应用程序中有几种不同读写数据的方法。可以根据需求选择。
在Android中,所有的应用程序资源对自身而言是私有的,但是并不是说,其它程序就无法与之共享数据了。在Android中,可以通过提供一个标准的方法来使得其他的应用程序访问这些私有的数据,那就是ContentProvider。除了这一种方法,还有其它的方法也可以使用,例如Prefrences、Files、Databases、Network等。完全可以根据开发人员的需求来作选择。
安全模式
在Android中,为了使用应用程序更加地安全,Android增加了安全模型来操作资源和数据的特征,这是通过权限设置来决定的。Android是一个多进程系统,在此之中,每个应用程序都在自己的进程中运行。大多数的应用程序之间的安全模式设置和标准的Linux系统相一致,例如给各个应用程序分配不同的UID。
Andriod中的安全架构
Android安全结构的一个中心设计思想是,在默认情况下,没有任何应用程序可以对其他的应用程序、其他的用户进行操作。一个应用程序的进程就是一个安全的沙盒,它不会打扰其他的应用程序。它所要请求获得的权限在安装时用户就可以知晓,并且安装之后程序也无法改变自己的权限。
Android Binder 总结
Android IPC系统的整个架构如上图所示,分为4大块:
(1) Binder驱动
它是IPC系统的核心。它在Serivce提供者与Service使用者之间传递数据
(2) Service提供者(Service Provider)
它提供某种服务。它解析从Binder驱动发过来的RPC数据并且执行真正的动作
(3) Service管理器(Service Manager)
它是一个特殊的Service提供者。它为其它Service提供者提供Service管理服务。
(4) Service使用者(Service User)
它远程调用Service提供者。它生成RPC数据并且发送到Binder驱动。
资源和i18n(国际化)
Android中也提供了应用程序资源管理系统,这些资源通常包括图像,字符串,以及XML布局文件等等。这些资源在编译期间会以不同形式被编译到应用程序中。例如XML文件会被编译成一个二进制代码,String被压入一个更加有效率的存储表格中。通过对不同语种的String资源分别管理,就可以很方便地实现i18n。
4.总结
Android市场尚在培育和发展中,在政策、厂商、消费者、开发者的共同努力下,围绕着Android的生态圈将逐渐成型并进入良性循环阶段,对它关注得越早,就越有可能在将来抢得先机。