应用程序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开发应用程序的过程,探讨时更强调中间的步骤,而不看重最后的结果.
为小型设备开发应用程序要面临独特的挑战,但是与任何其他平台相比并无太大差别.
做好任何软件开发项目的诀窍无非是在每个阶段做出明智的决定.

易探云(QQ音乐绿钻)北京/深圳云服务器8核8G10M带宽低至1332.07元/年起

易探云怎么样?易探云香港云服务器比较有优势,他家香港BGP+CN2口碑不错,速度也很稳定。尤其是今年他们动作很大,推出的香港云服务器有4个可用区价格低至18元起,试用过一个月的用户基本会续费,如果年付的话还可以享受8.5折或秒杀价格。今天,云服务器网(yuntue.com)小编推荐一下易探云国内云服务器优惠活动,北京和深圳这二个机房的云服务器2核2G5M带宽低至330.66元/年,还有高配云服务器...

racknerd新上架“洛杉矶”VPS$29/年,3.8G内存/3核/58gSSD/5T流量

racknerd发表了2021年美国独立日的促销费用便宜的vps,两种便宜的美国vps位于洛杉矶multacom室,访问了1Gbps的带宽,采用了solusvm管理,硬盘是SSDraid10...近两年来,racknerd的声誉不断积累,服务器的稳定性和售后服务。官方网站:https://www.racknerd.com多种加密数字货币、信用卡、PayPal、支付宝、银联、webmoney,可以付...

TabbyCloud周年庆&七夕节活动 美國INAP 香港CN2

TabbyCloud迎来一周岁的生日啦!在这一年里,感谢您包容我们的不足和缺点,在您的理解与建议下我们也在不断改变与成长。为庆祝TabbyCloud运营一周年和七夕节,TabbyCloud推出以下活动。TabbyCloud周年庆&七夕节活动官方网站:https://tabbycloud.com/香港CN2: https://tabbycloud.com/cart.php?gid=16购买链...

git 使用为你推荐
木马病毒木马病毒是什么?邮箱群发如何在电子邮箱中实现群发邮件?站长故事爱迪生发明东西的故事湖南商标注册湖南商标注册最好的公司iphone越狱后怎么恢复苹果手机越狱后怎么恢复ios7固件下载iOS7如何升级固件?怎么点亮qq空间图标QQ空间图标怎么点亮?lockdowndiphone4s 完美越狱5.1.1时出现Could not connect to lockdownd。求救啊!!ios系统ios是什么意思 ios系统是什么小米手柄小米蓝牙游戏手柄怎么连接游戏
便宜的虚拟主机 网通vps linuxvps 万网免费域名 购买域名和空间 westhost simcentric sockscap 双拼域名 谁的qq空间最好看 东莞数据中心 服务器是干什么的 免费测手机号 搜索引擎提交入口 shopex主机 银盘服务是什么 新睿云 华为云盘 美国独立日 创建邮箱 更多