应用程序git

git 使用  时间:2021-02-24  阅读:()

版权所有IBM公司2009商标为NokiaN810开发感知GPS的应用程序,第3部分:完成最后的任务第1页,共6为NokiaN810开发感知GPS的应用程序,第3部分:完成最后的任务部署、bug报告和修复、迭代开发和最终发布PaulFerrillCTOATAC2009年4月08日这个系列的文章展示如何使用基于Linux的NokiaN810InternetTablet及其内置GPS接收器构建感知全球定位系统(GPS)的应用程序.
在这个分3部分的系列文章的最后一篇,您将完成开发GPS行程跟踪器(triptracker)的最后一步,并准备发布它.
查看本系列更多内容这个分3部分的系列的第1部分和第2部分介绍了用于为NokiaN810InternetTablet构建感知全球定位系统(GPS)的应用程序的工具和技巧.
编写该程序的想法源自跨国家庭旅行和一个经常被问到的问题:"我们到了没"如果有一个内置了GPS的可编程设备,就很容易得到答案.
只需装载一些路标,就可以放心地出发.
当应用程序的第一次迭代完成时,显然需要做出一些改进,使程序可用性更好.
实际上这与其他软件产品没什么不同.
关键是为收集用户反馈提供方便,然后对程序作必要的更改,融入新的特性.

要想让用户满意,修复所有bug也是非常重要的事情.
在开始发布新的应用程序之前,有很多问题需要解决.
可以选择在任意数量的软件发布站点上托管项目,不过对于像本文中这样的项目,Maemo站点是最好的选择,因为它惟一的目标平台就是NokiaInternetTablet系列.
如果想收集用户反馈,那么需要提供一个Web站点,或者至少提供一个e-mail地址.
部署Maemo平台使用Debian包发布软件.
在确定如何打包要发布的应用程序方面,Nokia为tablet开发人员提供了很好的帮助.
Maemo.
org站点提供了一套完整的教程来指导您完成该过程,同时最新发行版(Diablo)还附带了共545页的参考手册.
实际上,为了让应用程序正确运行,需要创建一个.
deb文件并包括所有必要的内容.
developerWorksibm.
com/developerWorks/cn/为NokiaN810开发感知GPS的应用程序,第3部分:完成最后的任务第2页,共6由于这个应用程序使用Python,为了确保程序能够运行,还必须做一些事情.
大多数现代Linux发行版在默认安装中都包括Python,所以通常可以认为已经有了Python解释器.
运行基于Python的应用程序需要在主要源文件的开头包括像下面这样的一行代码,从而启动Python解释器:#!
/usr/bin/python2.
5对于运行最新版本的OS2008的N810,应该在默认位置/usr/bin安装Pythonversion2.
5.
2.
第一行中的#!
指示命令行解释器尝试执行/usr/bin目录中的文件python2.
5.
然后,它将文件剩下的部分作为Python解释器的输入.
主脚本或源文件必须将其文件属性设置为允许执行.
可以用CHMOD命令手动设置,或者使用安装工具自动完成.
Python提供了多种方法用于安装应用程序,包括将源文件编译成一种更紧凑的格式.

