基于安卓系统的跨硬件平台的应用程序开发方法和系统的制作方法

文档序号:6441528阅读:147来源:国知局
专利名称:基于安卓系统的跨硬件平台的应用程序开发方法和系统的制作方法
技术领域
本发明涉及计算机软件开发领域,尤其涉及一种基于安卓系统的跨硬件平台的应用程序开发方法和系统。
背景技术
一般软件开发的分层结构包含硬件层、操作系统层和应用程序层。硬件层接入硬件,应用程序层通过操作系统层与各硬件进行通信,获取各种参数信息。目前终端设备上的安卓(android)操作系统并未针对不同厂商的不同硬件平台提供统一的接口,而不同硬件平台主要是不同厂商的硬件可能使用不同的芯片,不同芯片可能使用不同的指令集,所以对于不同硬件平台的接口集合,可能使用不同shell命令。例如,硬件平台A的接口集合为al、bl、cl,硬件平台B的接口集合为a2、b2、c2,硬件平台C的接口集合为a3、b3、c3。若所使用的硬件平台为A,则应用软件服务提供商在开发软件程序时,应用程序层必须能与接口al、bl、cl进行通信,以获取或设置相应的参数;若所使用的硬件平台为B,则应用软件服务提供商在开发软件程序时,应用程序层必须能与接口 a2、b2、c2进行通信,以获取或设置相应的参数。对于硬件平台C,同样如此。因此应用软件服务提供商就需要针对不同硬件厂商的不同硬件平台在应用程序上做调整,以通过不同的接口与不同硬件进行通信,而在应用程序上做调整是相当复杂而且重复的工作,这给软件开发带来很大不便。

发明内容
本发明要解决的技术问题在于,针对现有技术的上述应用软件服务提供商需要针对不同硬件在应用程序上做调整以通过不同的接口与不同硬件进行通信的缺陷,提供一种能屏蔽硬件平台之间的差异从而可实现跨硬件平台的调用的基于安卓系统的跨硬件平台的应用程序开发方法。本发明解决其技术问题所采用的技术方案是:构造一种基于安卓系统的跨硬件平台的应用程序开发方法,包括:
501.预先将所有硬件平台的接口集合进行合并,且不同硬件平台的相同接口仅保留一个,从而得到统一接口集合,根据当前所使用的硬件平台,从所述统一接口集合中抽象出属于当前所使用的硬件平台的接口集合;
502.应用程序客户端在当前所使用的硬件平台的接口集合的调用下,向所设置的代理服务器发送shell命令,代理服务器执行shell命令,以获取或设置系统参数,并向应用程序客户端发送shell命令的执行结果,从而实现当前所使用的硬件平台的接口。在本发明所述的基于安卓系统的跨硬件平台的应用程序开发方法中,所述代理服务器与应用程序客户端通过socket进行通信。在本发明所述的基于安卓系统的跨硬件平台的应用程序开发方法中,在步骤S02中,通过安卓NDK编译生成独立的代理服务器。在本发明所述的基于安卓系统的跨硬件平台的应用程序开发方法中,在步骤S02中,获取或设置系统参数包括:获取IP、设置DNS、设置系统时间、获取/设置当前语言。本发明还构造一种基于安卓系统的跨硬件平台的应用程序开发系统,包括:
硬件平台接口确定模块,用于预先将所有硬件平台的接口集合进行合并,且不同硬件平台的相同接口仅保留一个,从而得到统一接口集合,根据当前所使用的硬件平台,从所述统一接口集合中抽象出属于当前所使用的硬件平台的接口集合;
硬件平台接口实现模块,用于应用程序客户端在当前所使用的硬件平台的接口集合的调用下,向所设置的代理服务器发送shell命令,代理服务器执行shell命令,以获取或设置系统参数,并向应用程序客户端发送shell命令的执行结果,从而实现当前所使用的硬件平台的接口。在本发明所述的基于安卓系统的跨硬件平台的应用程序开发系统中,所述代理服务器与应用程序客户端通过socket进行通信。在本发明所述的基于安卓系统的跨硬件平台的应用程序开发系统中,通过安卓NDK编译生成独立的代理服务器。在本发明所述的基于安卓系统的跨硬件平台的应用程序开发系统中,获取或设置系统参数包括:获取IP、设置DNS、设置系统时间、获取/设置当前语言。实施本发明的技术方案,在不同的硬件平台开发应用程序时,能根据所使用的硬件平台抽取出相应的接口集合,然后应用程序客户端在当前所使用的硬件平台的接口集合的调用下,向所设置的代理服务器发送shell命令,代理服务器执行shell命令,以获取或设置系统参数,并向应用程序客户端发送shell命令的执行结果,所以,能够不需要根据不同的硬件平台对应用程序做相应的调整,因此,屏蔽了硬件平台之间的差异,减少了应用软件的重复开发。


