1序言
随着手机功能的迅速发展,越来越多手机上的软件功能早已和个人计算机上的软件功能十分相仿。为此,手机也须要功能更强化大的操作系统作为支持。
基于Linux操作系统的手机软件平台,早已被觉得是下一代手机软件平台。
当前,早已有好多手机开发商开始采用手机软件平台。并且,手机软件平台在提供可靠的手机操作系统和优质软件的同时,须要耗费大量的时间、人力、财力进行创建。原始的手机软件平台开发方法除了效率低,并且对开发人员的技术水平的要求较高,须要经过大量的培训能够胜任,这必然会降低产品的开发成本。手机开发商们正在为创建属于自己的下一代手机软件平台找寻愈加便捷、高效的方式。
2基于Linux的手机软件平台
个人计算机由于拥有操作系统以及运行于操作系统之上的软件,而具有丰富的功能。同样,手机也在提供不断丰富的功能,须要强悍的操作系统和软件作为支持。与其它操作系统相比,采用开放源代码的Linux操作系统作为手机操作系统就能大大减少手机开发成本。开放源代码的另一个用处是容许手机生产商按照实际情况,有针对性地开发适宜自己手机的Linux操作系统,这样既能让自己的产品有特色,又能防止受制于人,还能否满足用户多方面的应用需求。
手机软件平台的概念可概括为:
(1)手机软件平台基于一定的硬件构架之上,特定的软件平台通常只能用于特定厂商的硬件体系;
(2)手机软件平台提供对应用程序的基础支持;
(3)手机软件平台自带一些应用;
(4)手机软件平台才能便捷的进行扩充,手机软件开发者才能在平台上便捷的完善新的功能,这也是最重要的功能之一。
手机软件平台构架在手机操作系统之上,通过具象层与不同操作系统进行集成。一个完整的软件平台主要包括中间件、系统具象层、关键应用软件和SDK(SoftwareDevelopersKit)开发环境。软件平台不能替代操作系统。并且就应用软件来说,可以在软件平台上直接开发,这也是手机软件平台的一个重要应用。
手机生产商之间的竞争越来越激烈,新产品层出不穷,面对新的市场要求,只要在已有平台上加以扩充,能够很快推出新的手机产品,在竞争中取得优势。
3平台创建工具开发背景
3.1手机软件平台开发现况
手机的整个开发流程如图1所示,其中手机软件的开发包括创建平台和产品开发两部份。
图1手机开发流程
创建手机软件平台是一个庞大的工程,须要建立好多功能部件,每一个功能部件都独立存在,但又相辅相成,须要多方的协同合作共同完成,整套流程须要很长时间。
目前做完全建立的实际情况是,对一个功能部件做一次完全建立通常须要3个小时以上,开发人员只有等待建立完成能够进行下一步的工作。在理想情况下,3小时后建立成功,但是测试通过。但通常情况下,因为源代码的问题,建立常常在进行过程中半途失败,须要更改源代码重新进行完善。虽然建立成功,假如在测试过程中发觉问题,又要进行代码更改,之后重新进行完善,这么反复数遍。对于经验不足的开发人员,或则处在一个功能部件开发的早期linux 软件开发工具,这些重新打造的出现频度会大大提升,这将浪费大量的精力,工作效率也会急剧增长。任何一个功能部件的更改对整个平台就会导致影响,须要对整个平台重新进行建构,面对竞争越发激烈的市场,这将降低产品的开发成本、增长开发周期。
未来手机产品竞争最核心的是软件平台,并将成为一些大的手机品牌的最后竞争领域。Linux操作系统作为一个免费开源系统,Linux手机软件平台在减少手机生产商研制成本、提高新款上市响应时间、实现产品个性化设计三个方面表现尤为突出。Linux手机软件平台已成为诸多资深专家和手机生产商认定的下一代手机软件平台,有着宽广的发展前景。
3.2RPM软件包管理。
一个解决现况的方式是使用软件包管理方法。包管理系统由包括程序、数据、文档、配置信息的诸多文件组成,它们储存在一个特殊的格式文件--包文件中。基于包的系统集成和发行,早已广泛应用于当代的Linux发行商。目前两个最流行的包管理方式是RedHat的RPM(RedHatPackageManager)和Debian的dpkg.
RPM软件包管理是开发打包系统,任何人都可以使用。对于终端用户linux 软件开发工具,RPM提供了好多功能,促使软件的维护远比先前容易。通过简略的命令就可完成RPM包的安装、卸载和升级,所有零乱的细节都经过了处理。RPM对早已安装的包及文件产生的数据库进行维护,可以在系统上使用功能强悍的查询和校准功能[1].一个RPM包中的应用程序,有时不仅自身所带的附加文件保证其正常运行以外,还须要其它特定版本的文件作为支持,这就是软件包的依赖关系[2].
使用RPM管理软件后,软件的安装流程如图2所示。
图2使用RPM的软件安装流程图。
4平台创建工具开发背景
经过十多年的发展,基于Linux的开发早已不再是最开始对所有内容进行完善的时代。在桌面领域,Linux已然成为一个拥有成熟的软件构筑区块和综合工具的开发系统。但是,在嵌入式领域,在将传统的原始数据驱动开发模式转换为新的基于包的开发模式方面,Linux操作系统还存在一些差别。
原始数据驱动开发模式的主要问题在于,它没有一个有效的方式去控制功能部件之间的分界,这会造成功能部件代码之间的依赖超过了API(ApplicationProgrammingInterface),最终会使整个平台功能部件间的关系显得愈发复杂。这种复杂的功能部件将堆积在平台源代码中,使之后的辨识和更改更困难。经过多年的发展,整个软件平台都将无法进行扩充、剪裁和订制,以适应产品改变的须要。
因为手机生产商早已确认将Linux作为下一代手机软件平台,基于Linux的手机产品功能开发将成为一个主流。为了让开发得以实现,须要构建一个合理的综合开发环境,其中包括整套的开发流程和开发工具,其关键在于怎样订制和发行一个完整的软件平台。
虽然传统的基于源代码的系统集成仍然可以满足需求,而且积累的工程经验倾向于基于软件包的系统集成和布署方案,由于基于软件包的方案早已被证明愈发可靠、灵活、安全。可以预见,基于软件包的系统集成方案将在平台集成和发行上抢占优势。
Linux企业解决方案提供商企图缩小Linux操作系统在嵌入式领域的差别。并且,只有先构建适宜开发的基础结构,Linux企业解决方案递交的包格式能够充分发挥作用。手机软件平台创建工具,就是一个基于RPM的平台打造、管理、部署系统工具,还对嵌入式系统的发行提供强悍的支持。图3举例说明了平台创建工具基于RPM软件包的工作模式。
图3基于RPM的软件重构和发行。
在基于RPM的解决方案中,开发人员只须要留意自己软件包的源代码VOB.VOB是一个以版本的方式储存项目产品和数据的资源库。所有依赖的包都储存在与RPMVOB结合的RPM发行服务器上,该服务器由软件配置管理员维护。功能部件开发人员从发行服务器中获得二补码RPM包,但是在平台创建工具的帮助下安装完善环境。当开发进行到一定程度须要交付时linux命令ls,开发人员将提出建立恳求。配置管理员将处理建立恳求,并将恳求建立的软件包与其依赖的软件包一齐进行重构。以后,使用平台创建工具通过RPMVOB和发行服务器发布版本。这样,开发人员就可以使用新的版本进行提高开发。总监和其他项目股东可以使用网路浏览器查看发行进程和平台变化。
当配置管理员所发布的RPM包不可用时,开发人员还可以使用平台创建工具调整那些包来解决互相依赖。
以上对于基础结构的开发linux重启命令,通过使用功能部件的发行包,提高了功能部件间的边界和API的访问。所以,不会通过功能部件间的依赖见到它们的复杂性,确保手机软件平台拥有扩充性和适应性。
平台创建工具就是要成为一个基于RPM的平台建立、管理、部署的系统工具,并对嵌入式系统的发行提供强悍的支持。
5平台创建工具的设计目标
手机软件平台创建工具须要关注两方面的问题:
其二是保证使用工具建立出的结果正确。使用工具才能提升开发效率,减短对开发人员的培训时间,但最为重要的是保证最终生成镜像的正确;其一是充分借助早已生成的手机RootFS和镜像。在手机的开发过程中,会经历无数次的建立、测试、生成镜像。每次发觉问题、修改源代码后,都须要再进行一次,但实际上每次改动常常并不多,假如充分借助过去的基础,就可以节约大量的时间。
平台创建工具应当维护一个工作区,供使用者进行基于包的平台建设、架构和发行。这个工作区应当是一个为惟一用户维护当前工程数据和结构的独立空间。基于这个工作区,平台创建工具主要应当支持以下功能:
(1)支持包管理操作,比如:安装、卸载、升级、降级、信息查询等;(2)支持将源代码RPM包、源代码目录和二补码RPM混和在一起的平台打造;(3)支持按照用户指定的RPM包生成手机RootFS;(4)支持按照特定的系统分割、RootFS内容和RootFS类型生成镜像文件;(5)调用镜像烤制工具,将镜像烤制到目标设备上;(6)支持平台订制,并能导入备份文件供今后使用;(7)支持基于指定的RPM包和RPM开发包生成软件开发工具包。运行库、工具链、头文件和软件开发工具包的文件由用户的RPM开发包提供;(8)提供插件机制,使新的目标和工具链可用。
6平台创建工具的作用
平台创建工具的定位是一个图形用户界面系统集成和分配工具,拿来帮助开发人员开发嵌入式程序,使基于Linux的嵌入式软件平台的构建、集成和分配更容易。其亮点在于灵活的包管理机制、方便的平台构造和布署、对不同生产线的支持、快速生成软件开发工具包等,具有使用便捷、工作效率高、资源重用性强等特征。最重要的是能否大幅度的提升开发效率,并使开发人员和平台配置管理人员甩掉复杂的命令行操作方法,通过清晰明了的GUI完成工作,工作流如图4所示。
图4平台创建工具工作流。
具体而言是针对Linux-Java手机软件平台的集成和分配,以软件包管理方法,取代纷扰的整体打造形式;以手动执行的方法,取代人工的命令行操作方法,提升创建手机软件平台的效率,并使所创建的手机软件平台拥有更高的质量和更好的维护性。
手机软件平台的开发可具体分为:成份部件开发、平台创建、系统集成和系统布署四部份,如图5所示。
图5Linux/Java平台构造模型。
可见,平台创建工具的使用几乎贯传了整个平台构造全过程。在成份部件开发阶段,使用RPM对开发好的各个成份部件进行分别打包后,交由平台创建工具集中管理。在平台创建阶段,使用平台创建工具对软件包进行分块处理,根据不同的分类成为一个个资源库,并建立可运行平台,构建软件开发工具包。这时,对于指定生产线的手机软件产品所需的软件平台就早已成功构建,平台拥有所有须要的软件配置,并可生成出镜像文件。最后使用镜像烤制工具,将生成的镜像烧到手机上,就可以进行系统测试了。
7结语
使用基于包管理方法的平台创建工具,除了可以填补原始开发方式的不足,还可手动为产品提供正确的配置,致使跟踪包厢的依赖关和进行软件发布、安装、卸载、升降级都愈发容易,同时它还是最被广泛接受的向开源软件组织发布源码的方式,以便确认开源软件的灵活性。
手机软件平台创建工具作为一个图形用户界面系统集成和分配工具,拿来帮助开发人员开发嵌入式程序,使基于Linux的嵌入式软件平台的构建、集成和分配更容易。平台创建工具的使用,将使手机开发商在减少开发成本的同时,开发出功能愈发建立的手机软件平台,最终为用户提供功能愈发丰富的手机产品。