对于本项目,我决定采用标准的Python安装工具,不编译代码.
PythonDistributionUtilities(Distutils)提供了基本工具用于将文件复制到适当的位置,并最终安装软件(请查看参考资料中一篇优秀Distutils教程的链接).
这里只需创建如清单1所示的一个名为setup.
py的文件.
清单1.
用于安装程序的Pythonsetup例程(setup.
py)fromdistutils.
coreimportsetupsetup(name='pyRWeThereYet',version='1.
0.
0',scripts=['pyRWeThereYet'],data_files=[('share/pixmaps',['RWeThr_icon_26x26.
png']),('share/applications/hildon',['pyRWeThr.
desktop']),])PyMaemo教程(请参阅参考资料)很好地描述了这个过程,并提供了一个样例"hello"应用程序.
在N810上安装应用程序的另一种方法是使用.
install文件来完成"一键式安装".
该文件是一个简单的文本文件,其中包含关于可将应用程序下载到其中的储存库的信息.
最后,需要在设备上测试部署,不过可以使用Scratchbox或ESbox(用于Eclipse的插件,参见参考资料)发现bug.
可以在不使用设备的情况下逐步完成整个测试,直到一切都符合预期.
对于整个开发过程也是如此,但是,对于像GPS这样需要依赖硬件的,还是需要使用设备.
bug报告和修复大多数开源项目都使用某种bug报告和跟踪工具来帮助管理用户提出的意见.
比较著名的有Sourceforge,将开源项目放到Sourceforge上是不错的选择.
Google也有类似的东西(请参阅参考资料).
Maemo.
org为与Maemo开发平台相关的项目在Garage站点(请参阅参考资料)上提供了基本相同的功能.
wiki也是一种很好的方式,它可以方便收集用户反馈和提供程序文档和信息.
Trac是一个基于Web的软件项目管理工具,其中包括一个用于管理项目文档和笔记的wiki(请参阅参考资料).
对于开发人员来说,跟踪bug和改进请求以及做出的相应更改十分重要.
可以在具有团队Read-Write访问权的Wiki上完成这些事情.
ibm.
com/developerWorks/cn/developerWorks为NokiaN810开发感知GPS的应用程序,第3部分:完成最后的任务第3页,共6源代码控制是跟踪软件修改的一个关键.
对于本文这样的小项目而言,执行源代码控制有点小题大作,但是对于具有较多模块的项目而言,这样做可以节省时间.
如果源代码很好地实行了模块化,那么需要有一种方式来跟踪应用程序在每次发布时包含了哪些模块(和版本).

ConcurrentVersioningSystem(CVS)是最早的版本控制包之一.
CVS是开放源代码的,几乎可用于任何平台.
Subversion(SVN)则是另一款可用于所有平台的开源工具.
GIT是用于版本控制的最新工具之一,它最初是由LinusTorvalds创建的.
对于有快速合并和分支之类需求的分布式团队来说,它有很多特别有用的特性(请参阅参考资料,获取这些工具的链接).
Eclipse集成开发环境(IDE)为CVS和Subversion提供了挂钩(hook).
如果您想详细研究这个过程,IBMdeveloperWorks上有一篇很好的文章讨论如何结合Eclipse使用CVS.
对于Subversion支持,则有Subclipse—一个Eclipse插件,其中包括一个图形化修改工具(请参阅参考资料).
用于Eclipse的GIT插件也正在开发中,您可以在GitWiki站点上了解它.
迭代开发以迭代方式开发应用程序就是根据用户反馈做出增量改进.
第1步是产生一个初始发行版供用户测试.
对于我来说,用户就是我的家人,反馈形式就是直接交流.
应用程序的第1版可以运行,但是没有提供一种方式让用户输入路标.
您可以获得与前一个地点的距离,但是仅此而已.
无论如何,它实际上只是一个概念证明,因此0.
1版的预期是非常低的.
这为很多软件开发项目提供了一个很好的观点.
当有了程序的一个版本时,收到像"这个程序确实简洁,但是可以让它这样做吗"这样的反馈并不鲜见.
需求诱导(requirementselicitation)这个过程让软件设计师或工程师可以尝试发现特定应用程序的所有功能和特性.
但是这种方法的问题在于,用户常常并不真正知道他们想要什么,经常改变想法,或者想到其他的东西.

对于这个项目,新的需求实现起来并不难.
0.
2版增加了按经度和纬度输入感兴趣的位置的功能.
可以添加感兴趣的地点的确不错,但是如果输错了地点,或者需要编辑或删除已有的条目,又该如何呢这些新的需求又导致了0.
3版.
对输入字段进行某种检查,这是一个不错的主意.
对于北美而言,经度和纬度数字有一个合理的上下限.
增加这些检查后,又引出一个用户bug报告,称发现一个潜在的有误的距离计算.
最后发现起因是用户在输入经度时有误(少了减号[-].
理解实现新需求的成本对于在合理的时间内产生新的版本非常关键.
有些特性请求偏离了原始的应用程序,常常超出了时间和资源可以承受的范围.
还有一些特性请求则超出了硬件可以提供的容量.
对于本项目,除非将设备连接到手机,否则不可能提供持续的实时位置更新—虽说这并非完全没可能,但是要支持这一个特性请求,需要增加大量的代码.
最终发布对于任何软件项目,一个最大的挑战是知道何时宣告胜利.
Google实行的做法是在很长时间内使项目处于"beta"阶段.
对于本项目,当修复了当前所有的bug,并且实现了所有用户改进时,就可以归档最终的发行版.
为了使应用程序尽可能地接近商业质量,还需要做一些收尾工作.
在N810应用程序启动器中创建一个入口点,将使用户可以更容易地启动程序.
Maemo使用.
desktop文件确定启动应用程序所需的细节.
对于这个GPS应用程序,它看上去如清单2所示.
developerWorksibm.
com/developerWorks/cn/为NokiaN810开发感知GPS的应用程序,第3部分:完成最后的任务第4页,共6清单2.
desktop文件的内容[DesktopEntry]Version=1.
0.
0Encoding=UTF-8Name=GPSAreWeThereYetExec=/usr/bin/pyRWeThereYetIcon=hello_icon_26x26Type=Application在freedesktop.
orgwiki站点可以发现更多关于.
desktop文件的信息.
另一个很好的收尾工作是提供一个图标.
对于Maemo环境,需要创建一个26X26像素的图像,并将它保存为PortableNetworkGraphics(PNG)格式.
可以使用GNUImageManipulationProgram(GIMP)之类的程序创建自己的图像,也可以用Google找到一个接近的图像,再相应地作一些修改.
结束语这个分三部分的系列文章探讨了为NokiaN810开发应用程序的过程,探讨时更强调中间的步骤,而不看重最后的结果.
为小型设备开发应用程序要面临独特的挑战,但是与任何其他平台相比并无太大差别.
做好任何软件开发项目的诀窍无非是在每个阶段做出明智的决定.

PacificRack:洛杉矶KVM月付1.5美元起,1G内存套餐年付12美元起

PacificRack在本月发布了几款特价产品,其中最低款支持月付仅1.5美元,基于KVM架构,洛杉矶机房,PR-M系列。PacificRack简称PR,QN机房旗下站点,主要提供低价VPS主机产品,基于KVM架构,数据中心为自营洛杉矶机房,现在只有PR-M一个系列,分为了2个类别:常规(Elastic Compute Service)和多IP产品(Multi IP Server)。下面列出几款秒...

A2Hosting三年付$1.99/月,庆祝18周年/WordPress共享主机最高优惠81%/100GB SSD空间/无限流量

A2Hosting主机,A2Hosting怎么样?A2Hosting是UK2集团下属公司,成立于2003年的老牌国外主机商,产品包括虚拟主机、VPS和独立服务器等,数据中心提供包括美国、新加坡softlayer和荷兰三个地区机房。A2Hosting在国外是一家非常大非常有名气的终合型主机商,拥有几百万的客户,非常值得信赖,国外主机论坛对它家的虚拟主机评价非常不错,当前,A2Hosting主机庆祝1...

香港ceranetworks(69元/月) 2核2G 50G硬盘 20M 50M 100M 不限流量

香港ceranetworks提速啦是成立于2012年的十分老牌的一个商家这次给大家评测的是 香港ceranetworks 8核16G 100M 这款产品 提速啦老板真的是豪气每次都给高配我测试 不像别的商家每次就给1核1G,废话不多说开始跑脚本。香港ceranetworks 2核2G 50G硬盘20M 69元/月30M 99元/月50M 219元/月100M 519元/月香港ceranetwork...

git 使用为你推荐
查看端口在电脑上怎么查看端口赵雨润情人节“我们约会吧”电影DVD_我们约会吧高清DVD下载_qvod快播??数码资源网有什么网站弄相片效果比较好的?今日热点怎么删除怎么删除手机百度实时热点安卓应用平台手机系统应用在哪苹果5怎么越狱苹果5怎么越狱?godaddy美国GODADDY 域名支持域名别名解析吗?开机滚动条怎么减少开机滚动条?淘宝网页显示不正常淘宝网显示不正常创维云电视功能什么是创维云电视啊?创维云电视是什么意思?
php主机租用 最新代理服务器ip 域名备案收费吗 域名解析服务器 3322动态域名 zpanel winhost 免备案空间 国内加速器 绍兴高防 dd444 100x100头像 怎么测试下载速度 如何用qq邮箱发邮件 卡巴斯基是免费的吗 空间购买 云营销系统 全能空间 广州服务器托管 paypal登陆 更多