时间:2022-06-08 08:43:41
绪论:在寻找写作灵感吗?爱发表网为您精选了1篇安卓开发论文,愿这些内容能够启迪您的思维,激发您的创作热情,欢迎您的阅读与分享!
Android开发,像一曲舞不完的冰火曲。看着挺美,舞的人却很辛苦。
市场舞台宽广
36万人,这是国内最大Android开发社区――优亿开发社区的注册人数。优亿开发社区就像一个庞大的舞台,供几十万人共同起舞,场面何其壮观及热烈!
起初我们可能还在怀疑:Android是否会很好的存活下去?别的不说,就以完美用户体验为最终目标的苹果为例,在其强大的品牌攻势下,Android开发者能否喘口气都还是个难题。
虽然当时Android的未来还生死未卜,但它毕竟承载了许多人的梦想,开发者们千万般呵护,终于发生了奇迹――“我们发现Android不但能够存活下去,而且活得非常好。”优亿CEO靳岩在4月16日深圳举办的“优亿移动开放日”论坛上的讲话中透露着欣喜,“如果你乘坐公交车或者地铁,一定会发现,人们手里拿着的智能手机,有一半都是Android的系统。”
中文互联网数据研究资讯中心comScore最新的2012年2月美国移动用户市场份额报告称,谷歌的Android移动操作系统在一年内持续增长,达到了50.1%。而去年第四季度,Android的产品在中国整体的智能手机的销量占到86.4%,这个数据还一直在增长,预计今年可以占到中国市场的90%以上。塞班系统从以前的80-90%到现在只剩下30%左右,而苹果的系统一直是一个比较封闭的状态,依然在10%左右徘徊。
Android的壮大,中国电信功不可没。“中国电信是第一个提出互联网手机的运营商,也率先帮助中兴、华为这样的公司推出几百块钱的Android手机,推广到三四线城市,让Android的市场占有率迅速壮大。”天翼空间肖毅表示,伴随着中国电信在三四线城市的推广,Android手机必定拥有广阔的发展空间。
难抵开发屏障
台上一分钟,台下十年功。
可移动互联时代,等不得开发者们耗费十年时间苦练内功。“开发者们除了要勤奋和智慧,剩下的恐怕只能是见招拆招了。”靳岩冷静地分析了Android面临的问题,而这些待解决的问题,也的确让人感觉到这个行业目前有点冷。
第一个问题便是Android设备的版本碎裂较严重。“比如,今天在场的人看一下周围拿Android手机的朋友,手机型号肯定不一样。再看的详细一点,其实很多地方都不一样。”靳岩介绍说,“这是因为手机厂商把一些东西给修改掉了。Android的开源性让他们可以修改一些东西,但是修改的时候避免不了要破坏其兼容性,这让Android设备的碎裂化问题非常严重。”
与此同时,同质化依然是Android系统需要面临的一个难题。随着用户对质量的要求越来越高,如何开发出质量较高、留存率较高的应用和更好玩的游戏,也将成为一个具大的挑战。
而在推广方面,靳岩拿Android与苹果做了一个对比:“苹果的推广比较容易,它有一些方法在里面,包括潜规则等。但是Android的推广有一个很大的问题,就是渠道比较分散。现在全国大大小小的推广渠道达到了100个以上,怎么样才能把这100个渠道全都覆盖?我个人认为,那些中小型开发者能够覆盖10个主流渠道就已经很不错了。”
最后一个问题,自然就是回报问题。用户对于免费模式的习惯,或多或少给APP开发者们带来了困惑,而这也直接影响了VC的投资热情。
曲不终舞未散
一切还在进行时。
移动互联为大势所趋,只要背景音乐不断,舞者就不会终止拼搏。所谓的“冷”并没有打击开发者们的热情――Android开发团队变得更加务实,学会了针对市场情况进行冷静地分析,也不再单纯地拼苍白的用户流量,而是开始比拼用户质量。“不去看你的用户活跃还是不活跃,不去想怎么样才能把你的用户转化成你的收入。”一位代表这样发表自己的看法。
在技术上,他们追求更精细化、更人性化。肖毅介绍了自己的API新业务:“比如,通过这个API,可以把单机版的五子棋游戏变成联网的点对点的游戏,或者,把用户的电话号码做一些社交化的分享内容出来。再比如,大家以前做手机的门槛高,适配的难度也非常大,但通过这样一个方式就能让它变得很简单。”
至于推广方面,开发者们不但想到了流量交换的低成本推广方式,更注重将用户体验分享到应用体验中去,建立个性化品牌,从而树立起良好的口碑效应。
即使有诸多难题横在面前,但开发者们还是在言谈中流露出阳光灿烂的表情。舞者,最能打动人的就是表情。在冰与火的舞曲中演绎固然辛苦,但他们看到的,是Android市场未来的一片曙光。
他们最早的设想是用安卓“建立一个由连至PC的智能相机所组成的世界”,但由于智能手机市场开始迅猛发展,于是这款操作系统面向手机做了改动。“我们当初为相机开发的同一个平台、同一个操作系统,后来成为了手机版安卓系统。”安卓创始人之一Andy Rubin近日在东京经济峰会上表示。
2005年,谷歌收购安卓后,Rubin成为了这个搜索巨头中的一名高管。他向投资者展示的2004年4月的商业计划的幻灯片中,其中一张显示着“相机以无线或有线方式连接至家用电脑,进而连接至安卓数据中心”的内容。然而当手机拍照技术成为主流后,数码相机市场的增长速度便开始趋缓。于是,5个月后,Rubin的公司调整了商业计划:安卓成为一款“开源手机解决方案”的操作系统。
随后,安卓公司招募了之前供职于T-Mobile和Orange的团队成员,并把目光瞄向移动版Windows等竞争对手。而苹果在2007年时才进入这个市场。Rubin说:“我当时担心的是微软和Symbian,iPhone还不在考虑的范围之内。”
Rubin表示,当时恰逢大好机遇。硬件成本因商品化而急剧下降,而软件开发商对操作系统收取一样的费用,因而在硬件制造商的预算中占据更大的份额。由于安卓公司认为其系统是销售其他服务和产品的一个平台,因而认定它的目标为寻求增长,而不是寻求每台设备的收入。
安卓公司最初的大胆预测是,到2010年争取在北美和欧洲夺得9%的市场份额;但在2012年,安卓的市场份额已高达72%。谷歌在今年3月份表示,全球投入使用的安卓设备数量已超过7.5亿部。结果表明,手机在市场上的表现胜过相机。
Rubin说:“我们希望尽可能多的手机使用安卓系统。因此安卓不会向用户收取‘99美元、69美元或59美元’之类不同级别的费用,而是完全免费提供,因为我们知道这个行业对价格十分敏感。”
而日前,三星推出了一款运行安卓系统的Galaxy相机,尼康和宝丽来等厂商也推出了类似产品。于是,安卓操作系统又回归到“原点”——相机操作系统。而这款操作系统还应用于平板电脑、电视机、咖啡机和冰箱在内的多种设备上。
3月14日,谷歌宣布Rubin将辞去安卓业务主管一职,目的是为了让Rubin在这家公司“另写新篇章”。
Rubin表示,他会继续开发面向最终用户的产品。“我可以向大家保证,无论我接下来做什么工作,目标都是开发出让消费者高兴的产品。”
摘 要:手机和移动设备的开发在现今正变得越来越重要,因此许多应用系统都需要能够把手机和移动设备整合到现有的系统之中作为新的客户端,在RAD Studio XE2中提供了Mobile Connector的功能,允许开发人员开发安卓系统的Datasnap客户端程序,让主流的手机使用者可以藉由手机连接到此服务器以存取服务器提供的服务。本文主要阐述了如何藉由Datasnap移动设备连接组件的功能开发安卓系统的服务器程序和手机的客户端程序。
关键词:Datasnap 安卓 服务器 客户端
1 Datasnap移动设备连接组件说明
RAD Studio XE2推出Datasnap移动设备连接组件技术的目的是为了让手机客户端能够非常容易地连接到Windows平台的Datasnap服务器取得服务,这样一来,就能够让原来Midas分散式系统或最新的Datasnap分散式系统和移动式客户端整合在一起。目前由于不同的手机客户端必须使用不同的程式语言和技术来开发,因此开发人员如果要整合数个不同的手机客户端和分布式系统,那将是非常辛苦的工作,而Datasnap移动设备连接组件正好解决了这个问题,因为这是一个藉由可以自动产生不同手机客户端的程序代码的技术,可以让不同的手机客户端连接到分布式系统。
2 开发安卓系统应用程序的步骤
在开发安卓系统应用程序的过程中,需要让安卓系统的客户端程序连接到Datasnap服务器程序,其开发步骤如下:(1)从Datasnap服务器获取Mobile Connector的Java客户端程序代码,这个程序代码不仅能够让安卓系统的Java程序代码连接到Datasnap服务器,更为重要的是,其中包含了所有服务器中的服务方法,可以让安卓系统的Java客户端程序直接连接服务器。(2)把Mobile Connector的Java客户端程序代码加入到安卓开发软件中,再使用Java调用Datasnap服务器的方法。
3 使用RAD Studio XE2开发Datasnap服务器和安卓客户端
3.1 建立服务器程序
要让安卓手机用户能够连接到Datasnap服务器,在建立服务器时就必须加入支持Mobile Connector的功能,因此,我们先建立一个新的Datasnap Rest应用程序,服务器建立完成后,打开Web Module程序窗体,可以看到Datasnap Server的若干个组件,由于在之前勾选了Mobile Connectors选项,因此在这个程序窗体中加入了DSProxyDispatcher组件,这个组件可以让用户藉由使用特定的URL来产生支持特定手机客户端的Mobile Connector原始程序代码。现在编译并执行服务器程序,就可以使用浏览器藉由特定的URL来获取支持特定手机客户端的Mobile Connector程序代码,然后就可以使用这些支持特定手机客户端的Mobile Connector程序代码来连接并存取服务器中的服务方法。在浏览器中使用了上述特定的URL后,服务器就会传递安卓客户端的Mobile Connector程序代码(以ZIP压缩文件的方式)到浏览器中,让浏览器下载,文件名为java_android.zip。解压缩此文件,就可以看到其中包含了Java原始程序的代码文件,可以在Eclipse for Android中使用这些代码文件以连接到服务器。
3.2 开发安卓系统客户端应用程序
取得了安卓系统客户端Mobile Connector的原始程序代码以后,接下来就可以使用它来开发安卓系统的客户端应用程序了,步骤如以下几点。
(1)启动Eclipse for Android,并建立Android项目工程,单击【下一步】按钮。
(2)在下一步中选择使用安卓2.1SDK,单击【下一步】按钮。
(3)在下一步单击【Browse】按钮,加入java_android.zip文件到工程项目文件中,并加入到工程的src目录中,单击【完成】按钮。在加入完成后,打开工程项目中src节点,可以看到com.embarcadero.javaandroid出现在src节点下面。
(4)为以让安卓客户端程序能够连接Datasnap服务器,必须开启Internet的存取权限。打开工程项目文件中的Manifest.xml文件,加入Internet的存取使用权限。
修改客户端程序的使用者界面,使用鼠标双击选中res/layout节点之下的main.xml文件,此时Eclipse会显示可视化的使用者界面,在主窗体中加入1个Label组件,2个EditText组件和1个Button组件。
使用鼠标右击第一个EditText组件,设定它的ID为edtZipCode,使用鼠标右击第二个EditText组件,设定它的ID为edtZipArea,使用鼠标右击Button组件,设定它的ID为btnQuery,设定它的Text为查询。
最后为这个工程项目建立一个运行时期的状态设定,Eclipse for Android会启动Android Simulator并加载运行的项目工程。在运行的程序中输入一个邮政编码,并点击【查询】按钮,会看到Android客户端程序调用Datasnap服务器方法所返回的查询结果。
4 结语
在计算机技术高速发展的今天,支持手机和移动设备应用程序的开发正变得越来越重要,许多应用系统都需要能够把手机和移动设备整合到现有的系统之中作为新的客户端,在RAD Studio XE2中提供了Mobile Connector的功能,允许开发人员开发安卓系统的客户端程序,让主流的手机使用者可以藉由手机连接到Datasnap服务器以存取服务器提供的服务。本文主要阐述了如何藉由移动设备连接组件的功能开发安卓系统的服务器程序和手机的客户端程序。
【摘要】主要介绍基于安卓系统手机WiFi的家用智能遥控器客户端的开发。通过在安卓手机上开发遥控器界面,并载入多个不同品牌不同型号设备的遥控器指令数据包,借助WiFi转红外模块译码成与家电相匹配的红外信号,使实物遥控设备数据化,实现“一个家庭只需一个遥控器”的目标,为人们提供一个智能舒适、环保节能的居家环境。
【关键词】安卓系统;WiFi;红外遥控
一、引言
由于红外遥控器价格低廉、技术成熟等优点,许多智能家电设备仍普遍采用红外遥控器进行控制,包括电视、空调、DVD机、电视机顶盒等等。然而,随着家庭中智能家电设备的增多,红外遥控器数量也在增加,一个家庭使用的遥控器数量少则数个,多则十几个,这会带来三大问题:
(1)数量众多的遥控器给使用者带来使用和管理上的不便;
(2)红外遥控器使用的一次性碱性电池,废弃后给环境带来极大的危害;
(3)遥控器意外损坏后,很难找到匹配的遥控器。
基于安卓手机WiFi的家用智能遥控器,可同时控制多个不同品牌不同型号的家用电器,取代传统的实物遥控器,实现“一个家庭只需一个遥控器即可控制所有红外遥控的家电设备”的目标,极大减少遥控器数量和一次性电池的使用量,为人们创造便捷舒适、环保节能的居家环境。
二、系统的结构
整个系统主要包括客户端软件、WiFi转红外模块,如图1所示。客户端软件通过WiFi,将已编码的数据通过WiFi传送至WiFi转红外模块,然后WiFi转红外模块根据编码规则,传递指令至内部红外发射模块,实现红外数据的发送。
(一)家用智能遥控器客户端的构成
1.键码数据包的采集与设计
(1)键码数据包的采集
红外遥控器的编码格式通常有NEC。
NEC格式的特征:使用38kHz载波频率,引导码间隔是9ms+4.5ms,使用16位客户代码,使用8位数据代码和8位取反的数据代码。
随着家庭电器种类、型号的不断增多,相对应的遥控器也随之增加,为了便于管理、存取与更新家电遥控器的红外代码,需要为繁多冗杂的代码建立一个数据包。
(2)遥控器按键数据包的设计
由于红外协议各不相同,并且又相互不兼容,所以直接发送红外数据会导致WiFI转红外模块处理十分繁琐。因此,收集多种红外协议数据,按照自定义编码规则,将多种协议编码化,并保存于后台数据库。
为了实现按键界面与遥控器数据包的匹配,定义数据包格式如下:
文件起始标志位4位。
键码属性128位:设备的信息,访问中文字库编码、ASCII码。
载波频率4位:35-42kHz;分辨率0.5kHz,以适应不同载波的遥控器。
键码编码:对遥控器界面软件的所有按键进行编码,键码位数根据实际红外协议确定。
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所示;接着按下安卓手机上对应的遥控器按键后,观察红外测试仪器上的波形,如图4所示。
由图3、图4可以看得出,安装客户端的安卓手机及WiFi转红外模块可以实现实物遥控器的功能。
四、结束语
本项目设计的运行在安卓手机上的新型遥控器,实测数据证明,其实现的功能与原配的实物遥控器性能一致,完全可以取代现有的各种实物遥控器,实现实物遥控设备数据化,降低成本。由于它基于安卓手机平台,具有成本低、扩展好、“一机多控”、环保、智能等优点,作品成熟后,具有较高的市场应有价值。
摘要:针对当前移动平台的健康减肥软件种类少,形式单一,操作复杂的特点,开发了一套基于安卓平台健康减肥的软件。本软件主要实现了运动减肥、色彩减肥、GPS定位等功能。利用了安卓加速传感器计算每天行程,GPS定位和百度地图完成了当前位置定位及路径痕迹。
关键词:Android平台;加速传感器;GPS定位;BMI
现代手机成为人们不可或缺的一部分,而在手机中,安卓手机已经成为年轻人群的主流手机,而年轻人也对减肥瘦身如火如荼,健康减肥也是愈演愈烈。电脑平台的减肥软件应有尽有,趋向成熟,但在移动客户端上的健康减肥软件种类少,并且形式单一,在市场上一款多功能的移动健康减肥软件还很少,所以移动客户端的健康减肥软件有很大的市场空间,所以我就使用最广并且最多的安卓平台开发了健康减肥软件。它有着灵活性、准确性、生活化、直接性和潜在性等特点。针对这些特点,采用安卓平台的健康减肥软件就体现出了很大的优势。这种采用移动平台,让人们随时随地进行减肥,灵活准确的记录减肥成果,让人们的减肥更加透明化。
1 基于安卓平台健康减肥软件开发与设计的需求分析
1.1 功能需求
健康减肥软件主要以运动量的测定和评估为主,加以平衡膳食的健康生活方式为辅助,健康指数查询,给出了健康人的心率、血压、血糖等的标准指数,让大家作为健康的参考;减肥日记,用来记录每天的走路数,让人们清晰的知道自己消耗的卡路里;饮食搭配用来合理的搭配食物,知道自己将要增加多少卡路里,以免过多的摄入;色彩减肥,有两组图片,进行强烈的对比,引起肥胖者的重视,让想减肥的人节食;健康膳食,提供了大量早中晚的食物以及这些食物的热量,摄入多少出现的问题等信息;运动悦耳和我的提醒,是分别调用安卓自带应用music和desktop alarm,如果你的手机已经深度优化是不会正常显示的。运动循迹是利用GPS定位和百度地图来,用来标注你的位置和所走路线的。这样让使用者更能了解自己运动的状态和位置,综合以上所述功能,展现了一套综合的安卓健康减肥软件。
1.2 界面需求
2 基于安卓平台健康减肥软件的设计和实现技术
安卓是一种基于Linux的自由及开放源代码的操作系统,主要使用移动设备,是有Java技术开发的。本软件就是在安卓操作系统上开发的,安卓的系统架构和其操作系统一样,采用了分层的结构。从架构图看,安卓分为四个层,从高层到底层分别是应用程序层、应用程序架构层、系统运行库层和Linux内核层。Android开发四大组件分别是:活动(Activity): 用于表现功能。服务(Service): 后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider): 支持在多个应用中存储和读取数据,相当于数据库。本应用利用java技术,在安卓系统上进行开发。
3 健康减肥软件的总体设计
3.1 软件总体设计
根据我们定义的需求分析,我们给出了安卓平台健康减肥软件总体设计,如图1所示。
3.2 主窗体的设计
主窗体利用GridView(九宫格)多控件布局,内部添加了7个功能模块。在主界面上部添加了利用加速传感器感知的所走步数的计算。
3.3 健康指数功能的设计
功能主要是计算体重指数(BMI)、有氧运动心率、健康标准查询表:包括体温、血糖、血压、血脂、心率、脉搏、呼吸等。
技术上,在ToolMainListActivity.java和CalorieManager.java文件中实现,根据BMI=体重/(身高*身高)公式,求得BMI,并且得知自己处于轻体重、正常、肥胖等层次。健康标准查询表是通过在ImageButton上添加文字来实现的。
3.4 减肥日记功能的设计
功能是实现记录用户每天的走路步数,并且通过公式计算每天消耗的卡路里。
技术上,在NoteListActivity.java文件中实现,利用安卓自带的加速传感器(acceleration transducer),原理是惯性原理,也就是力的平衡,A(加速度)=F(惯性力)/M(质量) ,能感受加速度并转换成可用输出信号的传感器。在CalorieManager.java文件中mCalorieListener对象用于监听手机水平传感器,Sensor sensor = mSensorMgr.getDefaultSensor(Sensor.TYPE_ACCELE ROMETER),传感器初始化,进行感应每天所走步数,mUpdateSQLiteThread对象用于更新数据库的线程,保存每天记录的数据。
3.5 色彩减肥功能的设计
功能是利用图片对比法,让用户在视觉上产生冲击。导致减少饮食和充分认识到减肥的重要性。图片对比方式:让减肥的人充分认识到减肥的重要性。图片刺激方式:通过多组恶心的图片以使人们产生厌食的现象。达到减肥的目的。
技术上,这个功能模块技术上实现很简单,在PictureListMainActivity.java中实现。利用ImageView类来定义多组图片实现。
3.6 健康膳食功能的设计
3.7 运动悦耳功能的设计
功能是让用户在锻炼时间进行听音乐,达到身心放松。
技术上,我们遵循软件的简约化,直接调用安卓自带软件music(com.android.music)。但是如果安卓深度优化,将自带音乐播放器修改了,那这个功能将不能使用。
3.8 我的提醒功能的设计
功能是让用户可以定时进行有规律的锻炼。
技术上,与运动悦耳功能方式相同,直接调用安卓自带软件桌面闹铃(com.android.deskAlarm)。同样的,如果安卓系统被深度优化,将自带的桌面闹铃修改了将不能使用此功能。
3.9 基本设置功能的设计
功能是保存用户的基本信息,如年龄、体重、身高等。
技术上,使用下拉菜单实现年龄体重身高等的记录。在com.example.health.food包中,入口是OptionActivity.java文件中实现的。
3.10 运动寻迹功能的设计
功能是实现了定位用户当前位置,并获得了当前经纬度。包括计算距离,用户的运动轨迹等。
4.1 功能测试
采用测试方法:功能测试盒Alpha测试,由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试。测试后进行迭代,使项目达到更小的错误率。表2是功能测试的结果。
4.2 测试结论
系统功能的测试结果显示,基于安卓平台的健康减肥软件能够正常使用。各功能都可支持。满足了预期期望。
5 结束语
安卓版的健康减肥软件开发与设计是由于手机软件市场上健康减肥软件种类少、功能单一等问题而开发的。目的是解决年轻人健康的减肥并且平衡的问题。软件的设计应当符合操作简单,灵活方便等要求。采用java技术在安卓平台上开发设计,在安卓手机上有运行,方便快捷、灵活准确。从而达到改善膳食,使减肥者真正达到想要的身材,实现出本软件的真正价值。
[摘要]本文主要介绍基于安卓智能移动系统的大比例尺地图数据采集系统,对系统的功能、特点、结构等进行论述。
[关键词]安卓 数据采集 数字化测图
1引言
现代科学技术的飞速发展,尤其是计算机技术的广泛采用,使测绘技术发生了革命性的变化,从模拟阶段转向数字阶段,数字化测图已成为当今大比例尺地形图测绘的主要方式。数字测图野外测量自动记录,自动解算处理,自动成图,并能提供可处理的数字地形图。目前,数字化测图软件、硬件已经得到的长足的发展,但野外现在草图的作业方式效率依然较为低下;虽然现在已有电子平板、掌上平板等野外数据采集软硬件设备,但是由于成本过高,电池续航能力不足等因素,而未能大面积推广。为了使得野外数据采集更加高效,借助现代科技,利用安装了安卓智能移动系统的设备(手机、平板电脑)体积小、便于携带,触控方便、成本低的的特点,开发一套基于安卓系统的大比例尺地形图测绘系统,对提高生产效率将起到积极的作用。
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。安卓系统平台具有以下特点:①开放性:允许任何移动终端厂商加入到Android联盟中来,可以使其拥有更多的开发者;②丰富的硬件选择:这一点还是与Android平台的开放性相关,由于Android的开放性,它拥有千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容;③方便开发:Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,因此会有新颖别致的软件会诞生;④Google应用:Android平台能无缝结合优秀的Google服务,如地图。本文针对用户对大比例尺地形图测绘简易性和高效性的需求,介绍了基于安卓智能系统的大比例尺测图系统的整体结构和基本功能。
2系统设计
2.1系统优点
基于安卓开发的地形图测绘系统与便携式计算机、平板电脑、工业级的PAD设备相比较具有以下优点:①体积小、重量轻、适合于野外工作的优点;②与便携式计算机、工业级的PAD设备相比,价格便宜、成本低;③能耗较低,续航能力强,拥有与之配套的便携式电源;④可触屏绘制图形,反应速度快,工作效率高。
基于安卓开发的地形图测绘系统与测绘外业工作的适宜性特点:①超大屏幕:7英寸(1024×600 像素)或10英寸的屏幕,完全可以满足地形图测绘外业工作的需求;②CPU:双核或四核,完全可以胜任地形图测绘的野外数据采集任务;③摄像:可以现场录制测绘现场的视频,减少外业巡查,提高效率;④拍照:定点记录现场观测的信息,为内业数据处理提供现场影像资料;⑤录音:记录外业调查的语音信息;⑥GPS:提供导航定位功能,记录一定精度范围内定位信息,辅助踏勘工作;⑦WIFI:可以方便的接入网络营运商提供的互联网服务,传输非涉密数据;在局域网内快速的与网络工作站交换数据,上传数据到局域网服务器;⑧蓝牙:驱动控制测量仪器、与测量设备交换数据、备份或恢复数据;⑨USB:驱动控制测量仪器、与测量设备交换数据、备份或恢复数据;⑩SD 存储卡:大容量SD卡可用作软件安装和数据存储。
2.2系统的数据流程
根据测图系统中数据采集的特点,系统的数据流程,如图1所示。
2.3系统结构
本地形图数据采集系统是以智能平板电脑(或智能手机)为载体,在安卓平台下使用Java 作为编程语言来开发的野外数据采集平台,集数据、图形、属性采集、编辑于一体的外业数据采集系统。该数据采集系统具有可视化、可触控、面向对象的操作界面、完整的地图符号和先进的编辑功能,可以同步采集数据、图形和地物属性,也可以在野外只采集数据或者图形,再进行图形的编辑和属性的匹配。用户可根据自己的需要和习惯选择方便自己的作图方式,利用图形编辑系统和属性管理系统,对于已作的图形可以进行再编辑和属性的更改。使成图效率成倍提高,系统结构示意图,如图2所示。
3系统功能
系统主要包括图根控制、碎部测量、图形编辑、图形(数据)查看、距离量算、坐标量测等基本功能模块。
3.1图根控制
(1)控制点管理:该功能主要实现对测区内测量控制点的管理,包括把控制上传到全站仪等采集设备、对控制点进行添加、删除、修改、查询等,并实现在地形图中自动绘制控制点符号。
(2)图根导线测量及平差:包括图根导线的基本设置,如方向、斜距、天顶距测回数、限差等。测量结束后利用简易平差原理,开发导线简易平差功能进行导线平差计算,可处理符合导线、闭合导线、支导线、无定向导线。平差结果及原始观测数据自动生成报表输出。对于导线中的一个粗差可以自动探测。
(3)自由设站:支持全站仪自由设站法的测量方式,包括已知点的观测、错误检查、坐标计算及存储等功能。
(4)寻点功能:利用设备的GPS定位功能,通过求解测区的坐标转换参数,可以速度找到测区的控制点大致点位,设站定向更迅速。
3.2碎部测量
碎部测量是数据采集的一个主要功能,程序中提供了两种基本的测量方式:极坐标法测量、直角坐标法测量。极坐标测量中通过填写图块代码,连接点,连接线型,可实现对应的图形连接和属性编码。也可通过触摸屏幕进行逐点连接,或按各点测量的顺序依次自动连接。在碎部测量中,碎部点坐标可以通过仪器设备采集得到,也可以根据现有的图形关系计算得到。
3.3碎部点坐标测算及连码处理
碎部点坐标测算是利用已有的基本碎部点通过一定的几何关系计算出未知点,并将点显示在屏幕上。系统中提供的方法包括:直角折点、直线相交、边长交会、矩形2点、矩形第4点、方向直线交会、垂线直线交会、内插点、对称点、垂足点、直线定点、方向线支距、直角偏距等。
系统开发提供一种更为简单的连码处理方式。它既提高了作业速度,又减轻了作业人员的劳动强度,它在生成测算点坐标的同时,也生成了相应的图块。主要可提供的方法包括:一点矩形、两点矩形、3 点矩形、直角折线、方向伸缩、直角隔点、过点平行线、距离平行线等。
图形编辑包括对图形的浏览、对图块和点的编辑等功能:①图形的浏览,包括图形的移动、放大(开窗放大) 、缩小、全图;②图块的编辑,包括对图块的删除、复制、粘贴、图块属性的修改。同时也可通过属性代码进行图块的添加;③点的编辑,包括点的属性修改、点的删除、点的添加等;④图层控制,系统的数据按地物特点分层放置,可以通过图层控制功能来开关显示相应图层,以提高图形显示速度,便于用户的各种编辑处理。
3.5数据转换
系统开发需提供数据转换接口,实现将外业采集的图形数据生成各种数字化成图软件或图形处理软件的交换数据文件格式,系统支持DWG(CAD),DXF,SVF(威远图) ,CAS(南方) ,EBP/ EBF(瑞得)、SHP(ARCGIS)等数据文件格式。
4系统的特点
(1)根据测量人员的作业习惯和要求进行开发,提供了更友好、操作更方便的用户界面。
(2)在数据存储过程中,采用面向对象的概念来管理地物(图块) ,这样就能很方便地对数据进行增删改,包括图形及属性数据。
(3)系统开发必须具有对所采集的数据均进行了数据的完整性和图形与属性的一致性的检查的功能,以便满足各种专题地理信息系统对外业数据采集和数据建库的需求。
(4)除支持全站仪等作为数据采集设备外,还支持通过GPS-RTK直接采集地形数据。
5结束语
目前,数字测图技术已经取代传统的手工测图方式,数字地图产品也成为最主要的地图产品。我国已有商品化的大比例尺地面数字测图系统,但尚存在某些问题,其中最主要而突出的问题是外业采集数据手工绘制草图较为繁琐,作业速度慢,内业成图时需对照草图手工绘制图形,工作效率低下;已有的掌上测图系统多采用非智能平台开发,数据传输不便,成本高,设备功耗大,无法长时间使用,无法大范围推广使用。
基于安卓智能移动系统的外业数据采集系统,充分利用了平板电脑体积小、重量轻,运行速度快,便于携带,低能耗,工作时间长等优点,在最佳的测量条件下进行最多的测量作业,减少测量环境对测量数据精度的影响;同时可视化界面的操作系统,具有良好的图形显示、图形编辑和交互操作的特性,实现即测即显,大大减轻内业工作量,提高了工作效率。
摘要:自从安卓手机操作系统以来,它便以开放性、不受束缚、丰富的硬件、方便开发等优势风靡全世界,我们利用安卓手机平台,开发了一款旅游社交平台软件,该软件采用安卓Sdk4.0进行开发,采用了C/S模式,可以节省网络资源,简单,易用,服务器端采用Java Web开发,数据库采用了免费的Mysql。它可以给用户提供你最想要的旅游栏目,让你置身于朋友的海洋之中,从此出行旅游更加方便。
关键词:Android平台应用开发;旅游社交平台
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。大学生从高中升入大学,犹如一下子从“地狱”进入了“天堂”,有着大量的课余时间,但是往往他们无法合理利用,大多蜗居在宿舍里打游戏,费心劳神,因此开发一款基于安卓平台的旅游社交软件,帮助大学生走出教室,走出宿舍,到自然中,去锻炼,去陶冶情操,最大程度的满足他们旅游交友的需求。
1 基于安卓平台旅游社交软件的需求分析
这个平台主要包括3个子系统,它们分别是:1)发起活动子系统;2)参加活动子系统;3)后台管理子系统;4)活动分享子系统。如图1所示。
在活动发起子系统中包括以下几个功能:1)活动申请;2)活动信息管理;3)活动资料查询;4)活动上报申请。
在参加活动子系统中包括以下几个功能:1)活动参加;2)活动资料查询;3)参加活动申请。
在后台管理子系统中包括以下几个功能:1)用户管理;2)公告管理;3)权限管理;4)分类管理;5)系统维护。
在活动分享子系统中包括以下几个功能:1)活动评价分享;2)活动图片分享。
2 旅游社交平台的总体设计
2.1 软件总体设计
根据我们定义的需求分析,我们给出了旅游社交平台软件总体设计,客户端运行在安卓手机上,服务器端运行在Tomcat上,数据库采用Mysql数据库,开发语言采用了最流行的Java语言进行开发,以下是整个软件的整体架构图,Android前台界面负责数据的采集和展示,Android端HTTP组件负责将前台界面采集到的数据封装成HTTP协议发到Servlet上,Servlet负责接收HTTP协议的数据,然后解析,调用相应的业务方法,Server端业务层负责从数据库中采取数据交给Servlet,Servlet把封装的json数据再发到HTTP组件,HTTP组件解析数据,再发往前端进行展示,如图2所示。
2.2数据库设计
2.2.1 数据库中所需的各种表
2.2.2 数据库概念模型和物理模型的设计
设计数据库时,我们可以采用sybase公司的powerDesigner来进行数据库设计,使用powerDsigner工具设计时,首先设计数据库概念模型图,它的功能和数据库E-R图十分类似,好处在于,可以使用powerDesigner工具轻松的转成数据库物理模型,然后再借助powerDesigner工具可以很轻松的生成SQL语句,从而大大方便开发。
2.3 详细设计
2.3.1 服务器端数据库工具类设计
为了更好的和数据库交互,减少开发工作量,我们对数据库操作冗余的代码做了一定的封装。这样就没必要频繁的写JDBC代码了,从而提高了程序内聚度。
2.3.2 各个业务Service的接口设计
接口在项目中就是一个业务逻辑,面向接口编程就是先把客户的业务提取出来,作为接口。业务具体实现通过该接口的实现类来完成。当客户需求变化时,只需编写该业务逻辑的新的实现类,通过更改配置文件(例如Spring框架)中该接口的实现类就可以完成需求,不需要改写现有代码,减少对系统的影响。 采用基于接口编程的项目,业务逻辑清晰,代码易懂,方便扩展,可维护性强。即使更换一批人员,新来的人依然可以快速上手。对于团队来说,意义更大。
2.3.3 各个服务接口的实现
在设计好接口之后,我们就可以编写程序来实现各个接口了。在这个过程中我们也体会到了协同工作的效率。我们几个开发人员就可以并行的进行开发,然后再把代码提交到Svn代码管理工具上,从而很大程度上提高了工作效率。
2.3.4 各个服务所对应的Servlet的编写
Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:1)客户端发送请求至服务器端;2)服务器将请求信息发送至Servlet;3)Servlet生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;4)服务器将响应返回给客户端,如图3所示。
一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。
2.3.5 GoGoGo数据编码问题的解决
我们把安卓数据客户端所获取的数据通过HTTP协议传送到服务器端,由Servlet来获取数据,由于Tomcat默认编码是ISO8859-1,因此在后台获取中文数据时会遇到乱码。解决办法是:1)要重写HttpServletRequestWrapper下面的getParameter()方法,在这个方法对获取到的数据,重新用UTF-8编码。
2)在Filter中对每个请求过滤,调用HttpServletRequsetWrapper重写的getParameter()方法,再把请求传说出去,就完成了过滤请求,如图4所示。
2.3.6 前台和后台数据交互的问题
Android前台发送数据给服务器后台应用程序(Servlet),Servlet处理后,要给前台返回数据,数据格式如何选择将是一个非常重要的问题,因为JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于阅读和编写,同时也易于机器解析和生成。所以我们采用了json作为前后台数据交换的数据格式。
2.3.7 前台向后台如何传送数据问题
我们编写了一个HTTP数据传送工具,负责Android前台和Server后台的数据传送。因为是HTTP协议是基于TCP协议的,所在Android前台和Server建立连接需要进行3次握手,连接建立成功后,才进行传送数据。当释放连接时,需要进行4次握手才能释放连接,如图5所示。
2.3.8 数据加密问题
一个优秀的软件,在确保功能实现的同时,另外一个不得不考虑的问题便是如何保障用户数据的安全,对于用户重要的数据,我们非常有必要对其进行加密后再保存,现在比较流行的信息摘要算法有MD5和SHA1,对于这两种算法,主流的编程语言都有对其实现,因此用起来方便又安全。
2.4 旅游社交平台测试
软件测试是软件开发环节中非常重要的一环,软件测试是帮助识别开发完成的计算机软件的正确度、完全度和质量的软件过程;是SQA的重要子域。它主要包括单元测试,集成测试,系统测试,还有验收测试几个大项。
2.4.1 单元测试
在单元测试环节中,Android端采用了Android自带的单元测试工具AndroidTestCase,服务器端我们采用了Junit4测试工具,对每一个业务方法进行了测试,确保正确后才进行下一步开发。
2.4.2 集成测试
在单元测试通过的基础上,我们将所有模块按照设计要求组成子系统,进行集成测试,从而发现在单元测试中没有发现的Bug,尽早的修改,降低项目风险,主要使用的测试工具是Selenium.
2.4.3 系统测试
在集成测试完成的基础上,我们完整的对旅游社交平台进行了系统测试,测试我们的功能是否达到了当初的设计要求,测试其容错能力和恢复能力。
2.4.4 测试结论
系统功能的测试结果显示,基于安卓平台旅游社交平台能够正常使用。各功能都可支持,满足了预期设计。
3 结束语
经过我们的努力,我们终于完成了一个简易社交平台的设计和开发,基本上满足了当初的设计要求,能够方便大学生的郊游和交友的需求,总之项目还是比较成功的,但是也存在着一些不足,比如在软件架构设计上肯定达不到很高的水准,总之我们会继续努力,争取使其更加完美。
摘 要:安卓手机软件的开发是根据用户的需求建立起来的安卓软件或者系统中的软件的部分过程,安卓手机软件的开发是一项主要包括需求上捕捉、需求的分析、以及设计、实现和测试的一个系统的工程。软件一般是通过某种程序设计的语言来实现的,目前最常用的就是Java语言,通常采用软件开发工具进行开发。本文主要针对基于Java语言的安卓手机软件开发进行研究。
关键词:Java语言;安卓手机;软件开发
1 安卓软件应用程序
总体来说,一般比较简单的安卓应用程序主要由Activity、Content Provider、Service、Intent等部分组成,其中Activity相对于其他的应用程序对话框或者其他的网络应用程序的页面窗口来说,安卓手机提供多个使用的数据存储,同时他也被设计成为独立的可以保持自己在后台运行的服务,Intent是在运行的时候自动保存的机制,用来具体的描述一个程序想要作一件什么事情、从一个活动跳到另外一个活动,对于Intent来说,各个活动之间的切换是很方便的。
2 安卓手机软件的架构
2.1 应用程序
安卓手机软件会跟同一系列的核心的应用程序一起,该应用的程序还包括一些客户端,短消息的程序,日历、地图、浏览器等等的管理程序,所有的应用的程序都是利用Java语言来进行编写的。Java最大的特性就是提高了交互的可能性。
2.2 应用程序的框架
开发的人员可以完全的访问核心的应用的程序所使用的主要的框架,该程序的框架的设计简化了的一些重组的组件的使用的频率,在任何的时候一个应用程序可以同时的出它的功能并且在任何的时候都能够将其他的应用程序使用其主要的的功能性质的模块,不过得主要遵循框架的安全性的主要的限制。同时,还要将这些使用的机制也可以使用户也可以方便的替换主要的应用程序。
2.3 程序库
安卓手机包括C语言的程序,这些程序能够将安卓系统中的不同的组件的使用,他们还能够通过安卓的应用程序的框架为其主要的开发者提供服务。这个程序库里面的主要的内容就是Java语言的应用。
2.4 运行库
安卓系统的主要的运行库包括了一个核心的库,这个核心的库提供了Java的一些编程的语言的核心的大多数的主要的功能。安卓的手机软件的核心的服务的系统主要依赖Java的编程的语言,比如说安全性、内存的管理、进程上的管理等等的性质,主要的网络上的协议和驱动的模块,他都占有一个很大的比重。Java同时也作为硬件和软件之间的抽象的核心层面来存在。
3 Java语言的特点
3.1 面向对象
面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。
所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。
3.2 可靠性和安全性
Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。Java虽然源于C++,但它消除了许多C++不可靠因素,可以防止许多编程错误。首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。
由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。
上述几种机制结合起来,使得Java成为安全的编程语言。
4 安卓手机软件系统的开发优势
企业为什么要开发安卓手机软件,不仅仅是因为他有强大的谷歌作为后盾,并且还开放了软件开发的组件,可以将第三方的开源的主要的社区方便快捷的开发众多的实用性的安卓手机应用程序,而且他还与手机产业链中最具有影响力的龙头性的公司进行联合,建立非常标准的、开放化的通信的软件的平台,也就是说只要是采用安卓操作系统的主要的平台,就是基本上不受硬件的限制,程序的主要的可移植性能比较好,能够很好的解决当前的由于众多的手机操作系统的不同而造成的不同的智能手机之间的格式不一样从而造成不同的手机之间不能进行信息交流的问题。
安卓手机在中国的应用前景十分的广泛,首先是具有成熟的消费者,在国内,安卓系统非常的好用,这些软件的普及为了安卓系统的普及提供了主要的前提,国内的一些主要的运营商也加入了这个大家庭,比如说中国移动、中国联通、中兴通讯、华为通讯等等的一些比较大型的企业,同时也不仅仅是手机,我们国家也推出了安卓手机软件的其他的一些产品,我们可以预见安卓系统被广泛的应用,同时也将进一步扩大安卓系统的应用的主要的,同时根据目前的资料进行分析,全国到目前为止已经有23亿部的移动的设备使用安卓软件,其中手机占有百分之六十。
安卓系统在中国掀起的浪潮让越来越多的企业认识到移动设备对于中国产业的影响,企业安卓客户端的开发也受到了企业的一些关注,目前来说我们国家手机软件开发正处于高速增长的阶段经过一路的研究和探索和经验的总结,涌现了一大批的致力于开发的互联网的在线的传播的解决的方案的主要的运营商,主要是将手机应用软件的开发和推广,移动互联应用开发以及涉及安卓的手机平台,智能手机的应用开发的服务已经涵盖了很多的地方。安卓手机软件能够实现互交形式的完成,并且以此来为企业提供互联网的应用的解决的方案。
5 结束语
随着社会的发展,科技的创新脚步也越来越快,手机也慢慢的进入我们的视野之中,成为了我们生活中的必不可少的一些物品,随着Java语言在手机领域中的开发,手机上的软件大部分都是在他的基础上进行开发的,在其应用开发中应用也十分广泛,也依然占有着不可或缺的地位。