一种应用程序开发的方法和装置的制作方法

文档序号:6353844阅读:243来源:国知局
专利名称:一种应用程序开发的方法和装置的制作方法
技术领域
本发明涉及计算机领域,特别涉及一种应用程序开发的方法和装置。
背景技术
随着计算机技术的快速发展,计算机领域出现了很多应用程序开发的方法,如原生应用程序或web应用程序等。原生应用程序是指基于移动平台开发的应用程序。原生应用程序开发时需要使用移动平台限定的开发语言、工具集、编译器、甚至开发平台。以ios移动平台为例,开发基于ios移动平台的原生应用程序需要使用objective-c开发语言,使用apple发布的xcodesdk进行编译调试,并且只能在mac系统上进行开发、编译、模拟测试、打包部署等工作。这种开发方式可以使用现有sdk(SoftwareDevelopment Kit,软件开发工具包)所提供的一些工具和组件,性能比较好,接口比较丰富,但是会被移动平台限制所能使用的技术和工具,而且每次开发只能针对特定平台,不具有跨平台能力。web应用程序是指基于web技术,如javascript、css、或html等,开发的应用程序。web应用程序开发时,开发者可以使用自己熟悉的web技术、开发工具(如Dreamweaver> Aptana、或 Notepad++)、和系统平台(如 windows 或 Iinux)等进行开发,还可以使用PC (Personal Computer,个人计算机)上常用的浏览器直接进行调试,无需受移动平台所指定的开发工具的限制。这种开发方式简单便捷,但是只能运行在浏览器上,受浏览器安全沙箱机制的限制,只能给开发者提供有限的接口,可能无法满足所有项目需求,并且图形渲染性能和数据计算能力也不如原生应用程序,可能会给项目引入性能问题。综合上述,现有的原始应用程序开发方法受限于特定的平台,现有的web应用程序开发方法接触的系统原生API (Application Programming Interface,应用程序接口)有限,因此,如何摆脱平台限制,同时能够接触更多的系统原生API,现有技术还没有相关的解决方案。

发明内容
为了摆脱平台限制,同时能够接触更多的系统原生API,本发明实施例提供了一种应用程序开发的方法和装置。所述技术方案如下—种应用程序开发的方法,所述方法包括将系统原生应用程序接口 API封装成不同的接口,由所述不同的接口组成接口层;基于web技术开发应用程序,所述应用程序触发浏览器相应的事件,以通知浏览器组件层所需执行的操作和执行所述操作所需的参数;浏览器组件层监听到所述事件发生改变后,根据所述操作和执行所述操作所需的参数,向所述接口层相应的接口进行调用,并将结果返回给所述应用程序进行处理。一种应用程序开发的装置,所述装置包括
接口层模块,用于将系统原生应用程序接口 API封装成不同的接口,由所述不同的接口组成接口层;Web层模块,用于基于web技术开发应用程序,所述应用程序触发浏览器相应的事件,以通知浏览器组件层所需执行的操作和执行所述操作所需的参数;浏览器组件层模块,用于浏览器组件层监听到所述事件发生改变后,根据所述操作和执行所述操作所需的参数,向所述接口层相应的接口进行调用,并将结果返回给所述应用程序 进行处理。本发明实施例提供的技术方案带来的有益效果是通过将系统原生API封装成不同的接口,基于web技术开发应用程序,由浏览器组件层对应用程序和接口层的接口进行适配,从而摆脱了平台限制,开发者可以使用自己熟悉的web技术和工具进行开发,简化了开发过程,同时通过对系统原生API进行封装得到的接口层,web应用程序能够接触更多的系统原生API,提升了 web能力。