下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明基于安卓系统的跨硬件平台的应用程序开发方法实施例一的流程 图2是本发明基于安卓系统的跨硬件平台的应用程序开发系统实施例一的逻辑图。
具体实施例方式首先说明的是,由于安卓操作系统的内核是Linux2.6,所以安卓系统上面的应用程序开发跟Linux有着千丝万缕的关系,对于跨硬件平台上的安卓系统来说,其中系统设置尤其重要,例如,设置以太网/无线网/PPPOE (拨号上网)等的网络参数、设置系统时间、设置UI等。图1示出了本发明基于安卓系统的跨硬件平台的应用程序开发方法实施例一的流程图,该软件开发方法包括以下步骤:
501.预先将所有硬件平台的接口集合进行合并,且不同硬件平台的相同接口仅保留一个,从而得到统一接口集合,根据当前所使用的硬件平台,从所述统一接口集合中抽象出属于当前所使用的硬件平台的接口集合;
502.应用程序客户端在当前所使用的硬件平台的接口集合的调用下,向所设置的代理服务器发送shell命令,代理服务器执行shell命令,以获取或设置系统参数,并向应用程序客户端发送shell命令的执行结果,从而实现当前所使用的硬件平台的接口。其中,获取或设置系统参数可包括:获取IP、设置DNS、设置系统时间、获取/设置当前语言。在该步骤中,应说明的是,应用程序层获取或设置与硬件相关的参数一般情况下是通过应用程序层执行shell命令来实现,但应用程序层在执行shell命令时存在权限问题,因此设置了独立的代理服务器(proxy),该代理服务器解决了在应用程序层执行shell命令时出现的权限限制,为后续的获取或设置与硬件相关的参数信息提供基础服务。另一方面,所设置的代理服务器可执行与统一接口集合中所有接口相关的shell命令。例如,共有三个硬件平台A、B、C,其中,硬件平台A的接口集合为al、bl、cl,硬件平台B的接口集合为a2、b2、c2,硬件平台C的接口集合为a3、b3、c3。若接口 bl与接口 b2相同,接口 cl与接口 c3相同,则统一接口集合即为&1、131、01、&2、02、&333。若当前所使用的硬件平台为A,则所抽取的接口集合为al、bl、cl ;若当前所使用的硬件平台为B,则所抽取的接口集合为a2、bl、c2 ;若当前所使用的硬件平台为C,则所抽取的接口集合为a3、b3、cl。这样可减少重复的开发,节省工作量。而设置的代理服务器,一方面解决了应用程序层(JAVA层)执行shell命令时的权限问题,另一方面作为应用程序层的服务端,可执行与统一接口集合al、bl、Cl、a2、c2、a3、b3相关的shell命令。若当前所使用的硬件平台为A,应用程序客户端在该硬件平台A的接口集合al、bl、Cl的调用下,向代理服务器发送相应的shell命令,代理服务器执行与接口集合al、bl、cl相关的shell命令,并将结果返回至应用程序客户端,该硬件平台A的接口集合al、bl、cl可调用相关的shell命令的执行结果;若当前所使用的硬件平台为B,应用程序客户端在该硬件平台B的接口集合a2、bl、c2的调用下,向代理服务器发送相应的shell命令,代理服务器执行与接口集合为a2、bl、c2相关的shell命令,并将结果返回至应用程序层,该硬件平台A的接口集合al、bl、cl可调用相关的shell命令的执行结果;若当前所使用的硬件平台为C,应用程序客户端在该硬件平台C的接口集合a3、b3、Cl的调用下,向代理服务器发送相应的shell命令,代理服务器执行与接口集合为a3、b3、cl相关的shell命令,并将结果返回至应用程序层,该硬件平台C的接口集合a3、b3、cl可调用相关的shell命令的执行结果。实施该实施例的技术方案,预先将所有硬件平台的接口集合进行合并,且不同硬件平台的相同接口仅保留一个,从而得到统一接口集合。在不同的硬件平台开发应用程序时,能根据所使用的硬件平台抽取出相应的接口集合,然后应用程序客户端在当前所使用的硬件平台的接口集合的调用下,向所设置的代理服务器发送shell命令,代理服务器执行shell命令,以获取或设置系统参数,并向应用程序客户端发送shell命令的执行结果,所以,能够不需要根据不同的硬件平台对应用程序做相应的调整,因此,屏蔽了硬件平台之间的差异,减少了应用软件的重复开发。在上述步骤S02中,优选地,可优选通过安卓NDK (Native Development Kit,本机开发工具包)编译生成一个独立的代理服务器(proxy)。在该步骤中,还应当说明的是,应用程序层(即JAVA层)相对于代理服务器作为客户端,负责与代理服务器之间进行通信,优选socket通信,指示代理服务器实现shell命令的执行;代理服务器优选由NDK编译的socket服务端进程,用于在安卓系统上执行shell命令,并将结果返回给应用程序层。应用程序层和代理服务器之间通过socket进行通信,就是考虑到socket在跨平台方面的优势,这样对所有的安卓操作系统都能够使用。当然,这只是其中一个实施例,在其它实施例中,应用程序层和代理服务器之间的通信方式还可采用其它的IPC (Inter-ProcessCommunication,进程间通信)的方式,例如,消息队列+共享内存。图2是本发明基于安卓系统的跨硬件平台的应用程序开发系统实施例一的逻辑图,该基于安卓系统的软件开发系统包括依次连接的硬件平台接口确定模块10、硬件平台接口实现模块20。其中,硬件平台接口确定模块10用于预先将所有硬件平台的接口集合进行合并,且不同硬件平台的相同接口仅保留一个,从而得到统一接口集合,根据当前所使用的硬件平台,从所述统一接口集合中抽象出属于当前所使用的硬件平台的接口集合;硬件平台接口实现模块20用于应用程序客户端在当前所使用的硬件平台的接口集合的调用下,向所设置的代理服务器发送shell命令,代理服务器执行shell命令,以获取或设置系统参数,并向应用程序客户端发送shell命令的执行结果,从而实现当前所使用的硬件平台的接口,获取或设置系统参数包括:获取IP、设置DNS、设置系统时间、获取/设置当前语言。在上述实施例中,优选地,代理服务器与应用程序层通过socket进行通信。另外,代理服务器优选通过安卓NDK在应用程序层和操作系统层之间生成独立的代理服务器。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
权利要求
1.一种基于安卓系统的跨硬件平台的应用程序开发方法,其特征在于,包括: 501.预先将所有硬件平台的接口集合进行合并,且不同硬件平台的相同接口仅保留一个,从而得到统一接口集合,根据当前所使用的硬件平台,从所述统一接口集合中抽象出属于当前所使用的硬件平台的接口集合; 502.应用程序客户端在当前所使用的硬件平台的接口集合的调用下,向所设置的代理服务器发送shell命令,代理服务器执行shell命令,以获取或设置系统参数,并向应用程序客户端发送shell命令的执行结果,从而实现当前所使用的硬件平台的接口。
2.根据权利要求1所述的基于安卓系统的跨硬件平台的应用程序开发方法,其特征在于,所述代理服务器与应用程序客户端通过socket进行通信。
3.根据权利要求1所述的基于安卓系统的跨硬件平台的应用程序开发方法,其特征在于,在步骤S02中,通过安卓NDK编译生成独立的代理服务器。
4.根据权利要求1所述的基于安卓系统的跨硬件平台的应用程序开发方法,其特征在于,在步骤S02中,获取或设置系统参数包括:获取IP、设置DNS、设置系统时间、获取/设置当前语目。
5.一种基于安卓系统的跨硬件平台的应用程序开发系统,其特征在于,包括: 硬件平台接口确定模块,用于预先将所有硬件平台的接口集合进行合并,且不同硬件平台的相同接口仅保留一个,从而得到统一接口集合,根据当前所使用的硬件平台,从所述统一接口集合中抽象出属于当前所使用的硬件平台的接口集合; 硬件平台接口实现模块,用于应用程序客户端在当前所使用的硬件平台的接口集合的调用下,向所设置的代理服务器发送shell命令,代理服务器执行shell命令,以获取或设置系统参数,并向应用程序客户端发送shell命令的执行结果,从而实现当前所使用的硬件平台的接口。
6.根据权利要求5所述的基于安卓系统的跨硬件平台的应用程序开发系统,其特征在于,所述代理服务器与应用程序客户端通过socket进行通信。
7.根据权利要求5所述的基于安卓系统的跨硬件平台的应用程序开发系统,其特征在于,通过安卓NDK编译生成独立的代理服务器。
8.根据权利要求5所述的基于安卓系统的跨硬件平台的应用程序开发系统,其特征在于,获取或设置系统参数包括:获取IP、设置DNS、设置系统时间、获取/设置当前语言。
全文摘要
本发明公开了一种基于安卓系统的跨硬件平台的应用程序开发方法和系统,该方法包括S01.预先将所有硬件平台的接口集合进行合并,且不同硬件平台的相同接口仅保留一个,从而得到统一接口集合,根据当前所使用的硬件平台,从所述统一接口集合中抽象出属于当前所使用的硬件平台的接口集合;S02.应用程序客户端在当前所使用的硬件平台的接口集合的调用下,通过应用程序客户端向所设置的代理服务器发送shell命令,代理服务器执行shell命令,以获取或设置系统参数,并向应用程序客户端发送shell命令的执行结果,从而实现当前所使用的硬件平台的接口。本发明的技术方案屏蔽了硬件平台之间的差异,减少了应用软件的重复开发。
文档编号G06F9/44GK103164207SQ20111042289
公开日2013年6月19日 申请日期2011年12月16日 优先权日2011年12月16日
发明者邱荣华, 陈宗高 申请人:深圳市快播科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1