android跑步应用开发Word格式.docx
- 文档编号:18649714
- 上传时间:2022-12-30
- 格式:DOCX
- 页数:28
- 大小:1.26MB
android跑步应用开发Word格式.docx
《android跑步应用开发Word格式.docx》由会员分享,可在线阅读,更多相关《android跑步应用开发Word格式.docx(28页珍藏版)》请在冰豆网上搜索。
经过这几年的发展,它已经发展成了一个平台、一个生态体系。
现在Android在移动领域已经得到了广泛的应用。
根据Google于2011年6月份公布的数字,每天激活的Android设备高达50万台,今天,施密特再次更新了这一数据——现在,每天被激活的Android设备数量达到了150万份。
谷歌安卓系统负责人桑德尔·
湃柴(SundarPichai)2013年09月宣布,采用安卓移动操作系统设备的激活量已经超过10亿台。
在全球销售的智能手机中,有四分之三采用安卓操作系统,并且有越来越多的平板电脑采用这个操作系统。
相比于Symbian的日落西山,以及苹果的封闭、WindowsPhone的前途未卜,Android无疑代表了当前行业发展的主流趋势:
开放平台取代了封闭平台。
让参与者均能通过自己的努力而获益。
从2008年9月公布1.0版本以来,经过近几年的跨越式发展,现在Android已经发展到了4.4版本。
2013年9月4日凌晨,谷歌对外公布了Android新版本Android4.4KitKat(奇巧巧克力),并且于2013年11月01日正式发布,新的4.4系统更加整合了自家服务,力求防止安卓系统继续碎片化、分散化。
目前市场上占主流的并不是4.4版本,当然,相信随着时间的推移,4.4及后续版本会得到越来越多的设备的支持。
1.2国内外研究现状
目前国内的Android开发还是主要以应用开发为主,主要分成3类:
为企业开发应用、开发通用应用(放到AndroidMarket或者其他AppMarket销售)以及游戏开发(放到AndroidMarket或者其他AppMarket销售)。
第一类开发者一般身处规模较大的公司,这些公司主要为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。
除了根据需求对系统进行定制外,更多的工作在于为这些系统编写定制的应用。
第二类开发者,一般处于创业型公司或者是独立开发者,他们的盈利方式主要是2种:
为国外公司进行外包开发,或者通过Google的移动广告(AdMob)通过广告点击分成。
而理论上的通过付费下载的形式来盈利的,现在国内鲜见成功者。
第三类开发者,目前和第二类开发者类似。
北京时间4月15日晚间消息,移动应用分析公司AppAnnie今日发布报告称,今年第一季度,谷歌GooglePlay应用商店在下载量方面依旧主导全球市场。
报告称,第一季度GooglePlay全球应用下载量较AppStore高出45%,这主要得益于新兴市场的推动,如俄罗斯、巴西、墨西哥和土耳其,其发展速度令无数人惊叹,而Android产品占中国整体智能手机销量的更是令其他系统无法企及,这些数字意味着庞大的市场,自然能让应用开发商欲罢不能,但Android碎片化的多版本问题正愈演愈烈。
两相比较间,不少开发商陷入了两难的境地。
在Android开发者官方网站上,不少开发者亦吐露出“抓狂”的情绪。
由于本质为开源,Android系统发展至今,几乎完全脱离了谷歌的控制,其花费巨大开发的新版本系统往往在手机厂商需要为新品添加噱头的时候才会用上。
1.3研究内容与目标
根据如今安卓设备的普及,以及现如今人们越发的重视身体的健康,开始在闲暇的时间开展一些体育活动,一些与健康相关的安卓应用被人们需要,也更显现出它们的实用性。
而我开发的则是一款基于安卓的跑步软件。
它可以实现利用GPS以及XX地图API实现记录用户跑步路径以及跑步距离的功能。
理论技术基础
1.4理论基础
1.4.1.系统内核
Android是运行于Linuxkernel之上,但并不是GNU/Linux。
因为在一般GNU/Linux里支持的功能,Android大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。
Android又以Bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。
Android为了达到商业应用,必须移除被GNUGPL授权证所约束的部份,例如Android将驱动程序移到Userspace,使得Linuxdriver与Linuxkernel彻底分开。
Bionic/Libc/Kernel/并非标准的Kernelheaderfiles。
Android的Kernelheader是利用工具由LinuxKernelheader所产生的,这样做是为了保留常数、数据结构与宏。
Android的Linuxkernel控制包括安全(Security),存储器管理(MemoryManagement),程序管理(ProcessManagement),网络堆栈(NetworkStack),驱动程序模型(DriverModel)等。
下载Android源码之前,先要安装其构建工具Repo来初始化源码。
Repo是Android用来辅助Git工作的一个工具。
1.4.2.后缀简介
APK是安卓应用的后缀,是AndroidPackage的缩写,即Android安装包(apk)。
APK是类似SymbianSis或Sisx的文件格式。
通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。
apk文件和sis一样,把androidsdk编译的工程打包成一个安装程序文件,格式为apk。
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是DalvikVMexecutes的全称,即AndroidDalvik执行程序,并非JavaME的字节码而是Dalvik字节码。
APK文件结构
一个APK文件结构为:
1.META-INF\(注:
Jar文件中常可以看到);
2.res\(注:
存放资源文件的目录);
3.AndroidManifest.xml(注:
程序全局配置文件);
4.classes.dex(注:
Dalvik字节码);
5.resources.arsc(注:
编译后的二进制资源文件)。
总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接执行安装,和WindowsMobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的WindowsGadgets或者说WPF也采用了这种构架方式。
在Android平台中dalvikvm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。
最终我们平时安装的文件可能不是这个文件夹,而在androidrom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。
1.4.3.硬件抽像层
Android的HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。
HAL的目的是为了把Androidframework与Linuxkernel隔开,让Android不至过度依赖Linuxkernel,以达成Kernelindependent的概念,也让Androidframework的开发能在不考量驱动程序实现的前提下进行发展。
HALstub是一种代理人(Proxy)的概念,Stub是以*.so档的形式存在。
Stub向HAL“提供”操作函数(Operations),并由Androidruntime向HAL取得Stub的Operations,再Callback这些操作函数。
HAL里包含了许多的Stub(代理人)。
Runtime只要说明“类型”,即ModuleID,就可以取得操作函数。
1.4.4.中介软件
操作系统与应用程序的沟通桥梁,应用分为两层:
函数层(Library)和虚拟机(VirtualMachine)。
Bionic是Android改良libc的版本。
Android同时包含了Webkit,所谓的Webkit就是AppleSafari浏览器背后的引擎。
Surfaceflinger是就2D或3D的内容显示到屏幕上。
Android使用工具链(Toolchain)为Google自制的BionicLibc。
Android采用OpenCORE作为基础多媒体框架。
OpenCORE可分7大块:
PVPlayer、PVAuthor、Codec、PacketVideoMultimediaFramework(PVMF)、OperatingSystemCompatibilityLibrary(OSCL)、Common、OpenMAX。
Android使用skia为核心图形引擎,搭配OpenGL/ES。
skia与LinuxCairo功能相当,但相较于LinuxCairo,skia功能还只是雏形的。
2005年Skia公司被Google收购,2007年初,SkiaGL源码被公开,Skia也是GoogleChrome的图形引擎。
Android的多媒体数据库采用SQLite数据库系统。
数据库又分为共用数据库及私用数据库。
用户可通过ContentResolver类(Column)取得共用数据库。
Android的中间层多以Java实现,并且采用特殊的Dalvik虚拟机(DalvikVirtualMachine)。
Dalvik虚拟机是一种“暂存器型态”(RegisterBased)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。
Dalvik虚拟机可以有多个实例(Instance),每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。
Dalvik虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。
1.4.5.安全权限机制
Android本身是一个权限分立的操作系统。
在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(Linux用户ID与群组ID)。
系统的各部分也分别使用各自独立的识别方式。
Linux就是这样将应用与应用,应用与系统隔离开。
系统更多的安全功能通过权限机制提供。
权限可以限制某个特定进程的特定操作,也可以限制每个URI权限对特定数据段的访问。
Android安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。
这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。
安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。
从用户角度看,一款Android应用通常会要求如下的权限:
拨打电话、发送短信或彩信、修改/删除SD卡上的内容、读取联系人的信息、读取日程信的息,写入日程数据、读取电话状态或识别码、精确的(基于GPS)地理位置、模糊的(基于网络获取)地理位置、创建蓝牙连接、对互联网的完全访问、查看网络状态,查看WiFi状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄图片等。
一款应用应该根据自身提供的功能,要求合理的权限。
用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全。
如一款应用是不带广告的单机版,也没有任何附加的内容需要下载,那么它要求访问网络的权限就比较可疑。
1.4.6.百度地图定位
XX地图Android定位SDK是利用设备当前的GPS信息(GPS定位),基站信息(基站定位)和Wi-Fi信息(Wi-Fi定位)完成定位的。
开发者在应用中成功集成XX定位SDK以后,既可以方便的通过定位SDK的接口向XX定位服务请求位置信息。
定位SDK会根据设备当前的实际情况(如是否开启GPS,是否连接网络,是否扫描到Wi-Fi信息等)生成定位依据,并根据开发者设置的实际定位策略(包括三种:
高精度模式,低功耗模式,仅用设备模式)进行定位。
1.5技术基础
本次开发主要用到AndroidSDK以及XX地图的API,开发工具采用Eclipse导入Android开发包、XX地图API以及XX定位技术的API,如图2.2
而在安卓应用的开发过程中,需要使用的安卓模拟器,而本次开发前期所使用到的则是Android自带模拟器。
自带的模拟器主要用于检查控件的功能以及设计是否完善。
由于本次开发需要用到GPS以及移动网络的支持,开发中主要功能的测试依赖于移动安卓设备。
选用的设备为三星i9500,即三星GalaxyS4。
三星SamsungGalaxyS系列新一代的旗舰GalaxyS4它采用了像素密度为441ppi(480dpi)的5吋1080p(1,920x1,080)SuperAMOLEDHD屏幕和2GBRAM,处理器根据地区不同分为两种版本,国际版为双四核1.6GHz+1.2GHz的Exynos处理器,定制版本是四核1.9GHz的高通骁龙600处理器或骁龙800处理器,配备有1280万后置摄像头和210万像素的前置摄像头,支持蓝牙4.0技术和NFC近场通讯等功能。
上市时预载的系统是Android4.2.2。
使用的设备定位以及对软件支持方面能够非常出色的满足开发要求,测试是开发中不可忽视的重要环节。
系统分析与设计
1.6需求分析
1.6.1.编写目的
现在的人们越来越重视健康,因此出现了许多跑步爱好者。
而他们需要一些工具来记录自己跑过的路径和跑步的距离,以此来判断自己的运动程度是否达到自己满意的程度。
而现在多数人都拥有Android设备,并且考虑到Android的开源性,Android的开发相对比较实际。
所以本次要开发一个基于Android系统的跑步软件。
1.6.2.
术语定义
vActivity:
Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,ContentProvider内容提供者,BroadcastReceiver广播接收器)之一。
Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。
Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件。
在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。
Activity之间通过Intent进行通信。
vIntent:
Intent(意图)主要是解决Android应用的各项组件之间的通讯。
Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。
因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。
vXX定位SDK:
XX地图Android定位SDK是为Android移动端应用提供的一套简单易用的LBS定位服务接口,专注于为广大开发者提供最好的综合定位服务,通过使用XX定位SDK,开发者可以轻松为应用程序实现智能、精准、高效的定位功能。
vXX地图SDK:
XX地图AndroidSDK是一套基于Android2.1及以上版本设备的应用程序接口。
您可以使用该套SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问XX地图服务和数据,构建功能丰富、交互性强的地图类应用程序。
vAPI:
API(ApplicationProgrammingInterface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
1.7总体设计
1.7.1.系统功能
针对本系统的设计,主要实现两个功能:
a.用户在使用时,可以通过地图随时查看跑步的路径
b.用户在使用时,可以随时查看自己已经跑过的距离
通过这两个功能可以让用户做到对自己的运动状况有所掌控,对自己的运动情况心中有数。
1.7.2.软件结构
本系统共有一个Activity,在这个Activity中要实现查看地图,查看跑步距离。
则要分出地图定位模块,距离计算以及路程记录模块。
1.7.3.
程序流程图
当用户进入到界面后,选择开始按钮,则开始计时并且记录跑步的数据,在界面上输出用户跑步的距离;
这时候用户可以选择查看地图或者暂停;
当查看地图用户选择查看地图后,可以看到自己跑步的路线,可以对地图进行缩放;
然后用户可以关闭地图,回到主界面,使地图在后台运行;
最后用户可以选择关闭应用程序。
1.8详细设计
1.8.1.总体界面设计
a.主界面
b.开始跑步界面
c.地图界面
1.8.2.模块功能设计
系统分为两个模块:
定位模块与绘制地图模块
虽然分为两个模块,但是两个模块之间并不是完全没有关联,因为在定位的同时要绘制用户经过的线路。
而且记录用户跑步的距离并不能只记录用户的起点和终点,因为XX地图计算的是两点之间的直线距离,只是依据起点和终点来计算将会造成计算出的距离与用户实际跑步的距离不相符合的情况。
而这里用到了数学中“微量元素”的思想。
记录用户短时间内的起点与终点之间的距离,然后将这些短时间运动的距离相加最终可近似的得到用户跑步的最终距离。
这样的方式所得到的距离误差小到可以忽略不计,而且绘制出来的跑步路径也最接近用户真实的跑步路线。
a.定位模块
这个模块中需要初始化地图信息以及定位信息,设置定位相关的参数,并且在用户开始跑步后立即启动定位功能。
而这个定位相应的用到了XX定位SDK以及XX地图SDK。
通过调用XX地图的接口,可以实时获得用户当前的位置,即用户当前位置的经度纬度坐标。
在这个模块中,将地图以及定位信息初始化,同时设置按钮的监听,一旦用户开始跑步,立即开启定位功能,在后台每隔很短的一段时间获取用户的经度纬度坐标。
b.绘制地图模块
这个模块中要绘制用户跑步的路径,将其在XX地图上标记出来,并且同时统计用户跑步的距离。
计算距离的方式上文中已经说明,在此不再赘述。
这并不是一个独立的模块,这个模块需要在上一个模块的基础上来操作。
而绘制的路线相当于在XX地图上新增加的图层上进行绘制。
但是在用户看来只是一个图层。
而绘制路线的方式也是用折线来近似表示曲线,在视觉上看来并没有偏差。
而绘制路线以及计算距离需要用到XX地图API,对XX地图提供的接口加以更改就可以达到本次开发的目的。
系统实现
1.9主要界面
界面大约有三个主要的界面,分别为主界面,跑步开始界面以及查看地图界面。
当用户打开应用便进入主界面,在这里用户可以开始跑步,也可以退出应用。
跑步开始便显示用户跑步
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android 跑步 应用 开发