图I是本发明实施例I中提供的应用程序开发的方法流程图;图2是本发明实施例I中提供的应用程序开发的结构示意图;图3是本发明实施例I中提供的应用程序开发的装置结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例I参见图1,本实施例提供了一种应用程序开发的方法,包括101 :将系统原生API封装成不同的接口,由不同的接口组成接口层;102 :基于web技术开发应用程序,该应用程序触发浏览器相应的事件,以通知浏览器组件层所需执行的操作和执行该操作所需的参数;103:浏览器组件层监听到该事件发生改变后,根据该操作和执行该操作所需的参数,向接口层相应的接口进行调用,并将结果返回给该应用程序进行处理。具体的,应用程序可以通过回调函数处理返回的结果。上述方法具体可基于图2所示的应用程序开发架构实现。该架构包括系统原生API层201、接口层202、浏览器组件层203和web层204。系统原生API层201,由移动平台底层提供的系统原生API组成,移动平台如ios或 android 等。接口层202,用于将系统原生API封装成不同的接口,由不同的接口组成该接口层。接口层至少包括文件接口(File)、传感器接口(Sensor)、设备接口(Device)和摄像头接口(Camera)中的至少一个。文件接口,用于获取和修改文件和目录的信息,打开、关闭、读取、或写入文件内容,复制、移动、或删除文件,实现文件上传或发送图片。由于ios移动平台上不允许javascript浏览文件系统,因此通过本实施例的文件接口,则可突破限制,实现文件上传、发送图片等文件相关功能。传感器接口,用于提供LBS (Location Based Service,基于位置服务)的接口,包括加速度计(Accelerometer)、罗盘(Compass)、或 GPS (Global PositioningSystem,全球定位系统)等位置信息和速度信息的接口。备接口,用于提供获取设备相关信息的接口,设备相关信息包括设备名、设备版本、或系统版本。设备接口可以给web技术提供设备相关信息,从而判断不同版本的系统和平台以做相应兼容。web层204,用于基于各种web技术开发应用程序,该应用程序触发浏览器相应的事件,以通知浏览器组件层203所需执行的操作和执行该操作所需的参数。Web技术包括但不限于javascript、css、或html等。开发者可以像开发基于桌面浏览器的web应用程序一样,使用自己熟悉的web技术和工具进行开发,也可以直接使用特性相近的浏览器,如safari, chrome等进行快速测试,只需与下层的浏览器组件层约定好通信协议即可。具体的,应用程序可以通过格式为协议头调用命令参数的通信协议格式触发浏览器相应的事件。其中,冒号为字段分隔符,协议头,用于通知浏览器组件层本请求是调用接口层相应的接口的请求;调用命令,用于通知浏览器组件层所需执行的操作;参数,用于通知浏览器组件层执行操作所需的参数,参数可以有一个或多个。另外,应用程序也可以通过其他通信协议格式触发浏览器相应的事件,只要应用程序和浏览器双方能够互相识别和理解即可。以QQ桌面项目所使用的javascript与浏览器组件层之间的通信协议格式QQDesk: open_urI: web2. qq. com为例,QQDesk为协议头,通知浏览器组件层这是一个由web层javascript技术调用接口层相应接口的请求,同时该协议头可以让浏览器区分开地址跳转等其他协议请求,open_url为调用命令,通知浏览器组件层本请求需要打开一个浏览器窗口,web2. qq. com为页面地址参数,通知浏览器组件层需要打开的页面地址。浏览器组件层203,用于适配接口层和web层。浏览器组件层监听到事件发生改变后,根据该操作和执行该操作所需的参数,向接口层相应的接口进行调用,并将结果返回给该应用程序进行处理,该应用程序可以通过回调函数处理返回的结果。以浏览器的location事件为例,基于web层的javascript开发的应用进程需要调用下层接口时,通过修改window. Location通知浏览器组件层,浏览器组件层相应的浏览器组件监听到Location事件发生改变后,分析Location字符串,判断javascript需要调用的接口和传入的参数,并向接口层相应的接口进行调用,然后将结果返回给该应用进程,该应用进程可以通过回调函数处理返回的结果。另外,浏览器组件层203的各个浏览器组件可以由平台SDK提供,也可以是开发人员自己实现的web浏览器组件或第三方提供的浏览器组件,能够为上层web层提供运行环境的组件皆可。进一步的,本实施例中的接口层和浏览器组件层都是平台相关的,即跨平台移植时需要实现利用新平台的开发技术重新实现接口层和浏览器组件层。以ios平台为例,接口层和浏览器组件层需要使用objective-c开发语言在xcode sdk上进行开发,浏览器组件可使用xcode sdk上提供的浏览器组件。但对web层而言接口没有任何变化,所以web层可以在多个平台重用,提高代码的复用率,无须再次开发,节省平台间移植成本。
另外,本实施例还可以通过加壳方式将web应用程序打包成原生应用程序,即将接口层和浏览器组件层作为客户端壳,将客户端壳和基于各种web技术开发的应用程序打包成原生应用程序。 本实施例通过将系统原生API封装成不同的接口,基于web技术开发应用程序,由浏览器组件层对应用程序和接口层的接口进行适配,从而摆脱了平台限制,开发者可以使用自己熟悉的web技术和工具进行开发,简化了开发过程,同时通过对系统原生API进行封装得到的接口层,web应用程序能够接触更多的系统原生API,提升了 web能力。实施例2参见图3,本实施例提供了一种应用程序开发的装置,包括接口层模块301,用于将系统原生API封装成不同的接口,由不同的接口组成接口层;Web层模块302,用于基于web技术开发应用程序,应用程序触发浏览器相应的事件,以通知浏览器组件层所需执行的操作和执行操作所需的参数;浏览器组件层模块303,用于浏览器组件层监听到事件发生改变后,根据操作和执行操作所需的参数,向接口层相应的接口进行调用,并将结果返回给该应用程序进行处理。该应用程序可以通过回调函数处理返回的结果。该装置还包括打包模块304,用于将接口层和浏览器组件层作为客户端壳,并将客户端壳和应用程序打包成原生应用程序。其中,不同的接口包括文件接口、传感器接口、设备接口和摄像头接口中的至少一个。文件接口,用于获取和修改文件和目录的信息,打开、关闭、读取、或写入文件内容,复制、移动、或删除文件,实现文件上传或发送图片; 传感器接口,用于提供基于位置服务LBS的接口,包括加速度计、罗盘、或全球定位系统;设备接口,用于提供获取设备相关信息的接口,设备相关信息包括设备名、设备版本、或系统版本;摄像头接口,用于提供调用摄像头图形数据的接口。其中,Web层模块302,具体用于基于web技术开发应用程序,应用程序通过格式为协议头调用命令参数的通信协议格式触发浏览器相应的事件,其中,协议头,用于通知浏览器组件层本请求是调用接口层相应的接口的请求;调用命令,用于通知浏览器组件层所需执行的操作;参数,用于通知浏览器组件层执行操作所需的参数。具体实例参见实施例I。 本实施例的装置涉及的接口层模块301,Web层模块302,浏览器组件层模块303,分别相当于方法实施例中的接口层、web层和浏览器组件层,与方法实施例属于同一构思,具体实现过程详见方法实施例,这里不再赘述。本实施例通过将系统原生API封装成不同的接口,基于web技术开发应用程序,由浏览器组件层对应用程序和接口层的接口进行适配,从而摆脱了平台限制,开发者可以使用自己熟悉的web技术和工具进行开发,简化了开发过程,同时通过对系统原生API进行封装得到的接口层,web应用程序能够接触更多的系统原生API,提升了 web能力。以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种应用程序开发的方法,其特征在于,所述方法包括 将系统原生应用程序接口 API封装成不同的接口,由所述不同的接口组成接口层; 基于web技术开发应用程序,所述应用程序触发浏览器相应的事件,以通知浏览器组件层所需执行的操作和执行所述操作所需的参数; 浏览器组件层监听到所述事件发生改变后,根据所述操作和执行所述操作所需的参数,向所述接口层相应的接口进行调用,并将结果返回给所述应用程序进行处理。
2.根据权利要求I所述的方法,其特征在于,所述方法还包括 将所述接口层和所述浏览器组件层作为客户端壳,并将所述客户端壳和所述应用程序打包成原生应用程序。
3.根据权利要求I所述的方法,其特征在于,所述不同的接口包括文件接口、传感器接口、设备接口和摄像头接口中的至少一个。
4.根据权利要求3所述的方法,其特征在于,所述文件接口,用于获取和修改文件和目录的信息,打开、关闭、读取、或写入文件内容,复制、移动、或删除文件,实现文件上传或发送图片; 所述传感器接口,用于提供基于位置服务LBS的接口,包括加速度计、罗盘、或全球定位系统; 所述设备接口,用于提供获取设备相关信息的接口,所述设备相关信息包括设备名、设备版本、或系统版本; 所述摄像头接口,用于提供调用摄像头图形数据的接口。
5.根据权利要求I所述的方法,其特征在于,所述应用程序触发浏览器相应的事件,以通知浏览器组件层所需执行的操作和执行所述操作所需的参数,包括 所述应用程序通过格式为协议头调用命令参数的通信协议格式触发浏览器相应的事件, 其中,所述协议头,用于通知所述浏览器组件层本请求是调用所述接口层相应的接口的请求; 所述调用命令,用于通知所述浏览器组件层所需执行的操作; 所述参数,用于通知所述浏览器组件层执行所述操作所需的参数。
6.一种应用程序开发的装置,其特征在于,所述装置包括 接口层模块,用于将系统原生应用程序接口 API封装成不同的接口,由所述不同的接口组成接口层; Web层模块,用于基于web技术开发应用程序,所述应用程序触发浏览器相应的事件,以通知浏览器组件层所需执行的操作和执行所述操作所需的参数; 浏览器组件层模块,用于浏览器组件层监听到所述事件发生改变后,根据所述操作和执行所述操作所需的参数,向所述接口层相应的接口进行调用,并将结果返回给所述应用程序进行处理。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括 打包模块,用于将所述接口层和所述浏览器组件层作为客户端壳,并将所述客户端壳和所述应用程序打包成原生应用程序。
8.根据权利要求6所述的装置,其特征在于,所述不同的接口包括文件接口、传感器接口、设备接口和摄像头接口中的至少一个。
9.根据权利要求8所述的装置,其特征在于,所述文件接口,用于获取和修改文件和目录的信息,打开、关闭、读取、或写入文件内容,复制、移动、或删除文件,实现文件上传或发送图片; 所述传感器接口,用于提供基于位置服务LBS的接口,包括加速度计、罗盘、或全球定位系统; 所述设备接口,用于提供获取设备相关信息的接口,所述设备相关信息包括设备名、设备版本、或系统版本; 所述摄像头接口,用于提供调用摄像头图形数据的接口。
10.根据权利要求6所述的装置,其特征在于,所述Web层模块,具体用于基于web技术开发应用程序,所述应用程序通过格式为协议头调用命令参数的通信协议格式触发浏览器相应的事件, 其中,所述协议头,用于通知所述浏览器组件层本请求是调用所述接口层相应的接口的请求; 所述调用命令,用于通知所述浏览器组件层所需执行的操作; 所述参数,用于通知所述浏览器组件层执行所述操作所需的参数。
全文摘要
本发明公开了一种应用程序开发的方法和装置,属于计算机领域。方法包括将系统原生API封装成不同的接口,由不同的接口组成接口层;基于web技术开发应用程序,应用程序触发浏览器相应的事件,以通知浏览器组件层所需执行的操作和执行操作所需的参数;浏览器组件层监听到事件发生改变后,根据操作和执行操作所需的参数,向接口层相应的接口进行调用,将结果返回给应用程序进行处理。装置包括接口层模块、web层模块和浏览器组件层模块。通过上述方案,摆脱了平台限制,开发者可以使用自己熟悉的web技术和工具进行开发,简化了开发过程,同时通过对系统原生API进行封装得到的接口层,web应用程序能够接触更多的系统原生API,提升了web能力。
文档编号G06F9/44GK102622211SQ20111002966
公开日2012年8月1日 申请日期2011年1月27日 优先权日2011年1月27日
发明者唐启宏 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1