一种基于移动平台的应用软件开发方法_2

文档序号:9304426阅读:来源:国知局
的特性。我们定义了一种使用字符串定义的通用的函数调用接口,在本地相关调用代码中通过解析字符串来查找和调用函数。对于未实现的函数返回Null值。同时,由于各平台上存在统一的接口调用,windows环境下实现了 windows的本地依赖函数,因此应用软件的主体代码在windows的环境下可以运行,切换到Android平台上的时候,主体代码自动使用Android上另外开发的函数接口,就实现了无缝的移植。
[0049]通过以上的方法,我们实现了在windows的开发环境下,开发软件中最耗时部分,即应用软件中的主体部分,等主体部分开发完成后,再到实际使用的设备上进行设备依赖代码测试和开发的部分,节约了大量的开发时间。
[0050]另外,本发明所述的基于移动平台的应用软件开发方法可以移植到其他平台,例如i0s、windows surface、黑莓等平台,这就使我们的软件可以低成本进行全平台开发。
[0051]本发明还公布了一种基于移动平台的应用软件开发系统,所述系统包括:
[0052]主体设计模块:该模块用于:在windows平台下,运用跨平台的开发语言设计应用软件的主体部分,所述主体部分运行与移动平台无关;
[0053]创建虚拟机模块:该模块用于:运用跨平台的开发语言创建虚拟机,所述虚拟机没有使用依赖于平台的函数;
[0054]代码生成模块:用于利用跨平台的开发语言进行动态代码加载和类型反射,生成桥接的代码;
[0055]调用模块:用于通过消息机制,实现主体部分中与平台无关的代码通过桥接与平台相关的代码的互相调用,所述桥接的代码须将动态代码放置到所述跨平台的开发语言认定的安全沙箱中;
[0056]测试模块:用于将开发出来的应用软件代码拷贝到移动平台上进行测试与使用。
[0057]下面以基于Android平台的应用软件开发系统为例,对本发明作进一步说明。
[0058]我们采用的跨平台的开发语言为Adobe公司的As3脚本语言,通过Adobe Air的开发包实现跨平台的开发,在应用开发时,将应用软件中的主体部分独立出来,所述主体部分运行与Android无关,使用windows平台进行主体部分的开发,由于在效率较高的windows平台上完成软件主体部分的开发,再加上windows系统的性能数倍于Android移动设备,且没有硬件连接和网络等待时间,开发效率非常高。
[0059]由于跨平台开发语言针对不同的平台实现了动作行为相同的虚拟机(VM),在我们的程序代码一致的情况下,只要我们没有调用依赖于平台的函数,则无论是在windows上执行,还是在Android系统上执行,实现出来的效果是完全一致的。因此我们的软件在windows上的显示方式和Android平台上的显示方式可以做到一致。
[0060]同时,与Android相关的部分(例如获取Android设备的wifi地址,PPI信息等硬件信息)仍然使用原来的方式进行编程。
[0061]应用软件的两端开发完毕后,我们利用跨平台的开发语言的高级功能:动态代码加载和类型反射,实现一段桥接的代码,通过消息机制,实现windows平台与Android平台的互相调用。
[0062]由于使用AdobeAir开发时,虚拟机(VM)会判断动态加载进来的代码是否安全,会对加载进来的第三方作访问限制,因此桥接的代码需要将动态代码放置到Air认定的安全沙箱中,这个步骤我们是通过了 AdobeAir提供的C语言的扩展实现的,即:首先通过C语言实现的本地接口,找到安全沙箱的位置,然后将动态加载的代码放置到其中;然后动态代码加载成功后,代码就拥有与调用应用相同的权限,这就使windows平台上开发的功能可以无缝使用。
[0063]由于windows上开发的模块,在Android平台上是动态加载进来的,且对于Android上的应用,默认的运行环境是应用自身所在的位置,因此动态代码加载进来的模块需要再次加载其他的资源文件时,其相对路径应当以应用的相对路径为准。这就导致在windows上开发的代码,在Android上运行时如何自动替换路径的问题,这个问题我们是通过桥接代码动态加载时,直接修改被加载的环境变量实现的。这样在windows上开发时,程序使用的是开发时的路径,而加载到新环境下之后,则自动使用新环境下的路径。
[0064]通过桥接的代码,我们在高效快速的windows桌面系统下对应用软件进行开发,完毕以后,仅需要将生成的代码拷贝到Android设备的sdcard上就可以直接测试与使用,整个流程迅速且方便。
[0065]由于平台的差异性,软件中必然会使用到一些与当前系统相关的部分,而这些部分是无法移植的。这个部分我们利用了 Adobe Air的本地扩展能与C语言开发的模块交互的特性。我们定义了一种使用字符串定义的通用的函数调用接口,在本地相关调用代码中通过解析字符串来查找和调用函数。对于未实现的函数返回Null值。同时,由于各平台上存在统一的接口调用,windows环境下实现了 windows的本地依赖函数,因此应用软件的主体代码在windows的环境下可以运行,切换到Android平台上的时候,主体代码自动使用Android上另外开发的函数接口,就实现了无缝的移植。
[0066]通过以上的方法,我们实现了在windows的开发环境下,开发软件中最耗时部分,即应用软件中的主体部分,等主体部分开发完成后,再到实际使用的设备上进行设备依赖代码测试和开发的部分,节约了大量的开发时间。
[0067]另外,本发明所述的基于移动平台的应用软件开发方法可以移植到其他平台,例如i0s、windows surface、黑莓等平台,这就使我们的软件可以低成本进行全平台开发。
[0068]以上所述,仅为本发明的具体实施方法,但本发明的保护范围并不局限于此,任何熟悉本领域技术的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【主权项】
1.一种基于移动平台的应用软件开发方法,其特征在于,该方法包括以下步骤: 在windows平台下,运用跨平台的开发语言设计应用软件的主体部分,所述主体部分运行与移动平台无关; 运用跨平台的开发语言创建虚拟机,所述虚拟机没有使用依赖于平台的函数; 利用跨平台的开发语言进行动态代码加载和类型反射,生成桥接的代码; 通过消息机制,实现主体部分中与平台无关的代码通过桥接与平台相关的代码的互相调用,所述桥接的代码须将动态代码放置到所述跨平台的开发语言认定的安全沙箱中; 将开发出来的应用软件代码拷贝到移动平台上进行测试与使用。2.根据权利要求1所述基于移动平台的应用软件开发方法,其特征在于,所述桥接的代码须将动态代码放置到所述跨平台的开发语言认定的安全沙箱中之前,跨平台的开发语言通过本地接口找到安全沙箱的位置。3.根据权利要求1所述基于移动平台的应用软件开发方法,其特征在于,所述跨平台的开发语言使用字符串定义的通用函数调用接口,在windows平台调用代码中通过解析字符串来查找和调用函数。4.根据权利要求1至3任一所述基于移动平台的应用软件开发方法,其特征在于,所述跨平台的开发语言为Adobe Air的开发包;所述移动平台为Android或1s或windowssurface或黑莓。5.一种基于移动平台的应用软件开发系统,其特征在于,所述系统包括: 主体设计模块:该模块用于:在windows平台下,运用跨平台的开发语言设计应用软件的主体部分,所述主体部分运行与移动平台无关; 创建虚拟机模块:该模块用于:运用跨平台的开发语言创建虚拟机,所述虚拟机没有使用依赖于平台的函数; 代码生成模块:用于利用跨平台的开发语言进行动态代码加载和类型反射,生成桥接的代码; 调用模块:用于通过消息机制,实现主体部分中与平台无关的代码通过桥接与平台相关的代码的互相调用,所述桥接的代码须将动态代码放置到所述跨平台的开发语言认定的安全沙箱中; 测试模块:用于将开发出来的应用软件代码拷贝到移动平台上进行测试与使用。6.根据权利要求5所述的一种基于移动平台的应用软件开发系统,其特征在于,所述桥接的代码须将动态代码放置到所述跨平台的开发语言认定的安全沙箱中之前,跨平台的开发语言通过本地接口找到安全沙箱的位置。7.根据权利要求5所述的一种基于移动平台的应用软件开发系统,其特征在于,所述跨平台的开发语言使用字符串定义的通用函数调用接口,在windows平台调用代码中通过解析字符串来查找和调用函数。8.根据权利要求5至7之一所述的一种基于移动平台的应用软件开发系统,其特征在于,所述跨平台的开发语言为Adobe Air的开发包;所述移动平台为Android或1s或windows surface 或黑毒。
【专利摘要】本发明公开了一种基于移动平台的应用软件开发方法,该方法包括以下步骤:在windows平台下,运用跨平台的开发语言设计应用软件的主体部分,所述主体部分运行与移动平台无关;运用跨平台的开发语言创建虚拟机,所述虚拟机没有使用依赖于平台的函数;利用跨平台的开发语言进行动态代码加载和类型反射,生成桥接的代码;通过消息机制,实现主体部分中与平台无关的代码通过桥接与平台相关的代码的互相调用,所述桥接的代码须将动态代码放置到所述跨平台的开发语言认定的安全沙箱中;将开发出来的应用软件代码拷贝到移动平台上进行测试与使用。本发明提供的基于移动平台的应用软件开发方法的开发成本低、开发效率非常高。
【IPC分类】G06F9/44
【公开号】CN105022620
【申请号】CN201410175305
【发明人】李建明
【申请人】上海未达数码科技有限公司
【公开日】2015年11月4日
【申请日】2014年4月28日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1