CN104321745A - 用于软件应用程序的跨平台开发的环境及方法 - Google Patents

用于软件应用程序的跨平台开发的环境及方法 Download PDF

Info

Publication number
CN104321745A
CN104321745A CN201380014469.4A CN201380014469A CN104321745A CN 104321745 A CN104321745 A CN 104321745A CN 201380014469 A CN201380014469 A CN 201380014469A CN 104321745 A CN104321745 A CN 104321745A
Authority
CN
China
Prior art keywords
file
calculation element
content file
application program
software application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201380014469.4A
Other languages
English (en)
Inventor
道格拉斯·迈克尔·塞文
斯特凡·坎切夫·多布雷夫
叶夫根尼·伊万诺夫·彼得罗夫
迪扬·格奥尔基耶夫·瓦尔切夫
亚沃尔·萨肖夫·格奥尔基耶夫
克莱姆里·斯泰恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telerik AD
Original Assignee
Telerik AD
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telerik AD filed Critical Telerik AD
Publication of CN104321745A publication Critical patent/CN104321745A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

一种方法可包含获得内容文件,其中所述内容文件包含一或多个呈现文件,其中每一呈现文件包含相应指令,所述相应指令在由单独计算装置于运行时进行解译时经配置以提供在所述单独计算装置上执行的软件应用程序的(a)功能性及(b)用户接口中的至少一者。所述方法可包含将所述内容文件提供到所述单独计算装置。在提供所述内容文件之后,所述方法可包含识别至少第一呈现文件的改变且将至少所述第一呈现文件提供到所述单独计算装置,其中所述软件应用程序经配置以作为所述软件应用程序的(a)所述功能性及(b)所述用户接口中的至少一者来执行所述第一呈现文件而不需要在所述单独计算装置上重新安装或重新加载所述软件应用程序。

Description

用于软件应用程序的跨平台开发的环境及方法
相关申请案交叉参考
本申请案主张标题为“用于软件应用程序的跨平台开发的环境及方法(Environmentand Method for Cross-Platform Development of Software Applications)”且于2012年10月22日提出申请的美国申请案13/657,149的优先权,所述美国申请案主张标题为“用于无线计算装置的软件开发的环境及方法(Environment and Method for Development ofSoftware for Wireless Computing Devices)”且于2012年2月7日提出申请的第61/595,945号临时申请案及标题为“用于无线计算装置的软件开发的环境及方法(Environment andMethod for Development of Software for Wireless Computing Devices)”且于2012年5月3日提出申请的第61/642,187号美国临时申请案两者的优先权,所述申请案中的每一者的内容特此以全文引用的方式并入。
背景技术
在一些实例中,无线计算装置可包含蜂窝式电话、智能电话、个人数字助理、便携式多媒体播放器及平板计算机。可下载用以在无线计算装置上运行的软件应用程序。在一些实施方案中,基于Web的应用程序商店可提供下载到无线计算装置的装置特定、平台特定或操作系统特定软件应用程序。
当开发用于分布到多种计算装置的软件应用程序时,不同平台能力及编程语言兼容性(例如,Objective-C、Java、C#等)可致使开发者产生相同软件应用程序的多个版本。举例来说,当开发用于分布到多种无线装置(例如智能电话、平板计算机及手持式游戏装置)的软件应用程序时,软件程序员可需要针对每一装置制造商及/或操作系统平台且通常针对跨越单个装置制造商及/或操作系统平台的各种平台产生不同版本。另外,软件开发者可开发用于作为在线(例如,基于浏览器的)软件应用程序而分布的软件的另一版本。
对于一些计算装置平台,软件开发工具包(SDK)或集成开发环境(IDE)(例如,苹果公司(Apple,Inc.)的xCodeTM、加拿大渥太华的Eclipse基金会(Eclipse Foundation)的Eclipse、微软公司(Microsoft)的Visual、纽约阿蒙克市的国际商用机器公司(International Business Machines Corp.)(IBM)的用于软件的RationalApplication developer等)由用于平台可兼容软件应用程序的开发的制造商提供。购买每一软件开发工具包及了解每一软件开发工具包的能力及功能性所花费的费用及时间可能在配设(provision)跨越多个开发平台的软件应用程序时对开发者是不利的。
需要一种给软件开发者提供用以开发可经准备用于部署于多个计算装置平台上的跨平台软件应用程序的工具及功能性的开发环境。
发明内容
在一些实施方案中,本发明可针对用于计算装置的软件开发的环境及方法。在一些实施方案中,开发过程可包含用于部署于两个或两个以上计算装置平台上的软件应用程序的跨平台开发。在一些实例中,计算装置平台可是指一组特定配置参数,例如以下各项中的一或多者:装置操作系统(例如,华盛顿州雷德蒙德市的微软公司的 、LinuxTM、加利福尼亚州库比蒂诺市的苹果公司的MacTMOS、安大略省滑铁卢市的行动研究有限公司(Research in Motion Limited)的行动研究(RIM)OS等)、操作系统版本、装置应用程序格式(例如,苹果公司的iOSTM、加利福尼亚州门洛帕克市的谷歌公司的AndroidTM、微软公司的Phone、加利福尼亚州帕洛阿尔托市的惠普公司(Hewlett-Packard Company)的PalmTM webOSTM、爱尔兰都柏林的埃森哲公司(Accenture PLC)的SymbianTM、韩国首尔的三星电子公司(Samsung Electronics)的BadaTM等)及装置外围配置(例如,输入及输出装置,例如在一些实例中,传感器、扬声器、麦克风、虚拟键盘及/或小型键盘、按钮及其它物理控制输入等)。
如本文中所描述,在一些实施方案中,集成云环境(ICE)可提供用于开发可经编译以在两个或两个以上计算装置平台上运行的跨平台软件应用程序的接口。在一些实施方案中,集成云环境可包含用于针对若干个无线计算装置平台而设计、建构、编译、测试及/或分布软件应用程序的特征。在一些实施方案中,集成云环境可另外提供用于针对基于web的应用程序(例如,基于浏览器的Web应用程序、可与马萨诸塞州坎布里奇市的脸谱公司(Facebook,Inc.)的兼容的应用程序、服务器侧Web应用程序,例如微软公司的ASP.NET等)而设计、建构、编译、测试及/或分布软件应用程序的特征。在一些实施方案中,集成云环境可给开发者提供从个别软件开发工具包(SDK)或集成开发环境(IDE)(例如,苹果公司的xCodeTM、加拿大渥太华的Eclipse基金会的Eclipse、微软公司的Visual、纽约阿蒙克市的国际商用机器公司(IBM)的用于软件的Rational Application developer等)移除的开发环境及/或通常用于开发用于无线计算装置的各种平台的软件应用程序及Web应用程序的编程语言(例如,Objective-C、Java、C#等)。在一些实施方案中,用于跨平台软件应用程序的开发的集成云环境可涉及安装于本地开发计算装置上的应用程序开发者接口以用于开发及模拟跨平台软件应用程序的平台独立版本。在一些实施方案中,用于跨平台软件应用程序的开发的集成云环境可涉及经由因特网浏览器程序呈现给开发者的应用程序开发者接口。应用程序开发者接口可给开发者提供到集成云环境的通信信道以用于(举例来说)使用针对朝向特定计算装置平台的应用程序开发而提供的各种软件开发工具包或集成开发环境的方面来用平台特定文件编译平台独立开发文件。
在一些实施方案中,用于各种计算装置的跨平台开发可经由允许开发者经由非经编译资源文件(例如,如本文中所使用的“呈现文件”)定义应用程序的大部分行为的抽象层而实现,在一些实例中,非经编译资源文件例如:例如超文本标记语言(HTML)的标记语言、例如JavaScript的解译语言及例如级联样式表(CSS)的样式表语言。举例来说,呈现文件可包含用于与装置外围设备(例如传感器、控制件及输入/输出机构)交互的命令。在一些实施方案中,呈现文件可进一步包含用于与基于Web的服务(例如装置或平台特定应用程序编程接口(API))交互的命令。在一些实施方案中,用于将呈现文件翻译成平台特定无线计算装置命令的抽象层可使用马里兰州森林小丘市(Forest Hill)的Apache软件基金会(Apache Software Foundation)的Apache Cordova平台来开发。
在一些实施方案中,可在运行时在计算装置上解译呈现文件以实现用户与计算装置之间的交互。在一些实施方案中,呈现文件可由计算装置的浏览器引擎特征解译。在一些实施方案中,呈现文件可经提供用于在计算装置上所再现的“无窗口”(例如,全屏、不界定浏览器边界等)web浏览器接口中呈现。在一些实施方案中,呈现文件可与若干个媒体文件组合,例如在应用程序的执行期间可经由到并入呈现文件中的媒体文件的链路存取及呈现的音频、图像及视频文件。在一些实施方案中,媒体文件与呈现文件的组合可称为跨平台应用程序项目的“内容文件”。
在一个方面中,本发明针对一种方法,所述方法包含通过计算装置的处理器而获得若干个内容文件,其中所述内容文件包含一或多个呈现文件,其中所述一或多个呈现文件中的每一呈现文件包含相应指令,所述相应指令在由单独计算装置的处理器于运行时进行解译时经配置以提供在单独计算装置上执行的软件应用程序的(a)功能性及(b)用户接口中的至少一者。所述方法可进一步包含将所述内容文件提供到所述单独计算装置。在提供所述内容文件之后,所述方法可进一步包含通过所述计算装置的所述处理器而识别所述若干个呈现文件中的至少第一呈现文件的改变及将至少所述第一呈现文件提供到所述单独计算装置,其中所述软件应用程序经配置以作为所述软件应用程序的(a)所述功能性及(b)所述用户接口中的至少一者来执行所述第一呈现文件而不需要在所述单独计算装置上重新安装或重新加载所述软件应用程序。
在一些实施例中,所述内容文件进一步包含一或多个媒体文件。所述相应指令在于运行时进行解译时可经配置以在浏览器应用程序内提供所述软件应用程序的所述用户接口。所述浏览器应用程序可经配置以对所述用户不可见。
在一些实施例中,提供所述内容文件可包含经由无线连接将所述内容文件从所述计算装置推送到所述单独计算装置。提供所述内容文件可包含将所述内容文件上传到可由所述单独计算装置存取的网络存储区域。提供所述内容文件可包含提供含有所述内容文件的安装可执行文件以供下载。
所述安装可执行文件可包含无窗口浏览器应用程序。所述安装可执行文件可包含更新代理,其中所述更新代理在所述软件应用程序的执行期间经配置以接收一或多个额外内容文件,其中所述一或多个额外内容文件中的至少一者包含用于所述内容文件中的第一内容文件的替换文件并用所述替换文件替换所述第一内容文件。所述更新代理可进一步经配置以在用所述替换文件替换所述第一内容文件之后刷新所述软件应用程序的当前用户接口以利用所述替换文件。
在一些实施例中,所述方法可进一步包含呈现所述软件应用程序在移动装置模拟器内的模拟,其中所述移动装置模拟器解译所述一或多个呈现文件中的至少一者的所述指令以在移动装置上模拟所述软件应用程序的功能性。所述移动装置模拟器可包含一或多个控制件,其中所述一或多个控制件在由所述计算装置的用户激活时经配置以将输入供应到所述软件应用程序。所述方法可进一步包含经由所述一或多个控制件中的第一控制件接收定向输入,且响应于所述定向输入而改变所述移动装置模拟器的显示部分的定向。
所述方法可进一步包含经由所述一或多个控制件中的第一控制件接收装置类型输入,且响应于所述装置类型输入而修改所述装置模拟器的外观,其中所述装置模拟器包含移动装置框架及显示区。所述方法可进一步包含响应于所述装置类型输入而刷新由所述移动装置模拟器呈现的当前用户接口。所述方法可进一步包含通过所述计算装置的所述处理器而识别所述若干个呈现文件中的至少第二呈现文件的改变且刷新由所述移动装置模拟器呈现的当前用户接口以包含来自所述第二呈现文件的信息。
在一些实施例中,将所述第一呈现文件提供到所述单独计算装置包含响应于接收到来自所述计算装置的用户的请求而提供所述第一呈现文件。所述请求可识别一或多个计算装置,其中所述一或多个计算装置包含所述单独计算装置。
所述方法可进一步包含在提供所述内容文件之前准备包含所述内容文件的安装文件。准备所述安装文件可包含将数字签名添加到所述安装文件。
在一些实施例中,所述方法进一步包含将所述内容文件存储于版本控制的项目目录中。所述方法可进一步包含在存储地址处接收对至少所述第一呈现文件的请求,其中提供所述第一呈现文件包含在存储地址处提供所述第一呈现文件以供下载。所述存储地址可包含URL。提供所述第一呈现文件可包含打开与所述第二计算装置的文件更新连接。所述第二计算装置可在先前所安装的无窗口浏览器应用程序内执行所述软件应用程序。
在一个方面中,所述本发明针对一种方法,所述方法包含通过计算装置的处理器而获得若干个内容文件,其中所述内容文件包含一或多个呈现文件。所述方法可包含:通过所述计算装置上执行的伴随应用程序而存取所述若干个内容文件;及通过所述伴随应用程序而解译所述一或多个呈现文件中的至少第一呈现文件,其中解译所述第一呈现文件包含再现软件应用程序的(a)功能性及(b)用户接口中的至少一者。所述方法可包含通过所述伴随应用程序而识别用以获得一或多个替换内容文件的请求,且响应于所述请求而通过所述伴随应用程序存取至少第一替换呈现文件,其中所述第一替换呈现文件经配置以替换所述第一呈现文件。所述方法可包含通过所述伴随应用程序而刷新所述软件应用程序的用户接口以呈现从所述第一替换呈现文件解译的信息。
在一些实施例中,所述请求包含在所述单独计算装置的触摸屏接口上执行的手势。所述请求可包含经由通过所述单独计算装置的扫描特征来扫描机器可读记号而获得的扫描数据。所述扫描数据可包含网络地址。存取所述替换呈现文件可包含存取用以获得所述替换呈现文件的网络地址。所述伴随应用程序可包含无窗口浏览器,其中所述软件应用程序的所述用户接口在所述无窗口浏览器内再现。
在一个方面中,本发明针对一种系统,所述系统包含处理器及存储一组指令的非暂时性计算机可读媒体,所述指令在由所述处理器执行时致使所述处理器获得若干个内容文件,其中所述内容文件包含一或多个呈现文件,其中所述一或多个呈现文件中的每一呈现文件包含相应指令,所述相应指令在由单独计算装置的处理器于运行时进行解译时经配置以提供在所述单独计算装置上执行的软件应用程序的(a)功能性及(b)用户接口中的至少一者。所述指令在执行时可致使所述处理器将所述内容文件提供到若干个单独计算装置,且在提供所述内容文件之后,识别所述若干个呈现文件中的至少第一呈现文件的改变并将至少所述第一呈现文件提供到所述若干个单独计算装置中的至少第一计算装置,其中所述软件应用程序经配置以作为所述软件应用程序的(a)所述功能性及(b)所述用户接口中的至少一者来执行所述第一呈现文件而不需要重新安装或重新加载所述软件应用程序。
在一些实施例中,所述第一计算装置经由有线连接而与所述系统通信。提供所述至少所述第一呈现文件可包含将所述至少第一呈现文件提供到第二计算装置,其中所述第二计算装置经由无线连接而与所述系统通信。所述指令在执行时可进一步致使所述处理器在提供所述至少第一呈现文件之前识别无线网络上的所述若干个计算装置中的至少一个计算装置,其中所述至少一个计算装置包含所述第一计算装置。将所述第一呈现文件提供到所述第一计算装置可包含跨越所述无线网络而提供所述第一呈现文件。将所述第一呈现文件提供到所述第一计算装置可包含打开与在所述第一计算装置上执行的下载代理的文件共享连接。
在一些实施例中,所述系统进一步包含输入装置,其中所述指令在执行时进一步致使所述处理器在提供所述至少第一呈现文件之前经由所述输入装置而接收所述若干个计算装置中的至少一个计算装置的指示,其中所述至少一个计算装置包含所述第一计算装置。提供所述第一呈现文件可包含响应于所述指示而将所述第一呈现文件提供到所述至少一个计算装置。
在一个方面中,本发明针对一种存储一组指令的非暂时性计算机可读媒体,所述指令在由处理器执行时致使所述处理器获得若干个内容文件,其中所述内容文件包含一或多个呈现文件,其中所述一或多个呈现文件中的每一呈现文件包含相应指令,所述相应指令在由单独计算装置的处理器于运行时进行解译时经配置以提供在所述单独计算装置上执行的软件应用程序的(a)功能性及(b)用户接口中的至少一者。所述指令在执行时可进一步致使所述处理器将所述内容文件提供到所述单独计算装置,且在提供所述内容文件之后,识别所述若干个呈现文件中的至少第一呈现文件的改变并将至少所述第一呈现文件提供到所述单独计算装置,其中所述软件应用程序经配置以作为所述软件应用程序的(a)所述功能性及(b)所述用户接口中的至少一者来执行所述第一呈现文件而不需要在所述单独计算装置上重新安装或重新加载所述软件应用程序。
在一些实施例中,获得所述若干个内容文件包含经由网络从远程计算装置获得所述若干个内容文件的至少一部分。所述指令在执行时可进一步致使所述处理器响应于识别所述第一呈现文件的所述改变而导致所述第一呈现文件在可由所述远程计算装置存取的存储库中的复制。将所述第一呈现文件提供到所述单独计算装置可包含致使所述第一呈现文件可由所述单独计算装置经由所述网络存取。
附图说明
连同附图一起参考以下说明将更明了及更好地理解本发明的前述及其它目标、方面、特征及优点,附图中:
图1A到1F是图解说明可用于创建用于计算装置的软件应用程序的软件开发环境的系统图;
图2A到2C是图解说明可用于开发用于计算装置的软件应用程序的实例方法的流程图;
图3A及3B是图解说明可用于开发用于计算装置的软件应用程序的额外实例方法的流程图;
图4A及4B是图解说明可用于开发用于计算装置的软件应用程序的进一步实例方法的流程图;
图5A到5H图解说明可用于创建用于计算装置的软件应用程序的软件开发环境的实例用户接口;
图6是用于创建用于计算装置的软件应用程序的另一实例网络环境的框图;
图7是计算装置及移动计算装置的框图。
当连同图式一起时,依据下文所陈述的详细说明将更明了本发明的特征及优点,其中在通篇中相似参考字符识别对应元件。在图式中,相似元件符号通常指示相同、功能上类似及/或结构上类似的元件。
具体实施方式
在一些实施方案中,本发明可针对用于计算装置的软件开发的环境及方法。在一些实施方案中,开发过程可包含用于部署于两个或两个以上计算装置平台上的软件应用程序的跨平台开发。在一些实例中,计算装置平台可是指一组特定配置参数,例如以下各项中的一或多者:装置操作系统(例如,华盛顿州雷德蒙德市的微软公司的 、LinuxTM、加利福尼亚州库比蒂诺市的苹果公司的MacTM OS、安大略省滑铁卢市的行动研究有限公司的行动研究(RIM)OS等)、操作系统版本、装置应用程序格式(例如,苹果公司的iOSTM、加利福尼亚州门洛帕克市的谷歌公司的AndroidTM、微软公司的Phone、加利福尼亚州帕洛阿尔托市的惠普公司的PalmTM webOSTM、爱尔兰都柏林的埃森哲公司(Accenture PLC)的SymbianTM、韩国首尔的三星电子公司的BadaTM等)及装置外围配置(例如,输入及输出装置,例如在一些实例中,传感器、扬声器、麦克风、虚拟键盘及/或小型键盘、按钮及其它物理控制输入等)。
如本文中所描述,在一些实施方案中,集成云环境(ICE)可提供用于开发可经编译以在两个或两个以上计算装置平台上运行的跨平台软件应用程序的接口。在一些实施方案中,集成云环境可包含用于针对若干个无线计算装置平台而设计、建构、编译、测试及/或分布软件应用程序的特征。在一些实施方案中,集成云环境可另外提供用于针对基于web的应用程序(例如,基于浏览器的Web应用程序、可与马萨诸塞州坎布里奇市的脸谱公司的兼容的应用程序、服务器侧Web应用程序,例如微软公司的ASP.NET等)而设计、建构、编译、测试及/或分布软件应用程序的特征。在一些实施方案中,集成云环境可给开发者提供从个别软件开发工具包(SDK)或集成开发环境(IDE)(例如,苹果公司的xCodeTM、加拿大渥太华的Eclipse基金会的Eclipse、微软公司的Visual、纽约阿蒙克市的国际商用机器公司(IBM)的用于软件的RationalApplication developer等)移除的开发环境及/或通常用于开发用于无线计算装置的各种平台的软件应用程序及Web应用程序的编程语言(例如,Objective-C、Java、C#等)。在一些实施方案中,用于跨平台软件应用程序的开发的集成云环境可涉及安装于本地开发计算装置上的应用程序开发者接口以用于开发及模拟跨平台软件应用程序的平台独立版本。在一些实施方案中,用于跨平台软件应用程序的开发的集成云环境可涉及经由因特网浏览器程序呈现给开发者的应用程序开发者接口。应用程序开发者接口可给开发者提供到集成云环境的通信信道以用于(举例来说)使用针对朝向特定计算装置平台的应用程序开发而提供的各种软件开发工具包或集成开发环境的方面来用平台特定文件编译平台独立开发文件。
在一些实施方案中,用于各种计算装置的跨平台开发可经由允许开发者经由非经编译资源文件(例如,如本文中所使用的“呈现文件”)定义应用程序的大部分行为的抽象层而实现,在一些实例中,非经编译资源文件例如:例如超文本标记语言(HTML)的标记语言、例如JavaScript的解译语言及例如级联样式表(CSS)的样式表语言。举例来说,呈现文件可包含用于与装置外围设备(例如传感器、控制件及输入/输出机构)交互的命令。在一些实施方案中,呈现文件可进一步包含用于与基于Web的服务(例如装置或平台特定应用程序编程接口(API))交互的命令。在一些实施方案中,用于将呈现文件翻译成平台特定无线计算装置命令的抽象层可使用马里兰州森林小丘市的Apache软件基金会的Apache Cordova平台来开发。
在一些实施方案中,可在运行时在计算装置上解译呈现文件以实现用户与计算装置之间的交互。在一些实施方案中,呈现文件可由计算装置的浏览器引擎特征解译。在一些实施方案中,呈现文件可经提供用于在计算装置上所再现的“无窗口”(例如,全屏、不界定浏览器边界等)web浏览器接口中呈现。在一些实施方案中,呈现文件可与若干个媒体文件组合,例如在应用程序的执行期间可经由到并入呈现文件中的媒体文件的链路存取及呈现的音频、图像及视频文件。在一些实施方案中,媒体文件与呈现文件的组合可称为跨平台应用程序项目的“内容文件”。
在一些实施方案中,图1A到1F可图解说明用于开发用于部署到包含两个或两个以上装置平台的若干个计算装置的跨平台软件应用程序的集成云环境的变化形式。举例来说,图1A到1C可图解说明使用用于开发跨平台软件应用程序的桌面客户端应用程序的集成云环境,而图1D到1F可图解说明使用用于开发跨平台软件应用程序的实施云的(例如,基于浏览器的)应用程序的集成云环境。
转到图1A,集成云环境100可包含与云网络104通信的开发计算装置102(例如,膝上型计算机、桌面计算机、平板计算机、笔记型计算机或可出于软件开发目的而配置的其它计算装置)。在一些实施方案中,云网络104可包含用于产生平台特定计算装置应用程序的开发服务器106、用于将与如所收集的跨平台软件应用程序项目有关的项目文件110(例如,内容文件及其它文件)存储(举例来说)于项目目录112中的项目存储库108及用于启用开发计算装置102与云网络104之间的开发环境接口的web服务器114。
在一些实施方案中,为开始集成云环境100中的开发,开发者可首先将开发客户端应用程序116下载及安装于开发计算装置102上。在一些实例中,开发客户端应用程序116可从网络云104(例如,如所图解说明)下载、经由另一网络(例如,经由Web浏览器或基于Web的应用程序商店等)下载或经由可由开发计算装置102(在一些实例中,例如光盘(CD)、数字视频盘(DVD)或通用串行总线(USB)存储器装置)存取的可移除计算机可读媒体而安装。
在一些实施方案中,开发客户端应用程序116可实现开发接口118在开发计算装置102上的本地呈现。在一些实施方案中,开发客户端应用程序116可包含特征或包含对基于云的特征(例如,经由web服务器114而提供)的存取以用于经由开发接口118使用呈现文件及其它(例如,媒体、元数据等)文件来编程及调试跨平台软件应用程序。
在一些实施方案中,开发客户端应用程序116可进一步包含特征或包含对基于云的特征(例如,经由web服务器114而提供)的存取以用于经由开发接口118而在两个或两个以上计算装置平台上模拟软件应用程序。举例来说,可呈现具有第一屏幕大小以及第一外围及控制特征的第一装置模拟器以模拟第一装置平台(例如,例如开发接口118中所呈现的装置模拟器120),且可呈现具有第二屏幕大小以及第二外围及控制特征的第二装置模拟器以模拟第二装置平台。
在一些实施方案中,装置模拟器120可包含用于模拟传感器、输入/输出元件及所模拟装置平台上的其它特征的行为的一或多个传感器输入/输出模拟特征。举例来说,将详细论述与图5A到5H中所图解说明的用户接口有关的此些特征。
在一些实施方案中,一旦开发者对所模拟应用程序的性能感到满意,开发者便可将任何本地所存储项目文件122(例如,呈现文件、媒体文件等)上传到项目存储库108,在项目存储库108中,本地所存储项目文件122可存储(举例来说)为项目目录112中的项目文件110的一部分。在一些实施方案中,开发客户端应用程序116在跨平台软件应用程序的开发期间可复制及/或维持项目存储库108中的项目文件122中的一或多者。举例来说,在保存文件后,开发客户端应用程序116可起始新或经修改文件到项目存储库108的上传。在一些实施方案中,项目文件122可保留在开发计算装置102本地直到开发者请求产生一或多个平台特定应用程序文件(例如,可执行文件、安装文件、运行时间文件的可下载绑定,例如压缩文件等)时为止。
为实现平台特定应用程序文件的产生,在一些实施方案中,开发客户端应用程序116可将本地所存储项目文件122的一部分复制到项目存储库108。举例来说,依据项目存储库108,项目文件110可与平台特定文件124组合以创建平台特定应用程序文件。在一些实施方案中,更新代理126可包含于平台特定应用程序文件中(举例来说)以在对目标计算装置的测试期间实现内容文件的部分更新。在一些实施方案中,平台特定应用程序文件可包含平台特定或装置特定电子签名(举例来说)以允许特定目标计算装置将平台特定应用程序文件辨识为信任文件而非恶意软件或可能病毒。在一些实施方案中,开发客户端应用程序116可上传目标无线计算装置信息,在一些实例中,包含装置品牌、型号、操作系统、操作系统版本或唯一装置识别符。在一些实施方案中,开发客户端应用程序116可上传开发者信息,例如,在一些实施方案中,关于开发者的人口统计信息(例如,名称、联系信息等)及如由签名颁发机构提供的身份验证的证书,例如对应于特定无线装置平台的签名颁发机构。
在一些实施方案中,开发客户端应用程序116可提供来自开发者的关于在平台特定应用程序文件的构建中是否包含更新代理126的指示。举例来说,开发者可指定平台特定应用程序文件中包含更新代理126以允许平台特定应用程序文件中的每一者在相应目标计算装置上的应用程序的执行期间部分地更新。在另一实例中,开发者可具有产生调试模式应用程序文件(例如,包含更新代理126)或生产模式应用程序文件(例如,待经由应用程序商店、基于Web的下载站点或其它分布机构分布到最终用户)的选项。
转到图1B,在一些实施方案中,集成云环境130可进一步包含一组目标无线计算装置132,例如智能电话132a、翻盖式电话132b及个人数字助理(PDA)132c。如所图解说明,目标无线计算装置132中的每一者个别地(举例来说)通过插入到开发计算装置102的端口的线或电线栓接到开发计算装置102。在一些实施方案中,除经由有线连接连接到开发计算装置102外,目标无线计算装置132中的一或多者可由开发计算装置102经由无线机构存取。举例来说,目标无线计算装置132中的一或多者可连接到与开发计算装置102相同的局域网络(LAN)、校园网络、Wi-FiTM网络或其它无线网络连接。在一些实施方案中,特定目标无线计算装置132与开发计算装置102之间的直接连接或无线连接的选择可部分地基于与出于开发目的而上传的新可执行文件有关的目标无线计算装置132的特定品牌或平台的权限。举例来说,特定品牌或平台可不提供用于开发模式应用程序文件的无线下载的机会。
如所图解说明,在一些实施方案中,一组平台特定可执行文件134(例如,安装文件、应用程序文件等)可从云网络104递送到开发计算装置102。在一些实施方案中,平台特定可执行文件134可各自定制到特定目标无线计算装置132。在一些实施方案中,开发客户端应用程序116可识别属于目标无线计算装置132中的特定一者的平台特定可执行文件134中的每一者且将相关联平台特定可执行文件134下载到每一相应目标无线计算装置132。举例来说,第一平台特定开发可执行文件134a可通过开发客户端应用程序116推送到智能电话132a,而第二平台特定可执行文件134b可推送到翻盖式电话132b且第三平台特定可执行文件134c可推送到PDA 132c。在一些实施方案中,在从开发客户端应用程序116上传平台特定可执行文件134后,平台特定可执行文件134中的每一者即刻可自动安装于相应目标无线计算装置132上。在其它实施方案中,开发者可起始在每一目标无线计算装置132上的安装。
转到图1C,在一些实施方案中,经更新开发客户端应用程序140可进一步包含目标无线计算装置132中的每一者与开发计算装置102之间的无线通信。举例来说,目标无线计算装置132中的每一者可连接到与开发计算装置102相同的无线网络,而在目标无线计算装置132中的每一者之间未必连接到相同无线网络。举例来说,翻盖式电话132b可连接到Wi-FiTM网络,而PDA 132c可连接到网络。在一些实施方案中,更新代理126可包含唯一无线识别符以使得开发客户端应用程序116能够辨识给定网络上的目标无线计算装置132中的每一者。在一些实施方案中,更新代理126可包含唯一识别符以使得开发客户端应用程序116能够辨识每一相应目标无线计算装置132上运行的特定平台特定开发应用程序142(例如,使用特定平台特定可执行文件134而安装,如关于图1B所描述)。
在测试目标无线计算装置132中的每一者上的平台特定开发应用程序142时,在一些实施方案中,开发者可选择修改内容文件144中的一或多者(例如,经由开发计算装置102上的开发接口118)。举例来说,内容文件144可包含在运行时间期间通过呈现文件存取的一或多个呈现文件或媒体文件。在一些实施方案中,举例来说在保存每一经修改内容文件144后或在请求用经修改内容文件144更新平台特定应用程序142后,可将对内容文件144的改变提供到云网络104。在一些实施方案中,对内容文件144做出的修改可添加到项目存储库108中的项目文件110。在一些实施方案中,经更新内容文件144可替换存储于项目存储库108中的现有项目文件110。在一些实施方案中,经更新内容文件144中的一或多者可作为现有项目文件110的新版本添加到项目目录112。
如果在运行时间期间解译经修改内容文件144而非将其编译成二进制可执行文件,那么在一些实施方案中,经修改内容文件144可推送到目标无线计算装置132中的一或多者以供由相应平台特定开发应用程序142使用。在一些实施方案中,开发客户端应用程序116可打开与目标无线计算装置132中的每一者的文件传送连接。举例来说,在一些实施方案中,经由平台特定开发应用程序142中的每一者运行的更新代理126可实现与开发客户端应用程序116的文件共享会话的创建。尽管图解说明为跨越无线连接而传送,但在一些实施方案中,目标无线计算装置132中的一或多者可栓接到开发计算装置102。另外,尽管目标无线计算装置132中的每一者图解说明为接收内容文件144的副本,但在一些实施方案中,开发者可选择目标无线计算装置132用于接收内容文件144的一部分。举例来说,开发者可在不将经更新内容文件144提供到翻盖式电话132b及PDA 132c的情况下检验智能电话132a上的功能性。
在一些实施方案中,经由平台特定开发应用程序142中的每一者运行的更新代理126可监视相应目标无线计算装置132上的内容文件目录以辨识内容文件的添加或更新。在一些实施方案中,在辨识到新或经更新内容文件后,更新代理126即刻可刷新平台特定开发应用程序142的当前呈现。以此方式,举例来说,由开发者做出的修改可立即反映于每一经更新目标无线计算装置132上的用户接口中而不需要重新加载或重新开始相应平台特定开发应用程序142。
在一些实施方案中,在类似集成云环境150中,开发者可通过连接到云网络104中的web服务器114而开发且测试跨平台软件应用程序以在web客户端应用程序156内工作。在一些实施方案中,web客户端应用程序156可为基于浏览器的程序以用于递送服务器侧开发客户端应用程序164。举例来说,Web客户端应用程序呈现文件151可提供(例如,下载)到开发计算装置102以经由开发接口118而实现开发。在一些实施方案中,web客户端应用程序156可为能够与由web服务器114提供的开发客户端应用程序164集成在一起的桌面或移动装置应用程序。如同关于图1A所描述的集成云环境100,在一些实施方案中,web客户端应用程序156及/或开发客户端应用程序164可用于呈现包含装置模拟器120的开发接口118。
在开发跨平台软件应用程序时,开发者可创建一或多个内容文件及/或将一或多个内容文件上传到web服务器114。在一些实施方案中,内容文件可存储于项目目录112的项目文件110内,举例来说存储于项目存储库108内。
在一些实施方案中,开发者可将伴随应用程序安装可执行文件152下载到目标无线计算装置132中的一或多者。在一些实施方案中,伴随应用程序安装可执行文件152可经由移动装置应用程序服务器158(举例来说经由包含经提供以供购买或免费的若干个移动装置应用程序的应用程序商店160)可获得。在一些实施方案中,两个或两个以上移动装置应用程序服务器可提供对伴随应用程序安装可执行文件152的存取。举例来说,应用程序商店160可为平台特定应用程序商店,例如苹果公司的用于iPhoneTM应用程序商店。在一些实施方案中,移动装置应用程序服务器158可从云网络104提供于单独网络166内。在其它实施方案中,网络166可包含于云网络104内。伴随应用程序可执行文件152a、152b及152c中的每一者可经产生以与特定操作系统及/或装置平台一起操作。举例来说,伴随应用程序可执行文件152a可经产生用于安装于目标无线计算装置132a的装置平台上。
在下载伴随应用程序安装可执行文件152后,相应伴随应用程序162a、162b、162c即刻可安装于相应目标无线计算装置132a、132b、132c上。在一些实施方案中,伴随应用程序162可用于产生用于呈现经由开发客户端应用程序164及web客户端应用程序156开发的内容文件144的壳体环境。在一些实施方案中,伴随应用程序162可包含用于呈现内容文件144的无窗口浏览器特征。在一些实施方案中,伴随应用程序162可包含额外功能性,例如接收代理(未图解说明)能够从云网络104接收内容文件且更新代理(未图解说明)经配置以允许(举例来说)在请求后即刻及/或自动地在伴随应用程序162内更新内容文件。
转到图1E,在已安装伴随应用程序162之后,与当前项目(例如,如经由开发客户端应用程序164及web客户端应用程序156而开发的、项目目录112中所积累的)有关的内容文件122可下载及再现于伴随应用程序162内。举例来说,伴随应用程序162可表现为用于开启开发客户端应用程序164及web客户端应用程序156内所开发的跨平台软件应用程序的功能性的壳体。可在伴随应用程序162内开启此功能性,举例来说,开发应用程序170a、170b、170c。在一些实施方案中,伴随应用程序162可组织两个或两个以上开发应用程序(例如,对应于两个或两个以上跨平台软件应用程序项目)或单个开发应用程序的两个或两个以上版本以用于跨平台软件应用程序的持续测试及开发。
如图1F中所图解说明,在跨平台开发应用程序已部署到目标无线计算装置132之后,可修改、更新或添加一或多个内容文件144。在一些实施方案中,可将内容文件144拉到目标无线计算装置132。举例来说,在菜单选择、预设定触摸屏手势或对网络位置的存取后,目标无线计算装置132中的每一者可即刻接收一或多个内容文件144。在一些实施方案中,内容文件144的下载可由构建到伴随应用程序162中的功能性辅助。在一些实施方案中,内容文件144可自动地推送到目标无线计算装置132中的一或多者。举例来说,经由与云网络104的网络连接或经由与计算装置102的无线连接,内容文件144可递送到目标无线计算装置132中的一或多者。
在一些实施方案中,在下载内容文件144后,伴随应用程序162即刻可重新产生目前显示以自动地检索内容文件144内所提供的新内容。举例来说,类似于关于图1A到1C所描述的更新代理126的功能性可构建到伴随应用程序162中,以此方式,伴随应用程序162a、162b及162c可分别呈现经更新开发应用程序170’a、170’b及170’c。
在一些实施方案中,一旦开发者已确定测试应用程序如所期望地起作用,项目文件110便可与(举例来说)开发服务器106内的平台特定文件124合并以构建部署应用程序。在一些实施方案中,部署应用程序可提供到计算装置102或传送到应用程序商店,例如关于图1D所描述的应用程序商店158。
图2A到2C呈现图解说明用于开发跨平台软件应用程序的一组方法200、270、280的流程图。举例来说,方法200可与方法270(例如,在涉及客户端安装的开发解决方案的情况中)或方法280(例如,在涉及基于浏览器的开发环境的情况中)组合。
转到图2A,在一些实施方案中,方法200可以存取用于开发跨平台软件应用程序的开发客户端应用程序(202)开始。在一些实施方案中,存取开发客户端应用程序可包含安装用于与集成云开发环境介接的客户端应用程序。在一些实施方案中,开发客户端应用程序可经由轻客户端或浏览器接口而提供。
在一些实施方案中,可创建跨平台软件应用程序项目(204)。在一些实施方案中,项目可与一或多个开发文件、目标计算装置及用于开发跨平台软件应用程序的其它资源相关联。在一些实施方案中,在创建新项目后,即刻可将一或多个基本呈现文件添加到项目目录(例如,本地的及/或经由网络云可存取的)。举例来说,基本呈现文件可配置有标准包含物及结构以提供用于呈现应用程序接口的粗略框架。在一些实施方案中,基本呈现文件可包含描述在一些实例中包含文本、控制件及图像的应用程序的呈现的至少一个标记语言文件。此外,在一些实施方案中,基本呈现文件可包含用于描述可适合于在运行时呈现的样式的一或多个样式表文件加上可支持(例如,在一些实例中)响应于用户起始的动作(例如,控制选择、文本输入、语音输入等)及响应于装置事件(例如,响应于装置传感器事件)而将执行的编程动作的一或多个解译语言文件。在特定实例中,基本呈现文件可包含用于与无窗口浏览器呈现引擎介接的JavaScript文件、用于建立基本显示设定的style.css文件及用于将各种呈现文件链接在一起的index.html文件。
在一些实施方案中,可包含抽象层库以实现对包含于特定无线计算装置平台中的特征、输入/输出元件、传感器及/或外围装置的调用。举例来说,可包含Apache Cordova以提供对无线计算装置平台的特征的存取。举例来说,使用抽象层可获得的类属函数可映射到特定传感器装置、输入/输出装置或个别计算装置平台的其它特征(例如,经由应用程序编程接口),从而允许开发者在不知晓关于如每平台级别上所实施的特征的特定信息的情况下与这些特征交互。在一些实例中,抽象层可包含对扬声器元件、加速度计元件、全球定位系统(GPS)元件或许多计算装置常见的其它元件的类属调用。
在一些实施方案中,开发者可在创建新项目之前注册具有集成云环境的新用户账户或登录具有集成云环境的现有账户。在项目创建期间,一或多个项目目录可经创建用于存储跨平台软件应用程序的开发中所使用的项目材料(例如,元数据、呈现文件、媒体文件、可执行文件等)。
在一些实施方案中,可呈现用于开发用于跨平台软件应用程序项目的呈现文件的应用程序开发用户接口(206)。在一些实施方案中,呈现文件可形成在运行时将解译为跨平台软件应用程序的用户接口的一组平台独立内容文件的一部分。在一些实施方案中,应用程序开发用户接口可包含用于编辑呈现文件(例如,HTML、CSS及JavaScript文件等)的编辑器。在一些实施方案中,编辑器可包含语法着色、语法格式化、重构及/或代码导航能力以使得开发者能够易于创建及修改用于跨平台软件应用程序项目的一组相关内容文件。
在一些实施方案中,可呈现用于将内容文件添加到跨平台软件应用程序项目的项目文件导航接口(208)。在一些实施方案中,项目文件导航接口可包含含有与一或多个计算装置平台有关的原生平台代码文件的几个文件及目录以及平台独立内容(例如呈现文件及媒体文件)的文件及目录。在一些实施方案中,可在网络云中管理原生平台代码文件,而可在开发计算装置上在本地复制平台独立文件。在一些实施方案中,开发者可将文件从其它项目目录拷贝到当前项目目录中以在开发新跨平台软件应用程序中使用。举例来说,开发者可已在集成云环境中创建一或多个跨平台软件应用程序。在一些实施方案中,开发者可将一或多个本地所存储媒体文件(例如音频、图像及视频文件)拖放到项目文件导航接口中。
在一些实施方案中,跨平台软件应用程序的模拟可在装置模拟器中运行(210)。举例来说,在创建、编辑及解决项目内容中的任何预编译程序错误(例如内容文件中的链接问题)之后,开发者可选择构建跨平台软件应用程序的模拟器版本以用于在开发客户端应用程序中进行测试。在一些实施方案中,装置模拟器可再现为开发客户端应用程序中的覆盖。在一些实施方案中,装置模拟器可作为开发计算装置的显示区域(例如,内建或外部监视器等)上的单独应用程序而开启。在一些实施方案中,装置模拟器可经配置以模拟若干个不同计算装置平台。在一些实例中,装置模拟器可包含用于智能电话、PDA、平板计算机、便携式多媒体装置及其它计算装置或装置平台的多种品牌及型号的模拟结构。在一些实施方案中,模拟器可包含用于改变模拟结构的控制件以模拟装置或装置平台的不同类型、品牌及/或型号。
在一些实施方案中,开发者可经由模拟结构上所图解说明的控制件而与模拟交互。举例来说,开发者可选择(例如,经由触摸屏上的手势、用鼠标或其它指针装置进行点击等)按钮或其它控制件,例如模拟结构中所再现的内建键盘的键。在一些实施方案中,开发者可使用连接到开发计算装置的输入装置(例如键盘及/或鼠标)以将输入(例如,登录信息、对基于触摸屏的控制件的“触摸”等)提供到由装置模拟器再现的所模拟应用程序。
在一些实施方案中,开发者可将输入“命令”的文件馈送到装置模拟器。举例来说,测试呈现文件可含有若干个输入命令以用于模拟到跨平台软件应用程序的模拟的输入,例如,在一些实例中,地理位置信息及加速度计读数。
在一些实施方案中,装置模拟器可包含用于模拟用户输入(例如传感器数据及装置定向)的特征。举例来说,装置模拟器可包含输入机构以提供地理位置信息、加速度信息、光电传感器输入、麦克风输入或其它所模拟输入。
在模拟期间,基于所模拟应用程序的功能性(212),在一些实施方案中,可接收对跨平台软件应用程序项目的更新(214)。举例来说,开发者可在与装置模拟器交互与更新一或多个内容文件之间进行切换以调整所模拟应用程序的行为。在一些实施方案中,在所模拟应用程序正由装置模拟器执行时,可将对在运行时间期间可解译的一或多个内容文件的更新施加到所模拟应用程序。在一些实施方案中,可响应于经更新内容文件而刷新装置模拟器的显示以将包含由开发者提供的改变的所模拟应用程序的外貌呈现给开发者。在一些实例中,在经更新内容文件内所做出的改变可影响所再现文本的大小、位置、色彩或字形,添加或移除交互式控制,给屏幕添加背景图像,或响应于与所模拟装置结构或其它所模拟输入的交互而修改所模拟应用程序的行为。
在某一时刻,开发者可决定在目标计算装置上运行跨平台软件应用程序。转到图2B,在一些实施方案(例如涉及本地开发客户端应用程序的实施方案)中,方法200之后可能接着为方法270,方法270以接收一或多个目标计算装置的选择(216)而开始。在一些实施方案中,开发者可从目标计算装置的一列可用品牌及/或型号选择一或多个目标计算装置。在一些实施方案中,目标计算装置平台可由开发者而非计算装置的特定品牌或型号的指示供应。
在一些实施方案中,开发者可注册具有项目或具有集成云环境的一或多个计算装置(例如,经由用户账户)。在一些实施方案中,计算装置中的一或多者可注册为具有无线计算平台(例如,iOSTM、Google AndroidTM等)的开发装置。举例来说,装置可配设为“开发装置”以在开发过程期间实现开发应用程序通过开发者的直接加载。举例来说,开发装置的配设可由特定计算装置平台决断。在一些实施方案中,配设或证书可由开发者上传以对具有集成云环境的装置进行身份验证。在一些实施方案中,所供应配设或证书可与用户账户相关联,以使得可关于与开发者相关联的任何项目使用计算装置。
在一些实施方案中,关于此注册的信息可作为元数据提供到待与项目相关联的集成云环境。在一些实施方案中,开发者可从一列所注册目标计算装置选择一或多个目标计算装置。
在其它实施方案中,开发客户端应用程序可识别与开发计算装置通信的一或多个计算装置。举例来说,开发客户端应用程序可检索关于与开发计算装置通信的每一计算装置的信息(例如,识别符、平台信息等)并将这些信息作为选择为目标计算装置的候选呈现给用户。在一些实施方案中,在检测计算装置后,集成云环境即刻可确定计算装置的平台是否需要配设为开发装置。如果是,那么在一些实施方案中,集成云环境可提示开发者供应将计算装置配设为用于相关联平台的开发装置的证据。
在一些实施方案中,可起始开发应用程序可执行文件的编译(218)。在一些实施方案中,开发者可经由开发客户端应用程序的用户接口选择起始用于在选择目标计算装置上安装跨平台软件应用程序的应用程序可执行文件的产生的控制件(例如,“在目标计算装置上运行”、“编译用于目标计算装置的测试应用程序”等)。举例来说,响应于此控制件的选择,开发客户端应用程序可起始用于所选择的每一目标计算装置的平台特定应用程序可执行文件(例如,可执行应用程序文件、安装文件等)的编译。在一些实施方案中,一或多个内容文件可上传到集成云环境以用于包含于开发应用程序可执行文件的编译中。
在一些实施方案中,可接收一或多个开发应用程序可执行文件(220)。举例来说,开发计算装置可从云网络接收一或多个开发应用程序可执行文件。在一些实施方案中,开发应用程序可执行文件可包含用以安装于目标计算装置上及与目标计算装置介接的平台特定功能及框架。在一些实施方案中,开发应用程序可执行文件可包含用于经由目标计算装置平台进行检验或授权的数字签名。在一些实施方案中,开发应用程序可执行文件可包含用于在安装于目标计算装置上之后部分地更新开发应用程序的更新代理。
在一些实施方案中,可识别一或多个目标计算装置(222)。举例来说,如果未进行关于一或多个目标计算装置的选择,那么开发客户端应用程序可识别与开发计算装置通信的一或多个目标计算装置。在一些实施方案中,目标计算装置可与开发计算装置直接(例如,栓接、有线)通信。在一些实施方案中,目标计算装置中的一或多者可与开发计算装置无线通信。
在一些实施方案中,对于每一所识别目标计算装置(226),可将对应应用程序可执行文件推送到目标计算装置(224)。在一些实施方案中,开发客户端应用程序可将每一可执行文件推送到相应目标计算装置。在一些实施方案中,开发者可将应用程序可执行文件手动传送到对应目标计算装置。在一些实施方案中,应用程序可执行文件可经配置以在下载到目标计算装置后即刻自动安装。在一些实施方案中,开发客户端应用程序可起始目标计算装置中的一或多者上的所下载应用程序可执行文件的安装的执行。在一些实施方案中,应用程序可执行文件可在下载后即刻开始安装。在一些实施方案中,开发者可起始应用程序可执行文件在目标计算装置上的手动安装。
在一些实施方案中,可识别无线网络上的一或多个目标计算装置(228)。举例来说,在开发计算装置应用程序下载及安装于每一目标计算装置上之后的某一时刻,开发者可断开先前直接连接到开发计算装置的目标计算装置中的至少一者。关于所述实例进一步地,目标计算装置可与和开发计算装置相同的无线网络(例如,Wi-FiTM等)通信。
在一些实施方案中,可接收一或多个内容文件的更新或添加(230)。举例来说,经由开发客户端应用程序用户接口,开发者可在与目标计算装置中的一或多者上运行的开发应用程序交互期间响应于所观察到行为而将修改应用于内容文件中的一或多者。举例来说,显示器的一部分可不如所预期而再现,或控制件可不以预期方式作出响应。在一些实施方案中,开发者可经由修改内容文件中的一或多者及/或添加一或多个新内容文件而将修理应用于行为。如果经修改及/或新内容文件包含仅在运行时间期间解译的文件,那么在一些实施方案中,包含于开发计算装置应用程序中的更新代理可经配置以接收且集成所更新内容文件与开发计算装置应用程序。
对于每一目标计算装置(238),如果可获得与目标计算装置的无线连接(232),那么在一些实施方案中,可经由无线连接将经更新及/或所添加内容文件推送到目标计算装置(234)。在一些实施方案中,构建到开发应用程序中的更新代理可经配置以经由无线网络建立与开发计算装置的文件共享连接。在其它实施方案中,文件共享连接可配置于目标计算装置与开发计算装置之间而不需要的更新代理的辅助。举例来说,无线计算装置平台通信协议可用于建立无线目标计算装置与开发计算装置之间的连接。如果不可获得与目标计算装置的无线连接(232),那么在一些实施方案中,可经由直接(例如,有线、栓接)连接将经更新及/或所添加内容文件推送到目标计算装置(236)。在有线或无线情况中,在一些实施方案中,开发客户端应用程序可将内容文件推送到每一目标计算装置上的当前含有由开发应用程序使用的内容文件的目录结构中。在一些实施方案中,编译成开发应用程序的更新代理可检索推送到临时目录中的一或多个文件且将所述文件移动到活动目录(例如,由开发应用程序读取的目录)中。
转到图2C,方法200可以方法280继续,方法280以将下载信息提供到目标计算装置(240)而开始。举例来说,在准备项目的内容文件后,可给开发者提供参考以使目标计算装置指向用以下载内容文件的网络位置。在一些实施方案中,在开发计算装置的显示区内可提供快速响应(QR)代码。举例来说,目标无线计算装置的扫描特征可用于扫描QR代码以检索其中可获得内容文件的网络位置,例如统一资源定位器(URL)。在一些实施方案中,位置可提供到开发计算装置的显示区域,举例来说作为文本或作为超链接。在一些实施方案中,对于任何额外装置(242),可以类似方式提供下载信息。
在一些实施方案中,目标计算装置可使用下载信息来下载内容文件(246)。在一些实施方案中,可将内容文件下载到表现为用于证明开发应用程序的功能性的壳体的伴随应用程序中。开发者可继续测试目标计算装置上的开发应用程序。
在某一稍后时间点处,在一些实施方案中,可接收一或多个内容文件的添加或对一或多个内容文件的更新(248)。举例来说,经由开发客户端应用程序用户接口,开发者可在与目标计算装置中的一或多者上运行的开发应用程序交互期间响应于所观察到行为而将修改应用于内容文件中的一或多者。举例来说,显示器的一部分可不如所预期而再现,或控制件可不以预期方式作出响应。在一些实施方案中,开发者可经由修改内容文件中的一或多者及/或添加一或多个新内容文件而将修理应用于行为。在一些实施方案中,伴随应用程序可经配置以接收且集成经更新及/或额外内容文件。
如果存在与特定目标计算装置所建立的连接(250),那么在一些实施方案中,可将内容文件推送到目标计算装置(256)。举例来说,在一些实施方案中,在内容文件的初始下载后,即刻可在集成云环境与目标计算装置之间建立共享网络连接。在其它实施方案中,可将一或多个内容文件直接从开发计算装置推送到目标计算装置(例如,在将内容文件从云网络下载到开发计算装置之后)。
在一些实施方案中,内容文件可经提供以供下载(252)。举例来说,内容文件可经提供以供在与一组初始内容文件相同的网络位置处或在不同网络位置处下载。
在一些实施方案中,目标计算装置可拉取经更新内容文件(254)。在一些实施方案中,开发者可使用QR代码、URL或其它输入信息来起始下载。在其它实施方案中,网络位置可存储于目标计算装置(例如,通过伴随应用程序的特征)内,且在从开发者接收特定输入后即刻可自动拉取内容文件。举例来说,在选择显示内的菜单项后或在经由目标计算装置的触摸屏识别特定手势后,可将内容文件拉到目标计算装置。对于每一额外目标计算装置(258),取决于是否存在到用于内容文件的自动推送(256)的目标计算装置的连接(250)或是否将内容文件拉到(254)目标计算装置,可将内容文件传送到目标计算装置。
转到图3A,流程图图解说明在一些实施方案中可用于开发跨平台软件应用程序的方法300。在一些实施方案中,方法300可以接收与跨平台软件应用程序项目有关的一组内容文件(302)而开始。在一些实施方案中,内容文件可提供为在运行时间期间将由平台特定开发应用程序解译的信息。举例来说,内容文件可包含经配置以经由在目标计算装置上执行的浏览器引擎特征(例如,在“无窗口”浏览器应用程序内)而呈现应用程序图形用户接口的呈现文件及媒体文件。在一些实施方案中,可将内容文件上传到联网环境,例如用于产生并入有所述组内容文件的一或多个平台特定应用程序可执行文件的集成云环境。在一些实施方案中,除内容文件之外,还可接收其它文件或信息,例如,在一些实例中,关于用于产生平台特定应用程序可执行文件、媒体或用于具有无线计算装置应用程序代码(例如,用作应用程序图标的图像等)的编译时间包含物的其它文件的目标计算装置平台的信息、关于经注册以使用用于开发跨平台软件应用程序的集成云环境的特定项目或开发者的信息及呈现开发者被授权开发用于一或多个特定计算装置平台的计算装置应用程序的证据的注册信息、配设信息或证书信息。在一些实施方案中,一或多个其它文件可在一些实例中基于名称、元数据或文件结构位置而识别为编译时间文件而非解译文件。
在一些实施方案中,内容文件及任何其它文件的目的及使用可经由用于将跨平台软件应用程序映射到用于存取装置特征(例如,传感器、输入/输出元件等)的平台特定命令的抽象层的目录结构而部分地导出。举例来说,为使用Apache Cordova抽象层来开发应用程序,可在“WWW”文件目录中提供内容文件。在一些实施方案中,在创建跨平台软件应用程序时,可在由开发者存取的开发环境中部分地呈现抽象层的目录结构。
在一些实施方案中,对于每一目标计算装置平台(308),可将内容文件与对于特定目标计算装置平台为平台特定的平台特定文件组合以创建用于目标计算装置平台的一组项目文件(304)。在一些实施方案中,平台特定文件可包含平台特定库以使得用于与装置特征(例如,传感器、输入/输出元件等)介接的抽象层能够与特定计算装置平台通信。在一些实施方案中,可从用于创建用于特定计算装置平台的计算装置应用程序的软件开发工具包(SDK)获得平台特定文件。举例来说,一或多个平台特定SDK可全部或部分地部署于网络云环境中以用于基于跨平台软件应用程序文件而产生平台特定软件应用程序可执行文件。
另外,在一些实施方案中,可将内容文件与其它跨平台文件组合以实现跨平台软件应用程序的功能性。举例来说,可将内容文件与库、抽象层或其它构造组合以支持一或多个计算装置平台上的跨平台软件应用程序的功能性。在特定实例中,内容文件可拷贝到并入有Apache Cordova平台的目录结构中。
在一些实施方案中,更新代理还可与项目文件合并以使得在安装于目标计算装置上时能够更新平台特定开发应用程序(306)。在一些实施方案中,更新代理可包含用于提供由开发计算装置用于识别在目标计算装置上执行的平台特定开发应用程序的识别机构的一或多个算法。在一些实施方案中,更新代理可包含用于在目标计算装置与开发计算装置之间建立文件共享连接以用于从开发计算装置接收经更新内容文件的一或多个算法。在一些实施方案中,更新代理可包含用于监视用于从开发计算装置推送到目标计算装置的经更新或新文件的目录(例如内容文件目录或临时目录)的一或多个算法。
在一些实施方案中,对于每一目标计算装置平台(314),可编译项目文件以创建用于目标计算装置平台的相应平台特定开发应用程序可执行文件(310)。在一些实施方案中,可在集成云环境中使用平台特定SDK的部分产生平台特定开发应用程序可执行文件(例如,安装可执行文件)。举例来说,可经由云网络存取经由平台特定SDK提供的编译及构建操作以编译及构建平台特定开发应用程序可执行文件。
此外,在一些实施方案中,对于每一目标计算装置平台(314),可将数字签名添加到用于特定目标计算装置平台的开发应用程序可执行文件(312)。在一些实施方案中,代码签名技术可由计算装置平台用于确保代码的完整性。举例来说,数字签名可适用于平台特定开发可执行文件以允许与所述计算装置平台配置的目标计算装置对应用程序代码的源(例如,开发者、公司等)进行身份验证。在一些实施方案中,数字签名可适用于平台特定开发应用程序可执行文件以将关于与代码相关联的意向的信息提供到目标计算装置。在一些实施方案中,意向可包含哪些装置能力由平台特定开发应用程序(例如,地理位置、Wi-FiTM等)存取。举例来说,可将意向呈现给用户以将供应到平台特定开发应用程序的存取告知用户以实现平台特定开发应用程序的功能性。在特定实例中,AppleiOSTM可接收包含意向声明及经身份验证开发者证书的移动配设文件。
在一些实施方案中,由开发者提供的元数据可用于编码具有数字签名的可执行文件。在一些实例中,配设或证书可基于开发者在用以在特定计算装置平台上开发新计算装置应用程序的请求下提交的应用程序而供应到开发者。关于配设或证书的信息或在一些实施方案中配设或证书本身可供应到集成云环境以供包含于平台特定开发应用程序可执行文件中。
在一些实施方案中,平台特定开发应用程序可执行文件可提供到开发计算装置(316)。举例来说,集成云环境可将开发应用程序可执行文件上传到目标计算装置上的目录。在一些实施方案中,平台特定开发应用程序可执行文件可放置于临时目录中。在其它实施方案中,开发者可请求平台特定开发应用程序可执行文件的下载。
在一些实施方案中,可将内容文件存储于版本受控的项目目录中(318)。举例来说,在集成云环境中可维持内容文件的多个版本以用于往回滚动到开发的先前阶段或用于与团队中的额外开发者共享。在一些实施方案中,项目文件及/或平台特定开发应用程序可执行文件还可存储于版本受控的项目目录。在一些实施方案中,在项目目录中可维持数字签名数据,例如配设或证书数据。在其它实施方案中,在包含为数字签名之后可删除配设或证书数据的副本(举例来说)以保护开发者抵抗数字签名数据的盗窃及误用。
转到图3B,流程图图解说明在一些实施方案中可用于开发跨平台软件应用程序的方法330。在一些实施方案中,方法330可以检索与跨平台软件应用程序项目有关的一组内容文件(332)而开始。在一些实施方案中,内容文件可提供为在运行时间期间将由平台特定开发应用程序解译的信息。举例来说,内容文件可包含经配置以经由在目标计算装置上执行的浏览器引擎特征(例如,在“无窗口”浏览器应用程序内)而呈现应用程序图形用户接口的呈现文件及媒体文件。在一些实施方案中,除内容文件之外,还可接收其它文件或信息,例如,在一些实例中,关于用于产生平台特定应用程序可执行文件、媒体或用于具有开发应用程序代码(例如,待用作应用程序图标的图像等)的编译时间包含物的其它文件的目标计算装置平台的信息、关于经注册以使用用于开发跨平台软件应用程序的集成云环境的特定项目或开发者的信息及呈现开发者被授权开发用于一或多个特定计算装置平台的软件应用程序的证据的注册信息、配设信息或证书信息。在一些实施方案中,一或多个其它文件可在一些实例中基于名称、元数据或文件结构位置而识别为编译时间文件而非解译文件。
在一些实施方案中,内容文件及任何其它文件的目的及使用可经由用于将跨平台软件应用程序映射到用于存取装置特征(例如,传感器、输入/输出元件等)的平台特定命令的抽象层的目录结构而部分地导出。举例来说,为使用Apache Cordova抽象层来开发应用程序,可在“www”文件目录中提供内容文件。在一些实施方案中,在创建跨平台软件应用程序时,可在由开发者存取的开发环境中部分地呈现抽象层的目录结构。
在一些实施方案中,可确定存储地址(334)。举例来说,网络位置或URL可经识别以用于将内容文件提供到联网目标计算装置。在一些实施方案中,存储地址可为仅已知目标计算装置可存取(例如,所辨识的唯一识别符)或由具有由集成云环境的安全元件辨识的识别信息(例如,用户识别、口令等)的请求程序存取的地址。
在一些实施方案中,可在存储地址处接收请求(336)。在一些实施方案中,请求可是针对一或多个内容文件的下载。在一些实施方案中,请求可由已知或可识别目标计算装置接收。在一些实施方案中,目标计算装置的用户可在被允许下载内容文件之前提供身份验证信息。
在一些实施方案中,可将内容文件提供到请求目标计算装置(338)。举例来说,在目标计算装置或由目标计算装置提供的用户信息的身份验证后,即刻可将一或多个内容文件下载到目标计算装置。
在稍后时间点处,在一些实施方案中,可接收对内容文件的更新(340)。举例来说,开发者可对开发客户端应用程序内的项目做出改变。在一些实施方案中,经更新内容文件可用于由一或多个目标计算装置下载。
如果特定目标计算装置经配置用于自动接收经更新内容文件(342),那么在一些实施方案中,可将内容文件推送到目标计算装置(338)。举例来说,使用所建立网络连接,可将内容文件自动提供到目标计算装置。在一些实施方案中,在目标计算装置上执行的伴随应用程序可与集成云环境建立内容文件共享连接。
否则,在一些实施方案中,在存储地址处可接收对经更新内容文件的请求(344)。在一些实施方案中,存储地址可与最初确定的存储地址(334)相同以用于提供与跨平台软件应用程序项目有关的内容文件。在一些实施方案中,存储地址可经确定并提供到开发者,举例来说目标计算装置的显示区上的QR代码、URL或文本消息。在一些实施方案中,可将内容文件从存储地址下载到目标计算装置。
图4A图解说明方法400的流程图,在一些实施方案中,方法400可用于执行跨平台软件应用程序的开发版本的部分更新。在一些实施方案中,方法400可以下载开发应用程序可执行文件(402)而开始。在一些实施方案中,开发应用程序可执行文件可用于安装以更新代理特征编译的开发应用程序以用于在测试目标计算装置上的开发应用程序时自动更新内容文件。在一些实施方案中,可将开发应用程序可执行文件从开发计算装置推送到经栓接目标计算装置。在其它实施方案中,可经由无线网络连接将开发应用程序可执行文件从开发计算装置推送到目标计算装置。
在一些实施方案中,可执行开发应用程序可执行文件以安装开发应用程序(404)。在一些实施方案中,开发应用程序可包含使用解译来自一组呈现文件的用户接口指令的浏览器引擎特征(例如,“无窗口”浏览器接口)而产生的接口。在一些实施方案中,可将呈现文件安装于译码成开发应用程序的内容文件目录。
在一些实施方案中,可打开与开发计算装置的文件更新连接(406)。在一些实施方案中,开发应用程序的更新代理特征可与开发计算装置通信以建立文件共享连接。在一些实施方案中,更新代理可将识别经编译以在目标计算装置上运行的开发应用程序的唯一识别符传输到开发计算装置或以其它方式将所述唯一识别符提供到开发计算装置。
在一些实施方案中,可正运行开发应用程序(408)。举例来说,开发者可与开发应用程序直接交互或导致与开发应用程序的交互(例如,将测试输入馈送到目标计算装置)。
在一些实施方案中,可修改内容文件(410)。在一些实施方案中,在测试目标计算装置上的开发应用程序时,开发者可发现关于开发应用程序的性能的问题。在一些实施方案中,开发者可更新一或多个内容文件以更改开发应用程序的性能且将经更新内容文件推送到目标计算装置。举例来说,开发者可改变开发应用程序的用户接口中的控制件的位置。在一些实施方案中,在选择开发客户端应用程序用户接口中的保存控制件后,即刻可将经更新内容文件自动推送到运行具有更新代理特征的开发应用程序的一或多个目标计算装置。在一些实施方案中,开发者可主动选择指导开发客户端应用程序将内容文件推送到目标计算装置的控制件。
在一些实施方案中,在目标计算装置上起作用的更新代理可接收一或多个内容文件的传送。在一些实施方案中,可将内容文件推送到内容文件目录(例如,由开发应用程序用于解译用户接口信息的目录)。在一些实施方案中,可将内容文件推送到临时目录。举例来说,更新代理可辨识一或多个经更新内容文件的接收且将经更新内容文件移动到由开发应用程序读取的内容文件目录中。在一些实施方案中,开发客户端应用程序可将经更新呈现文件及新内容文件(例如,经由脚本语言中的包含声明而链接到经更新呈现文件中等)推送到目标计算装置而非接收仅经更新内容文件。
在一些实施方案中,可响应于接收到经修改内容文件而被迫刷新执行开发应用程序的当前页(例如,视图、用户接口图像等)(412)。在一些实施方案中,更新代理可包含在开发应用程序从相同点继续运行时用于刷新开发应用程序的用户接口的算法。举例来说,如果已更新呈现文件以移动当前所显示的用户接口的视图上的控制件的位置,那么页的刷新可导致控制件在用户接口内的新位置的立即显示。以此方式,在一些实施方案中,可在不导致开发应用程序的功能性的明显延迟或重新开始的情况下做出对开发应用程序的行为的修改。在其它实施方案中,更新代理可在正更新内容文件时停止或暂停开发应用程序,接着重新开始开发应用程序或重新加载开发应用程序以使用经更新内容文件而开始。
图4B图解说明方法420的流程图,在一些实施方案中,方法420可用于执行跨平台软件应用程序的开发版本的部分更新。在一些实施方案中,方法420可以确定伴随应用程序是否已安装于目标计算装置上(422)而开始。在一些实施方案中,如果伴随应用程序安装文件、应用程序文件或其它指示符不位于目标计算装置上,那么可下载伴随应用程序安装可执行文件(424)。在一些实施方案中,可(举例来说)通过浏览或搜索来自目标计算装置的伴随应用程序而从应用程序商店下载伴随应用程序安装可执行文件。在一些实施方案中,可在网络存储位置处存取伴随应用程序安装可执行文件。举例来说,URL可具备下载伴随应用程序安装可执行文件上的信息。在一些实例中,存储位置可提供于再现到开发计算装置及/或目标计算装置的显示区域的QR代码或文本内。
在一些实施方案中,伴随应用程序可包含经配置以再现跨平台软件应用程序的内容文件的无窗口浏览器功能性。在一些实施方案中,无窗口浏览器功能性可进一步包含抽象层库以实现对特征、输入/输出元件、传感器及/或包含于特定计算装置平台中的外围装置的调用。举例来说,可包含Apache Cordova以提供对计算装置平台的特征的存取。在一些实施方案中,无窗口浏览器内再现的内容文件可包含对使用抽象层可获得的类属函数的调用。在一些实例中,可将类属函数映射到特定传感器装置、输入/输出装置或个别计算装置平台的其它特征(例如,经由应用程序编程接口)。举例来说,类属函数可在不知晓关于如每平台级别上所实施的特征的特定信息的情况下给开发者提供用以与这些特征交互的机会。举例来说,抽象层可包含对扬声器元件、加速度计元件、全球定位系统(GPS)元件或许多计算装置常见的其它元件的类属调用。
在一些实施方案中,伴随应用程序可包含用以管理创建于用于开发跨平台软件应用程序的集成云环境中的两个或两个以上跨平台软件应用程序项目的管理特征。举例来说,与两个或两个以上跨平台软件应用程序项目有关的内容文件可下载到目标计算装置且由伴随应用程序管理。
在一些实施方案中,伴随应用程序可包含用于下载及管理用于一或多个跨平台软件应用程序项目的内容文件的功能性。举例来说,伴随应用程序可管理用以对具有提供内容文件的开发服务器的目标计算装置进行身份验证的身份验证信息。在一些实施方案中,伴随应用程序可追踪用于针对所管理跨平台软件应用程序项目中的每一者下载内容文件的存储位置。
在一些实施方案中,可将开发应用程序内容文件下载到目标计算装置(426)。在一些实施方案中,可(举例来说)使用目标计算装置的扫描功能来扫描再现到目标计算装置的显示区的QR代码以获得下载地址。在一些实施方案中,伴随应用程序可包含用于支持内容文件从网络存储位置的下载的功能性。举例来说,基于用户凭据(例如,开发者用户名、口令、项目名称等),伴随应用程序可拉取一或多个项目识别符作为用于下载的选项。举例来说,伴随应用程序可包含图解说明用于将内容文件下载到伴随应用程序的一列选项的菜单。在一些实施方案中,内容文件可在下载后即刻由伴随应用程序组织。举例来说,伴随应用程序可创建用于与两个或两个以上跨平台软件应用程序项目有关的内容文件的单独目录。
在一些实施方案中,开发应用程序的内容文件可再现于伴随应用程序框架内(428)。举例来说,伴随应用程序可供应在其内可再现内容文件的无窗口浏览器特征。此外,在一些实施方案中,伴随应用程序可包含抽象层库。举例来说,抽象层库可实现对特征、输入/输出元件、传感器及/或包含于特定计算装置平台中的外围装置的调用。举例来说,使用抽象层可获得的类属函数可映射到特定传感器装置、输入/输出装置或个别计算装置平台的其它特征(例如,经由应用程序编程接口),从而允许开发者在不知晓关于如每平台级别上所实施的特征的特定信息的情况下与这些特征交互。在一些实例中,抽象层可包含对扬声器元件、加速度计元件、全球定位系统(GPS)元件或许多计算装置常见的其它元件的类属调用。
在稍后时间处,在一些实施方案中,可修改用于开发跨平台软件应用程序的集成云环境内的内容文件(430)。在一些实施方案中,开发者可对跨平台软件应用程序项目做出修改。举例来说,开发者可将用于配设的一或多个内容文件手动提供到一或多个目标计算装置。在另一实例中,可(举例来说)在保存项目文件后即刻自动将一或多个内容文件放置于存储位置中以供检索。
在一些实施方案中,可在目标计算装置上可获得自动更新。举例来说,可添加或改变一或多个内容文件。在一些实施方案中,伴随应用程序可包含用于监视经修改内容文件的存储位置的功能性。举例来说,伴随应用程序可确定一或多个内容文件不同于用于目前执行的开发应用程序的所下载内容文件。如果可获得自动更新(432),那么可自动接收经修改内容文件(436)。
替代地,如果不存在自动更新选项或如果在目标计算装置上不激活自动更新,那么在一些实施方案中,可接收指示用以下载经修改内容文件的请求的手势(434)。在一些实施方案中,用户在于伴随应用程序内执行时可进入触摸屏手势以起始用于开发应用程序的内容文件的下载。举例来说,用户可用三个手指敲击且保持达至少一秒钟以起始内容文件的下载。在其它实例中,用户可使用特定拖动图案或敲击图案来起始内容文件的下载。在一些实施方案中,在开发应用程序的执行期间,开发者可进入伴随应用程序的菜单模式以起始内容文件的下载。举例来说,开发者可选择目标计算装置上的菜单或选项键以起始内容文件的下载。
在一些实施方案中,可接收内容文件(436)。举例来说,使用开发应用程序内容文件的先前所获得存储位置,目标计算装置可下载更新内容文件。在一些实施方案中,伴随应用程序可管理经更新内容文件的下载。举例来说,伴随应用程序可维持用于存取内容文件的存储位置的指示(例如,地址等)。在一些实施方案中,伴随应用程序可提供对目标计算装置作为内容文件的经授权接收者进行身份验证的身份验证信息。在一些实施方案中,可将整组内容文件下载到目标计算装置。在一些实施方案中,可将内容文件的子组(例如,所添加及/或所改变的那些内容文件)下载到目标计算装置。
在一些实施方案中,可迫使执行开发应用程序的当前页的刷新(438)。在一些实施方案中,伴随应用程序可包含在开发应用程序从相同点继续运行时用于刷新开发应用程序的用户接口的刷新特征。举例来说,如果已更新呈现文件以移动当前所显示的用户接口的页上的控制件的位置,那么所述页的刷新可导致控制件在用户接口内的新位置的立即显示。以此方式,在一些实施方案中,可在不导致开发应用程序的功能性的明显延迟或重新开始的情况下做出对开发应用程序的行为的修改。在其它实施方案中,伴随应用程序可在正更新内容文件时停止或暂停开发应用程序,接着重新开始开发应用程序或重新加载开发应用程序以使用经更新内容文件而开始。
图5A到5H图解说明用于开发跨平台软件应用程序的实例用户接口的一系列屏幕截图。在一些实施方案中,屏幕截图可表示以开发客户端应用程序工作的开发者可获得的特征。在一些实施方案中,屏幕截图可表示以开发客户端应用程序工作的开发者经由web客户端应用程序可获得的特征。举例来说,web客户端应用程序可再现于Web浏览器程序内以使用开发客户端应用程序给开发者提供接口。
转到图5A,在一些实施方案中,第一屏幕截图500可图解说明用于创建用于跨平台软件应用程序的新跨平台软件应用程序项目的用户接口。在一些实施方案中,与第一屏幕截图500交互的开发者可登录到具有用于开发跨平台软件应用程序的集成云环境的开发者账户。在一些实施方案中,第一屏幕截图500可呈现于因特网浏览器内。在一些实施方案中,屏幕截图500可呈现为客户端软件应用程序的部分。菜单栏502包含新控制件504a及我的项目控制件504b。在一些实施方案中,选择新控制件504a可导致(举例来说)第一屏幕截图500的主面板508中的新项目对话框506的呈现。在一些实施方案中,开发者可将项目工作空间名称添加于文本输入框510内。举例来说,项目工作空间名称可指示跨平台软件应用程序的类型或标题。
在一些实施方案中,开发者可选择描述控制件512以键入与新项目有关的简单描述。在一些实施方案中,可将项目名称及/或项目描述提供到集成云环境以获得来自用于开发新计算装置应用程序的计算装置平台的权限。举例来说,特定计算装置平台可涉及使用元数据(例如开发者传记信息及项目信息)来接收用以开发用于安装于计算装置平台上的经身份验证应用程序的授权的注册。在一些实施方案中,集成云环境可(举例来说)通过预先配置请求信息而使得开发者能够获得此授权。
在一些实施方案中,为关闭对话框506而不创建新项目,开发者可选择取消控制件516。在一些实施方案中,为接收新项目对话框506内所含有的信息,开发者可选择OK控制件514。在一些实施方案中,在选择OK控制件514后,集成云环境即刻可产生代表开发者的项目内容,例如,在一些实例中,项目元数据、本地存储器及/或联网文件存储库中的项目目录结构及一或多个项目文件,例如用于开发跨平台软件应用程序的基本呈现文件。
在一些实施方案中,在经由选择OK控制件514而创建新项目后,项目即刻可经由菜单栏502中的我的项目控制件514b的选择而存取。
转到图5B,在一些实施方案中,第二屏幕截图520可图解说明用于打开用于开发跨平台软件应用程序的现有跨平台软件应用程序项目的用户接口。如屏幕截图520中所图解说明,选择菜单栏502中的我的项目控制件504b。打开对话框522可呈现第一项目名称524“你好世界(Hello World)”。在一些实施方案中,打开对话框522内可见任何数目个项目名称。举例来说,开发者可从一列可用项目名称选择(例如,鼠标悬停、单击等)第一项目名称524。在一些实施方案中,项目可已使用新对话框506而创建,如关于图5A所描述。在一些实施方案中,工作空间名称“你好世界”可已键入到图5A的文本输入框510中。
打开对话框522包含描述控制件526。在一些实施方案中,描述控制件526可呈现经由新对话框506而键入的信息(例如,如在选择描述控制件512后关于图5A所描述)。举例来说,可选择描述控制件526以观看与选定项目(例如,项目名称524“你好世界”)有关的简单描述。在一些实施方案中,简单描述可进一步包含关于选定项目的元数据,例如,在一些实例中,开发者名称或识别符、创建日期、对项目做出的最后修改的时间标记等。
在一些实施方案中,跨平台软件应用程序项目可由两个或两个以上开发者存取及修改。举例来说,开发团队可共享对选定项目名称524内所含有的文件的存取。在此情形中,举例来说,与跨平台软件应用程序项目相关联的元数据可包含经授权以促成跨平台软件应用程序项目的开发者列表。在一些实施方案中,各种开发者可具有各种权限。举例来说,一些开发者可具有只读存取,而其它开发者可具有对选定跨平台软件应用程序项目的文件的读取/写入存取。
在一些实施方案中,为关闭对话框522而不选择跨平台软件应用程序项目,开发者可选择取消控制件529。在一些实施方案中,为打开打开对话框522内选定的跨平台软件应用程序项目,开发者可选择OK控制件528。在一些实施方案中,在选择OK控制件528后,集成云环境即刻可向开发者呈现用于与关于命名为“你好世界”的跨平台软件应用程序的项目文件一起工作的接口。
转到图5C,在一些实施方案中,第三屏幕截图530可图解说明开发者用以创建、编辑及模拟跨平台软件应用程序的开发环境。如所图解说明,在一些实施方案中,第三屏幕截图530可包含用于选择特定动作(例如添加文件、保存项目内容及运行应用程序)的菜单栏532、用于编辑与跨平台软件应用程序项目有关的内容的编辑窗格534、用于组织及选择与跨平台软件应用程序项目相关联的内容的文件导航窗格536及用于添加或选择用于测试开发应用程序的目标计算装置的装置窗格538。在一些实施方案中,为打开不同跨平台软件应用程序项目或为创建新跨平台软件应用程序项目,用户可选择菜单栏532中的主页控制件546a以返回到如(举例来说)由图5A及5B表示的主用户接口。
在一些实施方案中,以项目导航窗格536开始,项目目录“你好世界”540可包含呈现文件目录542a、图像文件目录542b、音频文件目录542c及视频文件目录542d。在一些实施方案中,文件目录542可含有用于开发跨平台软件应用程序的平台独立文件。在一些实施方案中,文件目录542内所含有的文件可与平台特定文件组合以创建用于下载到特定计算装置平台的安装可执行文件。在一些实施方案中,平台特定文件可存储于用于开发跨平台软件应用程序的集成云环境的云网络中。在一些实例中,跨平台软件应用程序可通过经由浏览器引擎特征呈现应用程序特征(例如在“无窗口”、“无边界”或其它“不可见”浏览器应用程序内)而起作用。举例来说,呈现文件542a可在运行时经解译以经由浏览器引擎特征呈现信息。在一些实施方案中,浏览器引擎特征可提供于“伴随”软件应用程序内。举例来说,开发者可将伴随应用程序下载及安装于目标计算装置上以使得目标计算装置能够作为用于测试跨平台软件应用程序的开发装置。接着可将项目文件下载到用于测试跨平台软件应用程序的伴随应用程序中。在一些实施方案中,浏览器引擎特征可与呈现文件542、平台特定文件及其它文件组合(例如,与其一起编译)以创建开发应用程序可执行文件。
呈现文件542a可链接到(举例来说)存储于图像文件目录542b、音频文件目录542c及/或视频文件目录542d中的媒体项目,例如图像、音频及/或视频。在一些实施方案中,可以若干个呈现文件格式开发呈现文件542a,例如,在一些实例中,HTML、JavaScript及CSS。在一些实施方案中,以两个或两个以上呈现文件格式写入的文件可链接在一起以创建跨平台软件应用程序接口及功能性。举例来说,如第三屏幕截图530中所图解说明,呈现文件目录542a包含以CSS、JavaScript及HTML写入的文件544。
在一些实施方案中,开发者可选择文件导航窗格536中可获得的文件544中的一者(在一些实施方案中)以观看及编辑编辑窗格534中的信息。举例来说,可在文件导航窗格536中选择style.css文件544d,从而在编辑窗格534内呈现style.css文件544d的内容。在一些实施方案中,可在编辑窗格534内打开多个文件544。举例来说,style.css文件544d可再现为编辑窗格534内的标签。
在一些实施方案中,除选择现有文件544外,开发者可将新文件添加到跨平台软件应用程序项目。转到菜单栏532,在一些实施方案中,可选择添加控制件546b以将新文件添加到跨平台软件应用程序项目。在一些实施方案中,选择添加控制件546b可导致可提供两个或两个以上文件类型(在一些实例中,例如HTML文件、JavaScript文件或CSS文件)的选项的对话接口的呈现。在一些实施方案中,选择添加控制件546b可导致文件导航窗格的呈现以从另一跨平台软件应用程序项目(例如,由开发者创建或对开发者可见的项目)、本地硬盘驱动器或可由开发计算装置存取的另一存储位置输入一或多个文件。举例来说,开发者可选择添加控制件546b以将一或多个媒体文件(例如图像、音频文件或视频文件)添加到“你好世界”项目。
转到编辑窗格534下方的装置窗格538,在一些实施方案中,所列的一或多个装置(例如“My iPad”装置549)可指示开发客户端应用程序中的由开发者注册的若干个目标计算装置。在一些实施方案中,开发客户端应用程序可辨识连接(例如,有线或无线)例开发计算装置的一或多个目标计算装置。举例来说,可在连接到开发计算装置后即刻识别可与开发客户端应用程序兼容的目标计算装置(例如,运行于针对其开发客户端应用程序可产生平台特定计算装置应用程序的平台上)。举例来说,在将目标计算装置经由开发计算装置的USB端口连接到开发计算装置后,开发客户端应用程序可辨识目标计算装置且输入关于目标计算装置的信息。在一些实施方案中,开发客户端应用程序可打开对话框以给开发者提供用于指定关于所识别目标计算装置的信息的一部分的方法。举例来说,开发客户端应用程序可辨识为iPad 1.1的目标计算装置型号549a、唯一装置识别符代码549c、为5.0.1的平台操作系统版本549d及为的平台供应商549e以及名称549b(例如,“My iPad”)。在一些实施方案中,除自动检测外,可朝向定位所连接目标计算装置而引导开发客户端应用程序。举例来说,用户接口(未图解说明)中的控制件可经存取以指导开发客户端应用程序“找出所连接装置”。
尽管以装置窗格538图解说明,但在一些实施方案中,在跨平台软件应用程序的开发期间,含有装置窗格538的第三屏幕截图530的部分可用可辅助开发者定位及修理任何语法及链接错误的工具栏替换。举例来说,开发者可在编辑窗格534中工作,而下方的消息窗格提供对错误的指示以及(在一些实施方案中)在定位关于正开发的代码的可能问题中的导航辅助设备。在一些实施方案中,可给开发者提供用以检验项目文件内的语法及可能链路错误的控制件。在一些实施方案中,举例来说,在选择保存控制件546c后即刻可自动地检验项目文件。
在一些实施方案中,保存控制件546c的选择可导致所保存文件到网络驱动器(例如与开发客户端应用程序通信的云网络)的复制,从而导致由屏幕截图530所图解说明的用户接口的呈现。举例来说,文件导航窗格536内所显示的文件544可远程地位于云网络存储库中。在一些实施方案中,项目文件544可在项目文件544的开发期间本地存储于(举例来说)开发计算装置的硬盘驱动器区域内。在一些实施方案中,文件544可在选择运行控制件546d后即刻上传到云网络。举例来说,跨平台软件应用程序文件544可上传到集成云环境,其中跨平台软件应用程序文件544可与平台特定文件组合以产生用于部署于特定目标计算装置平台上的开发应用程序。
在某一时间点处,开发者可确定项目是在用于(举例来说)在目标计算装置上还是在模拟中进行测试的条件中。在一些实施方案中,开发者可选择运行控制件546d以与包含在装置上选项548a及在模拟器中选项548b的一组下拉菜单选项548一起呈现。在一些实施方案中,在装置上选项548a在选择时可呈现准备含有用于部署到装置窗格538内所列的iPadTM装置549的应用程序的可执行文件的选项。在一些实施方案中,在装置上选项548a在选择时可呈现提供用于将内容文件下载到安装于目标计算装置(例如iPadTM装置549)上的伴随应用程序的存储位置的选项。如所图解说明,可突出显示在模拟器中选项548b。在一些实施方案中,在选择在模拟器中选项548b后,装置模拟器即刻可呈现于显示区域中,例如对于一些实例,编辑窗格534、邻近于屏幕截图530的显示器、替换屏幕截图530的显示器或部分地覆盖屏幕截图530的显示器。
举例来说,转到图5D,屏幕截图551可用包含模拟控制面板550、装置定向菜单552及智能电话样式装置模拟554的模拟器覆盖。在一些实施方案中,智能电话样式装置模拟554可正在智能电话样式装置模拟554的显示区555中呈现“你好世界”跨平台软件应用程序项目的模拟,(举例来说)基于文件导航窗格536中所列的内容文件544内所含有的信息。如所图解说明,显示器555以第一消息557a“找到我!(Find Me!)”、第二消息557b“打招呼!(Say Hello!)”及第三消息557c“键入你的名称:(Enter your name:)”为特征。在一些实施方案中,开发者可(举例来说)经由控制件558中的一者的选择(例如,点击、鼠标悬停等)直接与智能电话装置模拟554交互。在一个实例中,开发者可(举例来说)使用连接到开发计算装置的键盘来选择文本框控制件558d且敲入信息。
在一些实施方案中,类似于在目标计算装置上运行的跨平台软件应用程序的功能性,模拟器可使用浏览器引擎特征(例如用于在开发计算装置的显示区域上再现接口的无窗口web浏览器框架)创建。
在一些实施方案中,模拟器可包含用于截获被朝向用于将呈现文件命令翻译成平台特定计算装置命令的抽象层引导的API命令的功能。在一些实例中,被朝向传感器、输入/输出装置及其它装置特定特征引导的API命令可由模拟器截获。相反地,在一些实施方案中,模拟器可包含用以提供将由装置特定特征产生的输入的一或多个特征。在一些实施方案中,模拟控制面板550可包含对机构的存取以模拟定向、地理位置、相机、加速度计、光电传感器、生物计量及/或其它计算装置平台特征。
在一些实施方案中,在开启模拟器后,模拟特征可(举例来说)基于由开发者经由开发客户端应用程序设定的用户选项而默认为计算装置平台的特定类型。在一些实施方案中,由模拟器所图解说明的计算装置平台的类型可部分地基于装置窗格538内所列的装置。举例来说,如果所列的第一装置是智能电话的样式或如果装置窗格538中的所突出显示装置是智能电话,那么模拟器可默认为显示智能电话类型装置平台。在其它实施方案中,除以计算装置平台的默认类型显示跨平台软件应用程序的模拟外,用户接口可包含显示可用于模拟的计算装置平台的两个或两个以上类型选项的在模拟器中菜单选项548b的子菜单(如图5C中所显示)。
在一些实施方案中,开发者可经由装置定向菜单552与智能电话装置模拟554交互。在一些实施方案中,开发者可选择第一控制件560a以将智能电话装置模拟554的定向逆时针旋转90°、选择第二控制件560b以将智能电话装置模拟554的定向翻转为倒置的或选择第三控制件560c以将智能电话装置模拟554顺时针旋转90°。
在一些实施方案中,开发者可经由模拟控制面板550存取不同交互机构。如所图解说明,举例来说,可选择定向控制件562a。在定向控制件562a下方,地理位置控制件562b在选择时可用地理位置菜单(如关于图5E进一步所描述)替换装置定向菜单552。在模拟控制面板550的底部,装置选择控制件562c在选择时可给开发者提供用以从智能电话装置模拟554切换到不同计算装置类型或计算装置平台模拟(例如,在一些实例中,平板计算装置模拟、PDA装置模拟或多媒体播放器模拟)的机会。
转到图5E,在一些实施方案中,屏幕截图551可由包含模拟控制面板550、装置地理位置菜单564及PDA样式装置模拟566的模拟器覆盖。在一些实施方案中,PDA样式装置模拟566可使用装置选择控制件562c而选择。举例来说,在选择装置选择控制件562c后,开发者即刻可以用于选择装置平台的类型的对话框呈现以供由模拟器呈现。在一些实施方案中,PDA样式装置模拟566可基于新装置(例如,如装置窗格538中所图解说明的“My Bberry”装置568)的添加而呈现。
PDA样式装置模拟566的显示区570可含有与图5D的智能电话样式装置模拟554上所显示的模拟类似的信息。举例来说,控制件558可以显示区570中的与图5D的智能电话样式装置模拟554上所图解说明类似的组织布置。然而,在一些实例中,修改可基于屏幕大小、相对屏幕尺寸、屏幕分辨率、色彩深度、可用系统字体或智能电话样式装置与PDA样式装置之间固有的其它系统差异而存在。举例来说,PDA样式装置模拟566似乎具有比智能电话样式装置模拟554(例如,如图5D中所展示)小得多的屏幕面积。在一些实施方案中,开发者可在各种计算装置类型的模拟上审阅功能性以检验再现在装置间显现为适当的(例如,不重叠、难以读取或部分离屏信息等)。
PDA样式装置模拟566的显示区570可含有紧挨着第一消息557a(“找到我!”)的激活控制件558c。在一些实施方案中,选择激活控制件558c可激活所模拟计算装置的地理位置特征,从而导出所模拟计算装置的当前位置。在一些实施方案中,使用地理位置对话框564,开发者可模仿到所模拟计算装置的一或多个地理位置传感器的输入。举例来说,地理位置对话框564可包含定位输入框572,例如纬度输入框572a、经度输入框572b、海拔高度输入框572c、准确度输入框572d及海拔高度准确度输入框572e。另外,地理位置框对话564可包含移动输入框574,例如速度输入框574a及航向输入框574b。在一些实施方案中,地理位置对话框564可包含地图576以选择特定位置。在一些实施方案中,航向信息或地图导航可使用罗盘控制件578而提供。
转到图5F,屏幕截图551可用包含模拟控制面板550及智能电话样式装置模拟554的模拟器覆盖。如智能电话样式装置模拟554的显示区555中所图解说明,以前显示“打招呼!”(例如,如图5D及5E中所显示)的第二消息557b可经更新以陈述“在保存文件时改变自动更新!(Changes Auto-Update When the File is Saved!)”。转到菜单栏532,在一些实施方案中,保存控制件546c可经选择以保存对内容文件544中的一或多者做出的修改,如下拉菜单580中所图解说明。在一些实施方案中,在模拟器中测试跨平台软件应用程序的性能时,开发者可对一或多个内容文件544施加修改。举例来说,开发者可对编辑窗格534中所打开的文件style.css 544d施加一或多个改变,如图5F中所图解说明。在一些实施方案后,在保存对文件style.css 544d的改变后,即刻可自动更新跨平台软件应用程序的模拟以反映改变。举例来说,在不复位或重新加载程序的情况下,智能电话样式装置模拟554的显示区555内所图解说明的一或多个项的立即修改(例如用以为经更新(及长得多的)第二消息557b提供空间的控制件558a、558b及558d以及第三消息557c的重新定位)可在显示区555中提供给开发者。在一些实施方案中,跨平台软件应用程序的模拟内的开发客户端应用程序或模拟特征可执行开发计算装置的显示区的屏幕刷新以导致智能电话样式装置模拟554的显示区555的立即重新产生。
在一些实施方案中,类似机构在于目标计算装置上进行测试时可用于更新跨平台软件应用程序的平台特定版本。举例来说,在保存对一或多个内容文件544的一或多个改变后,开发客户端应用程序或开发应用程序(例如,经由web客户端应用程序)可将经更新内容文件推送到目标计算装置,其中跨平台软件应用程序的平台特定版本可包含经配置以辨识新内容文件并刷新目标计算装置的显示区以接近实时地将改变呈现给开发者的更新代理或伴随应用程序。在另一实例中,集成云环境可提供用于下载到目标计算装置的新及/或经更新内容文件。
转到图5G,在一些实施方案中,为执行跨平台软件应用程序的此测试,可选择如屏幕截图590中所图解说明的运行控制件546d,且可激活在装置上下拉菜单选项548a。在一些实施方案中,在装置上下拉菜单选项548a的选择可致使一或多个平台特定应用程序可执行文件(例如,可执行应用程序文件、安装文件等)被产生以用于下载到一或多个目标计算装置。在一些实施方案中,每一目标计算装置(举例来说,例如装置窗格538中所列的“My iPad”装置549及“My Bberry”装置568)可通过每一相关联计算装置平台认证、配设或以其它方式授权为开发装置。在一些实施方案中,在选择在装置上下拉菜单选项548a后,可针对装置窗格538内所列的所有目标计算装置产生应用程序可执行文件。在其它实施方案中,在选择在装置上下拉菜单选项548a后,可针对装置窗格538内选定的任何目标计算装置产生应用程序可执行文件(例如,如图5G的装置窗格538中所图解说明的“My iPad”装置549及“My Bberry”装置568两者)。
在一些实施方案中,应用程序可执行文件的产生可发生于集成云环境中。举例来说,存储于“你好世界”项目目录540中的内容文件542可上传到云网络且与用于每一目标计算装置平台平台的特定文件组合。在一些实施方案中,应用程序可执行文件可下载到开发计算装置上的临时目录以用于分布到一或多个目标计算装置。
在一些实施方案中,应用程序可执行文件可经由有线连接分布到目标计算装置。在一些实施方案中,应用程序可执行文件可(举例来说)经由多个经栓接USB连接同时推送到每一目标计算装置。在一些实施方案中,应用程序可执行文件可(举例来说)经由有线或无线连接串联分布到每一目标计算装置。
在一些实施方案中,伴随应用程序可安装于一或多个目标计算装置上。在一些实施方案中,除针对与伴随应用程序一起安装的目标计算装置构建可执行文件外,集成云环境可提供用于下载到目标计算装置的一组内容文件。举例来说,伴随应用程序可接收内容文件且使得开发者能够执行伴随应用程序壳体内的开发应用程序功能性。
转到图5H,在选择在装置上下拉菜单选项548a之后,弹出窗口592可覆盖屏幕截图590。在一些实施方案中,在弹出窗口592内,QR代码594可连同指导用户“扫描以下QR代码以将移动信息包安装于你的装置上”的消息595一起呈现。在一些实施方案中,目标计算装置的扫描机功能可用于扫描QR代码594并确定其内所译码的存储位置。在其它实施方案中,除呈现QR代码594外,可使用将存储位置呈现到开发计算装置的显示区的文本、超链接、URL或其它形式。在一些实例中,存储位置可包含网络地址或URL。
在一些实施方案中,QR代码594可包含额外信息,例如,在一些实例中,识别与开发者(例如,包含含有内容文件的项目)相关联的一或多个跨平台软件应用程序项目的应用程序识别符、经授权目标计算装置信息(例如,唯一地识别由开发者配设以用于开发的一组目标计算装置的信息)及用于检索内容文件的身份验证信息。在一些实施方案中,伴随应用程序可经配置以使用从存储位置检索内容文件的额外信息的一部分。
在QR代码594上,如弹出窗口592内所图解说明,在一些实施方案中,下拉菜单596可给用户提供用以选择开发应用程序的目标计算装置平台的机会。在一些实施方案中,可提供一或多个平台特定文件。通过经由下拉菜单596提供目标计算装置平台,开发者可确保任何平台特定文件在译码成QR代码594的存储位置处可用。在一些实施方案中,开发者可(举例来说)通过选择复选框597将下拉菜单596内的选定目标计算装置平台设定为默认构建平台。
在QR代码594下方,如弹出窗口592内所图解说明,在一些实施方案中,一组超链接598、599可给用户提供用于将目标计算装置配置为用于开发应用程序的测试装置的额外选项。在一些实施方案中,标示为“我想要使用配设”的第一超链接598在选择时可向用户呈现用以构建用于配设到一或多个目标计算装置的开发应用程序可执行文件的机会,如先前所描述。
在一些实施方案中,标示为“我尚未安装伴随应用程序”的第二超链接599在选择时可向用户呈现关于如何存取及安装伴随应用程序的指令。在一些实施方案中,用户可呈现有含有伴随应用程序的存储位置的QR代码(未图解说明)。在其它实施方案中,用户可呈现有一或多个超链接、URL或其它存储位置信息以检索伴随应用程序安装可执行文件的副本。
返回到图5G,在一些实施方案中,在开发应用程序正于目标计算装置中的每一者上运行时,开发者可更新呈现文件544中的一或多者。在一些实施方案中,开发者可添加新内容文件并将其链接到现有呈现文件544中的一者中。
在一些实施方案中,内容文件的更新及/或添加可推送到运行包含更新代理的开发应用程序的目标计算装置中的每一者。在一些实施方案中,一或多个内容文件的更新及/或添加(举例来说)在使用保存控制件546c保存内容文件后即刻可自动推送到目标计算装置。在一些实施方案中,仅装置窗格538内选定的那些目标计算装置可具有经由保存控制件546c的选择自动推送到其的内容文件。在一些实施方案中,对内容文件中的一或多者的更新可经由开发者的手动努力(例如,通过右击选定目标计算装置及选择用于发送经更新内容文件的菜单选项)推送到选定目标计算装置549、568。在特定实例中,对文件style.css 544d的修改可经由有线或无线连接同时推送到“My iPad”装置549及“MyBberry”装置568两者。在一些实施方案中,如果目标计算装置中的一者不物理连接到开发计算装置,那么在无线网络上可由开发客户端应用程序通过构建到平台特定开发应用程序中的唯一识别符辨识目标计算装置。
在一些实施方案中,内容文件的更新及/或添加可(举例来说)经由集成云环境下载到运行伴随应用程序的目标计算装置中的每一者。在一些实施方案中,内容文件中的一或多者可传送到用于下载到目标计算装置的存储位置。举例来说,更新及/或经添加内容文件可传送到最初用于将内容文件供应到目标计算装置的存储位置。在一些实施方案中,存储位置可传递到在目标计算装置上执行的开发者或伴随应用程序。举例来说,包含存储位置的QR代码可供应到开发计算装置的显示区域,如关于图5H先前所描述。
在一些实施方案中,用户可手动请求内容文件的下载。举例来说,手动请求可经由目标计算装置的用户接口而提交。举例来说,用户可输入用以起始经更新内容文件到目标计算装置的下载的手势,例如特定触摸图案或扫频图案。在另一实例中,用户可选择目标计算装置上的控制件以获得在选择时可起始内容文件的下载的菜单选项。
在一些实施方案中,内容文件可推送到目标计算装置。举例来说,伴随应用程序可包含用于监视用于经更新内容文件的存储位置的特征。举例来说,在辨识经更新内容文件后,伴随应用程序即刻可自动检索内容文件。
如图6中所展示,展示并描述用于开发跨平台软件应用程序的示范性云计算环境600的实施方案。云计算环境600可包含一或多个资源提供者602a、602b、602c(共同地为602)。每一资源提供者602可包含计算资源。在一些实施方案中,计算资源可包含用于处理数据的任何硬件及/或软件。举例来说,计算资源可包含能够执行算法、计算机程序及/或计算机应用程序的硬件及/或软件。在一些实施方案中,示范性计算资源可包含具有存储及检索能力的应用程序服务器及/或数据库。每一资源提供者602可连接到云计算环境600中的任何其它资源提供者602。在一些实施方案中,资源提供者602可经由计算机网络608而连接。每一资源提供者602可经由计算机网络608连接到一或多个计算装置604a、604b、604c(共同地为604)。
云计算环境600可包含资源管理者606。资源管理者606可经由计算机网络608连接到资源提供者602及计算装置604。在一些实施方案中,资源管理者606可促进计算资源通过一或多个资源提供者602到一或多个计算装置604的配设。资源管理者606可从特定计算装置604接收关于计算资源的请求。资源管理者606可识别能够提供由计算装置604请求的计算资源的一或多个资源提供者602。资源管理者606可选择用以提供计算资源的资源提供者602。资源管理者606可促进资源提供者602与特定计算装置604之间的连接。在一些实施方案中,资源管理者606可建立特定资源提供者602与特定计算装置604之间的连接。在一些实施方案中,资源管理者606可以所请求计算资源将特定计算装置604重定向到特定资源提供者602。
图7展示可用于实施本发明中所描述的技术的计算装置700及移动计算装置750的实例。计算装置700打算表示各种形式的数字计算机,例如膝上型计算机、桌上型计算机、工作站、个人数字助理、服务器、刀片式服务器、大型计算机及其它适当计算机。移动计算装置750打算表示各种形式的移动装置,例如个人数字助理、蜂窝式电话、智能电话及其它类似计算装置。此处所展示的组件、其连接及关系及其功能意味着仅为实例且并不意味着具限制性。
计算装置700包含处理器702、存储器704、存储装置706、连接到存储器704及多个高速扩充端口710的高速接口708以及连接到低速扩充端口714及存储装置706的低速接口712。处理器702、存储器704、存储装置706、高速接口708、高速扩充端口710及低速接口712中的每一者使用各种总线互连且可安装于共同主板或以其它方式适当地安装。处理器702可处理供在计算装置700内执行的指令,包含存储于存储器704中或存储装置706上以在外部输入/输出装置(例如耦合到高速接口708的显示器716)上显示用于GUI的图形信息的指令。在其它实施方案中,多个处理器及/或多个总线可适当地连同多个存储器及若干类型的存储器一起使用。此外,可连接多个计算装置,其中每一装置提供必要操作的若干部分(例如,作为服务器组、刀片式服务器群组或多处理器系统)。
存储器704将信息存储于计算装置700内。在一些实施方案中,存储器704是一个或多个易失性存储器单元。在一些实施方案中,存储器704是一个或多个非易失性存储器单元。存储器704还可为另一形式的计算机可读媒体,例如磁盘或光盘。
存储装置706能够提供用于计算装置700的大容量存储装置。在一些实施方案中,存储装置706可为或含有计算机可读媒体,例如软盘装置、硬盘装置、光盘装置或磁带装置、快闪存储器或其它类似固态存储器装置或装置阵列,包含存储区域网络或其它配置中的装置。指令可存储于信息载体中。指令在由一或多个处理装置(举例来说,处理器702)执行时执行一或多种方法,例如上文所描述的那些方法。指令还可由一或多个存储装置(例如计算机或机器可读媒体(举例来说,存储器704、存储装置706或处理器702上的存储器))存储。
高速接口708管理计算装置700的带宽密集型操作,而低速接口712管理较低带宽密集型操作。此功能分配仅是实例的。在一些实施方案中,高速接口708耦合到存储器704、显示器716(例如,经由图形处理器或加速器)且耦合到可接受各种扩充卡(未展示)的高速扩充端口710。在实施方案中,低速接口712耦合到存储装置706及低速扩充端口714。可包含各种通信端口(例如,USB、、以太网、无线以太网)的低速扩充端口714可(例如)经由网络适配器耦合到一或多个输入/输出装置,例如键盘、指针装置、扫描机或联网装置(例如交换机或路由器)。
如图中所展示,可以若干种不同形式来实施计算装置700。举例而言,其可实施为标准服务器720或在此类服务器的群组中多次实施。另外,其可实施于个人计算机(例如膝上型计算机722)中。其还可实施为机架式服务器系统724的一部分。替代地,来自计算装置700的组件可与移动装置(未展示)(例如移动计算装置750)中的其它组件组合。此些装置中的每一者可含有计算装置700及移动计算装置750中的一或多者,且整个系统可由彼此通信的多个计算装置构成。
除其它组件外,移动计算装置750包含处理器752、存储器764、输入/输出装置(例如显示器754)、通信接口766及收发器768。移动计算装置750还可具备存储装置(例如微型驱动器或其它装置)以提供额外存储。处理器752、存储器764、显示器754、通信接口766及收发器768中的每一者使用各种总线而互连,且几个组件可安装于共同主板上或以其它方式适当地安装。
处理器752可执行移动计算装置750内的指令,包含存储于存储器764中的指令。处理器752可实施为包含单独及多个模拟及数字处理器的芯片的芯片集。举例来说,处理器752可提供(例如)用户接口的控制件、由移动计算装置750运行的应用程序及通过移动计算装置750进行的无线通信以用于移动计算装置750的其它组件的协调。
处理器752可经由耦合到显示器754的控制接口758及显示接口756与用户通信。举例来说,显示器754可为TFT(薄膜电晶体液晶显示器)显示器或OLED(有机发光二极管)显示器或其它适当显示技术。显示接口756可包括用于驱动显示器754向用户呈现图形及其它信息的适当电路。控制接口758可从用户接收命令并转换其以供提交到处理器752。另外,外部接口762可提供与处理器752的通信,以实现移动计算装置750与其它装置的近区通信。举例来说,外部接口762可在一些实施方案中提供有线通信或在其它实施方案中提供无线通信,且还可使用多个接口。
存储器764将信息存储于移动计算装置750内。存储器764可实施为一个或多个计算机可读媒体、一个或多个易失性存储器单元或一个或多个非易失性存储器单元中的一或多者。扩充存储器774还可经由扩充接口772提供及连接到移动计算装置750,举例来说,扩充接口772可包含SIMM(单列直插式存储器模块)卡接口。扩充存储器774可为移动计算装置750提供额外存储空间或还可存储用于移动计算装置750的应用程序或其它信息。具体来说,扩充存储器774可包含用以实施或补充上文所描述的过程的指令,且还可包含安全信息。因此,举例来说,扩充存储器774可提供为用于移动计算装置750的安全模块且可以准许移动计算装置750的安全使用的指令进行编程。另外,安全应用程序可连同额外信息一起经由SIMM卡而提供,例如以非黑客方式将识别信息放置于SIMM卡上。
举例来说,存储器可包含快闪存储器及/或NVRAM存储器(非易失性随机存取存储器),如下文所论述。在一些实施方案中,指令存储于信息载体中。所述指令在由一或多个处理装置(举例来说,处理器752)执行时执行一或多种方法,例如上文所描述的那些方法。指令还可由一或多个存储装置存储,例如一或多个计算机或机器可读媒体(举例来说,存储器764、扩充存储器774或处理器752上的存储器)。在一些实施方案中,指令可(举例来说)经由收发器768或外部接口762以所传播信号形式接收。
移动计算装置750可经由通信接口766无线地通信,所述通信接口在需要的情况下可包含数字信号处理电路。通信接口766可提供在各种模式或协议下的通信,例如GSM语音调用(全球移动通信系统)、SMS(短消息服务)、EMS(增强型消息服务)或MMS信息(多媒体消息服务)、CDMA(码分多址)、TDMA(时分多址)、PDC(个人数字蜂窝系统)、WCDMA(宽带码分多址)、CDMA2000或GPRS(通用分组无线服务)以及其它模式或协议。举例来说,此通信可使用射频经由收发器768而发生。另外,短程通信可(例如)使用、Wi-FiTM或其它此类收发器(未展示)而发生。另外,GPS(全球定位系统)接收器模块770可将额外导航及位置相关无线数据提供到移动计算装置750,所述移动计算装置适当地可由移动计算装置750上运行的应用程序使用。
移动计算装置750还可使用音频编解码器760以音频方式通信,所述音频编解码器可从用户接收所说信息并将其转换为可用数字信息。音频编解码器760同样地可(例如)在移动计算装置750的手机中(例如)经由扬声器向用户产生可听声音。此声音可包含来自语音电话呼叫的声音、可包含所记录声音(例如,语音消息、音乐文件等)且还可包含由在移动计算装置750上操作的应用程序产生的声音。
如图中所展示,可以若干种不同形式来实施移动计算装置750。举例来说,其可实施为蜂窝式电话780。其还可实施为智能电话782、个人数字助理或其它类似移动装置的部分。
此处所描述的系统及技术的各种实施方案可以数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件及/或其组合而实现。这些各种实施方案可包含可在可编程系统上执行及/或解译的一或多个计算机程序中的实施方案,所述可编程系统包含可为专用或通用的至少一个可编程处理器(其经耦合以从存储系统接收数据及指令且将数据及指令传输到存储系统)、至少一个输入装置及至少一个输出装置。
这些计算机程序(还称为程序、软件、软件应用程序或代码)包含用于可编程处理器的机器指令且可以高级程序及/或对象导向的编程语言及/或以汇编/机器语言实施。如本文中所使用,术语机器可读媒体及计算机可读媒体是指用于将机器指令及/或数据提供到可编程处理器的任何计算机程序产品、设备及/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),所述可编程处理器包含作为机器可读信号接收机器指令的机器可读媒体。术语机器可读信号是指用于将机器指令及/或数据提供到可编程处理器的任何信号。
为提供与使用者的交互,此处所描述的系统及技术可实施于具有用于向使用者显示信息的显示装置(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)及使用者可通过其将输入提供到计算机的键盘及指针装置(例如,鼠标或轨迹球)的计算机上。也可使用其它种类的装置来提供与用户的交互;举例来说,提供给用户的反馈可为任何形式的感观反馈(例如,视觉反馈、听觉反馈或触觉反馈);且来自用户的输入可以任何形式(包括声音、语音或触觉输入)而接收。
此处所描述的系统及技术可实施于计算系统(包含后端组件(例如,作为数据服务器);或包含中间件组件(例如,应用程序服务器);或包含前端组件(例如,具有用户可经由其来与此处所描述的系统及技术交互的图形用户接口或Web浏览器的客户端计算机))或此类后端、中间件或前端组件的任一组合中。系统的组件可通过任一数字数据通信形式或媒体(例如,通信网络)互连。通信网络的实例包含局域网络(LAN)、广域网络(WAN)及因特网。
计算系统可包含客户端及服务器。客户端与服务器一般彼此远离且通常经由通信网络而交互。客户端与服务器的关系是借助在相应计算机上运行且彼此之间具有客户端-服务器关系的计算机程式而产生。
鉴于此处所描述的系统及方法的结构、功能及设备,在一些实施方案中,提供用于开发跨平台软件应用程序的环境及方法。虽然已描述用于支持开发及测试用于无线计算装置的软件应用程序的方法及设备的特定实施方案,但所属领域的技术人员现将明了,可使用并入有揭示内容的概念的其它实施方案。因此,揭示内容不应限于特定实施方案,而是应仅受所附权利要求书的精神及范围限制。

Claims (44)

1.一种系统,其包括:
处理器;及
存储器,其存储一组指令,所述指令在由所述处理器执行时致使所述处理器:
获得多个内容文件,其中
所述内容文件包括一或多个呈现文件,其中所述一或多个呈现文件中的每一呈现文件包括相应指令,所述相应指令在由单独计算装置的处理器于运行时进行解译时经配置以提供在所述单独计算装置上执行的软件应用程序的(a)功能性及(b)用户接口中的至少一者;
将所述内容文件提供到多个单独计算装置;
在提供所述内容文件之后:
识别所述多个呈现文件中的至少第一呈现文件的改变,且
将至少所述第一呈现文件提供到所述多个单独计算装置中的至少第一计算装置,其中在所述第一计算装置上执行的解译软件经配置以作为所述软件应用程序的(a)所述功能性及(b)所述用户接口中的至少一者来执行所述第一呈现文件而不需要重新安装或重新加载所述软件应用程序。
2.根据权利要求1所述的系统,其中所述第一计算装置经由有线连接与所述系统通信。
3.根据权利要求1或2所述的系统,其中提供所述至少所述第一呈现文件包括将所述至少第一呈现文件提供到第二计算装置,其中所述第二计算装置经由无线连接与所述系统通信。
4.根据权利要求1到3中任一权利要求所述的系统,其中所述指令在执行时进一步致使所述处理器:
在提供所述至少第一呈现文件之前,识别无线网络上的所述多个计算装置中的至少一个计算装置,其中所述至少一个计算装置包括所述第一计算装置;
其中将所述第一呈现文件提供到所述第一计算装置包括跨越所述无线网络提供所述第一呈现文件。
5.根据权利要求4所述的系统,其中将所述第一呈现文件提供到所述第一计算装置包括打开与在所述第一计算装置上执行的下载代理的文件共享连接。
6.根据权利要求1到5中任一权利要求所述的系统,其进一步包括输入装置,其中所述指令在执行时进一步致使所述处理器:
在提供所述至少第一呈现文件之前,经由所述输入装置而接收所述多个计算装置中的至少一个计算装置的指示,其中
所述至少一个计算装置包含所述第一计算装置,且
提供所述第一呈现文件包括响应于所述指示而将所述第一呈现文件提供到所述至少一个计算装置。
7.一种方法,其包括:
通过计算装置的处理器而获得多个内容文件,其中
所述内容文件包括一或多个呈现文件,其中所述一或多个呈现文件中的每一呈现文件包括相应指令,所述相应指令在由单独计算装置的处理器于运行时进行解译时经配置以提供在所述单独计算装置上执行的软件应用程序的(a)功能性及(b)用户接口中的至少一者;
将所述内容文件提供到所述单独计算装置;
在提供所述内容文件之后:
通过所述计算装置的所述处理器识别所述多个呈现文件中的至少第一呈现文件的改变,且
将至少所述第一呈现文件提供所述单独计算装置,其中在所述单独计算装置上执行的解译软件经配置以作为所述软件应用程序的(a)所述功能性及(b)所述用户接口中的至少一者来执行所述第一呈现文件而不需要在所述单独计算装置上重新安装或重新加载所述软件应用程序。
8.根据权利要求7所述的方法,其中所述内容文件进一步包括一或多个媒体文件。
9.根据权利要求7或8所述的方法,其中所述相应指令在于运行时进行解译时经配置以在浏览器应用程序内提供所述软件应用程序的所述用户接口。
10.根据权利要求9所述的方法,其中所述浏览器应用程序经配置以对用户不可见。
11.根据权利要求7到10中任一权利要求所述的方法,其中提供所述内容文件包括经由无线连接将所述内容文件从所述计算装置推送到所述单独计算装置。
12.根据权利要求7到11中任一权利要求所述的方法,其中提供所述内容文件包括将所述内容文件上传到可由所述单独计算装置存取的网络存储区域。
13.根据权利要求7到12中任一权利要求所述的方法,其中提供所述内容文件包括提供含有所述内容文件的安装可执行文件以供下载。
14.根据权利要求13所述的方法,其中所述安装可执行文件包括所述解译软件。
15.根据权利要求13或14所述的方法,其中所述安装可执行文件包括无窗口浏览器应用程序。
16.根据权利要求13到15中任一权利要求所述的方法,其中所述安装可执行文件包括更新代理,其中所述更新代理在所述软件应用程序的执行期间经配置以:
接收一或多个额外内容文件,其中所述一或多个额外内容文件中的至少一者包括用于所述内容文件中的第一内容文件的替换文件,且
用所述替换文件替换所述第一内容文件。
17.根据权利要求16所述的方法,其中所述更新代理进一步经配置以在用所述替换文件替换所述第一内容文件之后刷新所述软件应用程序的当前用户接口以利用所述替换文件。
18.根据权利要求7到17中任一权利要求所述的方法,其进一步包括呈现所述软件应用程序在移动装置模拟器内的模拟,其中所述移动装置模拟器解译所述一或多个呈现文件中的至少一者的所述指令以在移动装置上模拟所述软件应用程序的功能性。
19.根据权利要求18所述的方法,其中所述移动装置模拟器包括
一或多个控制件,其中所述一或多个控制件在由所述计算装置的用户激活时经配置以将输入供应到所述软件应用程序。
20.根据权利要求19所述的方法,其进一步包括:
经由所述一或多个控制件中的第一控制件接收定向输入;及
响应于所述定向输入而改变所述移动装置模拟器的显示部分的定向。
21.根据权利要求19或20所述的方法,其进一步包括:
经由所述一或多个控制件中的第一控制件接收装置类型输入;及
响应于所述装置类型输入而修改所述装置模拟器的外观,其中所述装置模拟器包括移动装置框架及显示区。
22.根据权利要求21所述的方法,其进一步包括响应于所述装置类型输入而刷新由所述移动装置模拟器呈现的当前用户接口。
23.根据权利要求18到22中任一权利要求所述的方法,其进一步包括:
通过所述计算装置的所述处理器而识别所述多个呈现文件中的至少第二呈现文件的改变,及
刷新由所述移动装置模拟器呈现的当前用户接口以包含来自所述第二呈现文件的信息。
24.根据权利要求7到23中任一权利要求所述的方法,其中将所述第一呈现文件提供到所述单独计算装置包括响应于接收到来自所述计算装置的用户的请求而提供所述第一呈现文件。
25.根据权利要求24所述的方法,其中所述请求识别一或多个计算装置,其中所述一或多个计算装置包括所述单独计算装置。
26.根据权利要求7到25中任一权利要求所述的方法,其进一步包括在提供所述内容文件之前准备包括所述内容文件的安装文件。
27.根据权利要求26所述的方法,其中准备所述安装文件包括将数字签名添加到所述安装文件。
28.根据权利要求7到27中任一权利要求所述的方法,其进一步包括将所述内容文件存储于版本受控的项目目录中。
29.根据权利要求7到28中任一权利要求所述的方法,其进一步包括在存储地址处接收对至少所述第一呈现文件的请求,其中提供所述第一呈现文件包括在所述存储地址处提供所述第一呈现文件以供下载。
30.根据权利要求29所述的方法,其中所述存储地址包括URL。
31.根据权利要求7到30中任一权利要求所述的方法,其中提供所述第一呈现文件包括打开与第二计算装置的文件更新连接。
32.根据权利要求7到31中任一权利要求所述的方法,其中所述第二计算装置在先前所安装的无窗口浏览器应用程序内执行所述软件应用程序。
33.一种存储一组指令的非暂时性计算机可读媒体,所述指令在由处理器执行时致使所述处理器:
获得多个内容文件,其中
所述内容文件包括一或多个呈现文件,其中所述一或多个呈现文件中的每一呈现文件包括相应指令,所述相应指令在由单独计算装置的处理器于运行时进行解译时经配置以提供在所述单独计算装置上执行的软件应用程序的(a)功能性及(b)用户接口中的至少一者;
将所述内容文件提供到所述单独计算装置;
在提供所述内容文件之后:
识别所述多个呈现文件中的至少第一呈现文件的改变,且
将至少所述第一呈现文件提供到所述单独计算装置,其中在所述单独计算装置上执行的解译软件经配置以作为所述软件应用程序的(a)所述功能性及(b)所述用户接口中的至少一者来执行所述第一呈现文件而不需要在所述单独计算装置上重新安装或重新加载所述软件应用程序。
34.根据权利要求33所述的计算机可读媒体,其中获得所述多个内容文件包括经由网络从远程计算装置获得所述多个内容文件的至少一部分。
35.根据权利要求34所述的计算机可读媒体,其中所述指令在执行时进一步致使所述处理器响应于识别所述第一呈现文件的所述改变而导致所述第一呈现文件在可由所述远程计算装置存取的存储库中的复制。
36.根据权利要求34或35所述的计算机可读媒体,其中将所述第一呈现文件提供到所述单独计算装置包括致使所述第一呈现文件可由所述单独计算装置经由所述网络存取。
37.一种方法,其包括:
通过计算装置的处理器而获得多个内容文件,其中
所述内容文件包括一或多个呈现文件;
通过在所述计算装置上执行的伴随应用程序而存取所述多个内容文件;
通过所述伴随应用程序而解译所述一或多个呈现文件中的至少第一呈现文件,其中解译所述第一呈现文件包括再现软件应用程序的(a)功能性及(b)用户接口中的至少一者;
通过所述伴随应用程序而识别用以获得一或多个替换内容文件的请求;
响应于所述请求,
通过所述伴随应用程序而存取至少第一替换呈现文件,其中所述第一替换呈现文件经配置以替换所述第一呈现文件,且
通过所述伴随应用程序而刷新所述软件应用程序的用户接口以呈现从所述第一替换呈现文件解译的信息。
38.根据权利要求37所述的方法,其中所述请求包括在所述单独计算装置的触摸屏接口上执行的手势。
39.根据权利要求37或38所述的方法,其中所述请求包括经由通过所述单独计算装置的扫描特征来扫描机器可读记号而获得的扫描数据。
40.根据权利要求39所述的方法,其中所述扫描数据包括网络地址。
41.根据权利要求37到40中任一权利要求所述的方法,其中存取所述替换呈现文件包括存取用以获得所述替换呈现文件的网络地址。
42.根据权利要求37到41中任一权利要求所述的方法,其中所述伴随应用程序包括无窗口浏览器,其中所述软件应用程序的所述用户接口在所述无窗口浏览器内再现。
43.一种系统,其包括:
处理器;及
存储器,其存储一组指令,所述指令在由所述处理器执行时致使所述处理器执行用于解译内容文件的伴随应用程序,此包含以下步骤:
获得多个内容文件,其中
所述内容文件包括一或多个呈现文件,且
所述内容文件在通过所述伴随应用程序进行解译后即刻执行软件应用程序;
存取所述多个内容文件;
解译所述一或多个呈现文件中的至少第一呈现文件,其中解译所述第一呈现文件包括再现软件应用程序的(a)功能性及(b)用户接口中的至少一者;
识别用以获得一或多个替换内容文件的请求;
响应于所述请求,
存取至少第一替换呈现文件,其中所述第一替换呈现文件经配置以替换所述第一呈现文件,及
刷新所述软件应用程序的用户接口以呈现从所述第一替换呈现文件解译的信息。
44.一种其上存储有指令的非暂时性计算机可读媒体,其中所述指令在由处理器执行时致使所述处理器执行用于解译内容文件的伴随应用程序,此包含以下步骤:
获得多个内容文件,其中
所述内容文件包括一或多个呈现文件,且
所述内容文件在通过所述伴随应用程序进行解译后即刻执行软件应用程序;存取所述多个内容文件;
解译所述一或多个呈现文件中的至少第一呈现文件,其中
解译所述第一呈现文件包括再现软件应用程序的(a)功能性及(b)用户接口中的至少一者;
识别用以获得一或多个替换内容文件的请求;
响应于所述请求,
存取至少第一替换呈现文件,其中所述第一替换呈现文件经配置以替换所述第一呈现文件,及
刷新所述软件应用程序的用户接口以呈现从所述第一替换呈现文件解译的信息。
CN201380014469.4A 2012-02-07 2013-02-07 用于软件应用程序的跨平台开发的环境及方法 Pending CN104321745A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261595945P 2012-02-07 2012-02-07
US61/595,945 2012-02-07
US201261642187P 2012-05-03 2012-05-03
US61/642,187 2012-05-03
US13/657,149 US20130205277A1 (en) 2012-02-07 2012-10-22 Environment and method for cross-platform development of software applications
US13/657,149 2012-10-22
PCT/IB2013/000447 WO2013117995A2 (en) 2012-02-07 2013-02-07 Environment and method for cross-platform development of software applications

Publications (1)

Publication Number Publication Date
CN104321745A true CN104321745A (zh) 2015-01-28

Family

ID=48904047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380014469.4A Pending CN104321745A (zh) 2012-02-07 2013-02-07 用于软件应用程序的跨平台开发的环境及方法

Country Status (10)

Country Link
US (1) US20130205277A1 (zh)
EP (1) EP2812797A4 (zh)
JP (1) JP2015510635A (zh)
KR (1) KR20150047453A (zh)
CN (1) CN104321745A (zh)
AU (1) AU2013217338A1 (zh)
BR (1) BR112014019336A2 (zh)
CA (1) CA2863882A1 (zh)
SG (1) SG11201404680SA (zh)
WO (1) WO2013117995A2 (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104834530A (zh) * 2015-05-27 2015-08-12 百富计算机技术(深圳)有限公司 一种pos应用程序的开发方法及云端服务器
WO2016123768A1 (en) * 2015-02-04 2016-08-11 Global Silicon Limited Updating firmware with audio
CN105989068A (zh) * 2015-02-10 2016-10-05 中国移动通信集团贵州有限公司 基于超文本标记语言的移动应用生成方法及装置
CN106020845A (zh) * 2016-05-31 2016-10-12 广东能龙教育股份有限公司 一种客户端混合快速开发方法
CN108170606A (zh) * 2018-01-03 2018-06-15 中国工商银行股份有限公司 系统软件升级类应用的测试系统及方法
CN109471630A (zh) * 2018-11-16 2019-03-15 广州虎牙科技有限公司 一种应用处理方法和设备
CN109525584A (zh) * 2018-11-26 2019-03-26 竞技世界(北京)网络技术有限公司 一种构建移动端跨平台多类型应用容器的方法
CN109753279A (zh) * 2017-11-02 2019-05-14 声达资讯股份有限公司 一种前端整合开发管理系统及其方法
CN110023901A (zh) * 2017-09-21 2019-07-16 甲骨文国际公司 用于更新基于云的多层应用栈的系统和方法
CN112784293A (zh) * 2019-11-08 2021-05-11 游戏橘子数位科技股份有限公司 画面撷取的记录通知的方法
CN112860274A (zh) * 2019-11-27 2021-05-28 华为技术有限公司 程序包部署的方法、装置、终端设备和存储介质
CN113094033A (zh) * 2021-06-07 2021-07-09 南京沁恒微电子股份有限公司 一种mcu集成开发环境的工程结构适配方法
CN113157607A (zh) * 2021-05-20 2021-07-23 中国第一汽车股份有限公司 一种设备适配方法、装置、存储介质和计算机设备
CN114428653A (zh) * 2020-10-29 2022-05-03 慧与发展有限责任合伙企业 使用不同编译设置的代码的即时jit编译实例
CN115145696A (zh) * 2022-08-30 2022-10-04 统信软件技术有限公司 确定进程虚拟机运行差异的方法、系统及计算设备
CN117434883A (zh) * 2023-11-13 2024-01-23 中国电力工程顾问集团有限公司 一种plc程序版本的可视化管理方法及装置

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8640097B2 (en) * 2009-03-16 2014-01-28 Microsoft Corporation Hosted application platform with extensible media format
US9584682B2 (en) * 2012-05-24 2017-02-28 Blackberry Limited System and method for sharing data across multiple electronic devices
US8966441B2 (en) * 2012-07-12 2015-02-24 Oracle International Corporation Dynamic scripts to extend static applications
US20140149966A1 (en) * 2012-11-27 2014-05-29 Inadev Corporation Application, build, integration, and release management system and method
US20140149243A1 (en) * 2012-11-29 2014-05-29 Red Hat, Inc. Vendor download integration
CN103024063A (zh) * 2012-12-24 2013-04-03 腾讯科技(深圳)有限公司 一种数据共享方法、客户端及系统
US9038019B2 (en) 2013-02-05 2015-05-19 Sap Se Paige control for enterprise mobile applications
US9244668B1 (en) * 2013-02-11 2016-01-26 Symantec Corporation Systems and methods for synchronizing mobile computing platforms
WO2014138187A1 (en) 2013-03-05 2014-09-12 Christmas Coy System and method for cubic graphical user interfaces
US9069375B2 (en) * 2013-04-30 2015-06-30 MobileDataForce, Inc. Method and system for platform-independent application development
CN104182241A (zh) * 2013-05-24 2014-12-03 华为终端有限公司 一种网页应用程序更新方法及通信设备
US9563415B2 (en) * 2013-05-28 2017-02-07 Sap Se Generating visually encoded dynamic codes for remote launching of applications
US20140359557A1 (en) * 2013-05-31 2014-12-04 Microsoft Corporation Creating applications
MX2016000616A (es) 2013-07-18 2017-05-17 Fasetto L L C Sistema y metodo para videos desde multiples angulos.
CN103414765B (zh) * 2013-07-26 2017-04-12 华为技术有限公司 图形码中信息的分流方法、装置及系统
TWI488051B (zh) * 2013-08-27 2015-06-11 Benq Corp 媒體資料分享方法
EP2846514A1 (en) * 2013-09-05 2015-03-11 iMinds VZW Method for installing and configuring an application
CA2925626C (en) * 2013-09-30 2022-08-16 Fasetto, Llc Paperless application
US10095873B2 (en) * 2013-09-30 2018-10-09 Fasetto, Inc. Paperless application
US20150161087A1 (en) * 2013-12-09 2015-06-11 Justin Khoo System and method for dynamic imagery link synchronization and simulating rendering and behavior of content across a multi-client platform
US9584402B2 (en) 2014-01-27 2017-02-28 Fasetto, Llc Systems and methods for peer to peer communication
WO2015143416A1 (en) 2014-03-21 2015-09-24 Ptc Inc. Systems and methods for developing and using real-time data applications
US20150268936A1 (en) * 2014-03-21 2015-09-24 Ptc Inc. System and method for testing computing devices in a heterogeneous environment
US9467533B2 (en) 2014-03-21 2016-10-11 Ptc Inc. System and method for developing real-time web-service objects
WO2015152882A1 (en) * 2014-03-31 2015-10-08 Hewlett-Packard Development Company, L.P. Candidate services for an application
WO2015191828A1 (en) * 2014-06-11 2015-12-17 Arizona Board Of Regents For The University Of Arizona Adaptive web analytic response environment
CN105446980B (zh) * 2014-06-27 2018-12-14 北京金山安全软件有限公司 一种鉴别图片垃圾文件的方法及装置
WO2016007780A1 (en) 2014-07-10 2016-01-14 Fasetto, Llc Systems and methods for message editing
US10963539B2 (en) * 2014-09-10 2021-03-30 Mk Systems Usa Inc. Interactive web application editor
US20160077955A1 (en) * 2014-09-16 2016-03-17 International Business Machines Corporation Regression testing of responsive user interfaces
US8997081B1 (en) * 2014-09-18 2015-03-31 Ensighten, Inc. Analytics for mobile applications
US11216253B2 (en) * 2014-10-03 2022-01-04 Kony, Inc. Application prototyping tool
MX2017004463A (es) 2014-10-06 2017-08-18 Fasetto Llc Sistemas y metodos para dispositivos de almacenamiento portatiles.
US10437288B2 (en) 2014-10-06 2019-10-08 Fasetto, Inc. Portable storage device with modular power and housing system
US9880816B2 (en) * 2014-11-27 2018-01-30 Sap Se Simulator with local resource capabilities
EP3269124B1 (en) 2015-03-11 2020-05-06 Fasetto, Inc. Method and device for web api communications
US9645814B1 (en) * 2015-05-04 2017-05-09 Amazon Technologies, Inc. Generating and publishing applications for multiple platforms
US10459600B2 (en) * 2015-06-24 2019-10-29 Microsoft Technology Licensing, Llc Conversion of platform-independent accessibility logic into platform-specific accessibility functionality
US9419857B1 (en) * 2015-07-24 2016-08-16 Accenture Global Services Limited Cloud-based multi-layer security architecture with hub and spoke development environment
US10303331B2 (en) * 2015-08-04 2019-05-28 Apptimize, Inc. Live mobile application visual editor demo
US10146512B1 (en) 2015-08-28 2018-12-04 Twitter, Inc. Feature switching kits
JP2018522317A (ja) * 2015-09-02 2018-08-09 グーグル エルエルシー ソフトウェア開発および分散プラットフォーム
CN106559438B (zh) 2015-09-24 2019-12-31 阿里巴巴集团控股有限公司 一种基于目标网络平台的程序上传方法和装置
US10929071B2 (en) 2015-12-03 2021-02-23 Fasetto, Inc. Systems and methods for memory card emulation
US9674108B1 (en) * 2015-12-30 2017-06-06 Accenture Global Solutions Limited Hub-and-spoke connection architecture
US10496419B2 (en) * 2016-06-10 2019-12-03 Apple Inc. Editing inherited configurations
US10248412B2 (en) 2016-09-20 2019-04-02 Microsoft Technology Licensing, Llc Sharing applications by modifying attributes
US10372443B2 (en) * 2016-10-18 2019-08-06 Oracle International Corporation Multi-platform pattern-based user interfaces
CN106533860A (zh) * 2016-11-18 2017-03-22 深圳Tcl智能家庭科技有限公司 一种智能家居交互软件总线系统及实现方法
EP3545661B1 (en) 2016-11-23 2023-01-04 Fasetto, Inc. Systems and methods for streaming media
US10282402B2 (en) 2017-01-06 2019-05-07 Justin Khoo System and method of proofing email content
WO2018144833A1 (en) 2017-02-03 2018-08-09 Fasetto, Llc Systems and methods for data storage in keyed devices
CN106652613A (zh) * 2017-03-09 2017-05-10 南通理工学院 一种基于云计算的软件类课程移动学习平台
US10303462B2 (en) * 2017-05-31 2019-05-28 Microsoft Technology Licensing, Llc Windows support of a pluggable ecosystem for universal windows application stores
CN107346338B (zh) * 2017-06-30 2021-01-01 武汉斗鱼网络科技有限公司 文件目录排序方法及装置
WO2019079628A1 (en) 2017-10-19 2019-04-25 Fasetto, Inc. PORTABLE ELECTRONIC DEVICE CONNECTING SYSTEMS
JP2021505938A (ja) 2017-12-01 2021-02-18 ファセット・インコーポレーテッド データ暗号化を改善するシステムおよび方法
US11102316B1 (en) 2018-03-21 2021-08-24 Justin Khoo System and method for tracking interactions in an email
WO2019204524A1 (en) 2018-04-17 2019-10-24 Fasetto, Inc. Device presentation with real-time feedback
US10795670B2 (en) * 2018-12-20 2020-10-06 Roblox Corporation Developer collaboration control system
US20200257523A1 (en) * 2019-02-11 2020-08-13 International Business Machines Corporation Application feature change detection
GB2625653A (en) 2019-06-10 2024-06-26 Fisher Rosemount Systems Inc Automatic load balancing and performance leveling of virtual nodes running real-time control in process control systems
US11249464B2 (en) * 2019-06-10 2022-02-15 Fisher-Rosemount Systems, Inc. Industrial control system architecture for real-time simulation and process control
GB2621485A (en) 2019-06-10 2024-02-14 Fisher Rosemount Systems Inc Ease of node switchovers in process control systems
US11487510B2 (en) * 2020-10-20 2022-11-01 Intuit, Inc. Dynamic web-based integrated development environment
JP2022086158A (ja) 2020-11-30 2022-06-09 ブラザー工業株式会社 セットアッププログラム、情報処理装置、およびシステム
JP2022086157A (ja) 2020-11-30 2022-06-09 ブラザー工業株式会社 セットアッププログラム、情報処理装置、およびシステム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090119678A1 (en) * 2007-11-02 2009-05-07 Jimmy Shih Systems and methods for supporting downloadable applications on a portable client device
US20100281475A1 (en) * 2009-05-04 2010-11-04 Mobile On Services, Inc. System and method for mobile smartphone application development and delivery
CN102184101A (zh) * 2011-04-27 2011-09-14 赵悦 一种面向智能手机的软件应用框架及其开发系统
CN102289374A (zh) * 2011-08-31 2011-12-21 中兴通讯股份有限公司 一种构建跨平台软件运行环境的方法及装置
CN102323880A (zh) * 2011-06-30 2012-01-18 中兴通讯股份有限公司 基于浏览器解析方式的手机应用界面的开发方法和终端

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078787A1 (en) * 2002-07-19 2004-04-22 Michael Borek System and method for troubleshooting, maintaining and repairing network devices
US8108455B2 (en) * 2002-10-31 2012-01-31 Oracle America, Inc. Mobile agents in peer-to-peer networks
JP2007089136A (ja) * 2005-08-23 2007-04-05 Ricoh Co Ltd 画像処理方法、画像処理プログラム、記録媒体及び複合装置
US8190650B2 (en) * 2006-05-02 2012-05-29 Microsoft Corporation Efficiently filtering using a web site
WO2008035339A2 (en) * 2006-09-21 2008-03-27 Vringo, Inc. Personalized installation files
US20080294981A1 (en) * 2007-05-21 2008-11-27 Advancis.Com, Inc. Page clipping tool for digital publications
US20090228862A1 (en) * 2008-03-04 2009-09-10 Anders Bertelrud Modularized integrated software development environments
US8984657B2 (en) * 2009-09-08 2015-03-17 Appcentral, Inc. System and method for remote management of applications downloaded to a personal portable wireless appliance
US8633902B2 (en) * 2009-11-23 2014-01-21 Microsoft Corporation Touch input for hosted applications
US8531487B2 (en) * 2010-08-24 2013-09-10 Adobe Systems Incorporated Software for displays with different pixel densities
EP2625816B1 (en) * 2010-10-08 2017-11-29 Lumi Technologies Limited Scalable synchronization of events among server and clients with varying lag-times
US8903943B2 (en) * 2011-02-15 2014-12-02 Salesforce.Com, Inc. Integrating cloud applications and remote jobs
US8413884B2 (en) * 2011-03-03 2013-04-09 Life In Mobile, Inc. Method and apparatus for dynamically presenting content in response to successive scans of a static code
US8635522B2 (en) * 2011-05-12 2014-01-21 Sybase, Inc. Hybrid web container for cross-platform mobile applications
US8612933B1 (en) * 2011-06-24 2013-12-17 Amazon Technologies, Inc. Cross-platform mobile application development

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090119678A1 (en) * 2007-11-02 2009-05-07 Jimmy Shih Systems and methods for supporting downloadable applications on a portable client device
US20100281475A1 (en) * 2009-05-04 2010-11-04 Mobile On Services, Inc. System and method for mobile smartphone application development and delivery
CN102184101A (zh) * 2011-04-27 2011-09-14 赵悦 一种面向智能手机的软件应用框架及其开发系统
CN102323880A (zh) * 2011-06-30 2012-01-18 中兴通讯股份有限公司 基于浏览器解析方式的手机应用界面的开发方法和终端
CN102289374A (zh) * 2011-08-31 2011-12-21 中兴通讯股份有限公司 一种构建跨平台软件运行环境的方法及装置

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016123768A1 (en) * 2015-02-04 2016-08-11 Global Silicon Limited Updating firmware with audio
CN105989068A (zh) * 2015-02-10 2016-10-05 中国移动通信集团贵州有限公司 基于超文本标记语言的移动应用生成方法及装置
CN104834530A (zh) * 2015-05-27 2015-08-12 百富计算机技术(深圳)有限公司 一种pos应用程序的开发方法及云端服务器
CN106020845A (zh) * 2016-05-31 2016-10-12 广东能龙教育股份有限公司 一种客户端混合快速开发方法
CN110023901A (zh) * 2017-09-21 2019-07-16 甲骨文国际公司 用于更新基于云的多层应用栈的系统和方法
CN110023901B (zh) * 2017-09-21 2023-08-11 甲骨文国际公司 用于更新基于云的多层应用栈的系统和方法
CN109753279A (zh) * 2017-11-02 2019-05-14 声达资讯股份有限公司 一种前端整合开发管理系统及其方法
CN108170606A (zh) * 2018-01-03 2018-06-15 中国工商银行股份有限公司 系统软件升级类应用的测试系统及方法
CN109471630A (zh) * 2018-11-16 2019-03-15 广州虎牙科技有限公司 一种应用处理方法和设备
CN109471630B (zh) * 2018-11-16 2021-11-16 广州虎牙科技有限公司 一种应用处理方法和设备
CN109525584A (zh) * 2018-11-26 2019-03-26 竞技世界(北京)网络技术有限公司 一种构建移动端跨平台多类型应用容器的方法
CN112784293B (zh) * 2019-11-08 2024-06-04 游戏橘子数位科技股份有限公司 画面撷取的记录通知的方法
CN112784293A (zh) * 2019-11-08 2021-05-11 游戏橘子数位科技股份有限公司 画面撷取的记录通知的方法
CN112860274A (zh) * 2019-11-27 2021-05-28 华为技术有限公司 程序包部署的方法、装置、终端设备和存储介质
CN114428653A (zh) * 2020-10-29 2022-05-03 慧与发展有限责任合伙企业 使用不同编译设置的代码的即时jit编译实例
CN114428653B (zh) * 2020-10-29 2024-01-02 慧与发展有限责任合伙企业 使用不同编译设置的代码的即时jit编译实例
CN113157607A (zh) * 2021-05-20 2021-07-23 中国第一汽车股份有限公司 一种设备适配方法、装置、存储介质和计算机设备
CN113094033A (zh) * 2021-06-07 2021-07-09 南京沁恒微电子股份有限公司 一种mcu集成开发环境的工程结构适配方法
CN115145696A (zh) * 2022-08-30 2022-10-04 统信软件技术有限公司 确定进程虚拟机运行差异的方法、系统及计算设备
CN115145696B (zh) * 2022-08-30 2022-11-29 统信软件技术有限公司 确定进程虚拟机运行差异的方法、系统及计算设备
CN117434883A (zh) * 2023-11-13 2024-01-23 中国电力工程顾问集团有限公司 一种plc程序版本的可视化管理方法及装置

Also Published As

Publication number Publication date
BR112014019336A2 (pt) 2017-07-11
JP2015510635A (ja) 2015-04-09
CA2863882A1 (en) 2013-08-15
KR20150047453A (ko) 2015-05-04
AU2013217338A1 (en) 2014-08-21
WO2013117995A3 (en) 2013-10-31
WO2013117995A2 (en) 2013-08-15
US20130205277A1 (en) 2013-08-08
SG11201404680SA (en) 2014-09-26
EP2812797A4 (en) 2016-01-27
EP2812797A2 (en) 2014-12-17

Similar Documents

Publication Publication Date Title
CN104321745A (zh) 用于软件应用程序的跨平台开发的环境及方法
Meier Professional Android 4 application development
CN108293081B (zh) 通过用户界面事件的程序重放深度链接到移动应用状态
CN107925696B (zh) 用于识别、索引和导航至移动应用的深度状态的系统和方法
US8479154B1 (en) Interaction with partially constructed mobile device applications
US8291408B1 (en) Visual programming environment for mobile device applications
Lee Beginning android 4 application Development
CN101866299B (zh) 修改便携式电子设备上本地应用的执行的方法和系统
Darcey et al. Sams teach yourself Android application development in 24 hours
Wolfson et al. Android developer tools essentials: Android Studio to Zipalign
US20120297341A1 (en) Modified Operating Systems Allowing Mobile Devices To Accommodate IO Devices More Convenient Than Their Own Inherent IO Devices And Methods For Generating Such Systems
CN109800135B (zh) 一种信息处理方法及终端
Meier et al. Professional Android
Schwarz et al. The Android developer's cookbook: building applications with the Android SDK
CA3203990A1 (en) Systems and methods for virtual reality environments
Annuzzi et al. Advanced Android application development
Helal et al. Mobile platforms and development environments
Morris et al. Introduction to bada: A Developer's Guide
Jaygarl et al. Professional Tizen Application Development
Phan Ionic cookbook
Steele et al. The Android Developer's Collection (Collection)
Singh Ionic cookbook: Recipes to create cutting-edge, real-time hybrid mobile apps with ionic
Vuika Electron Projects: Build over 9 cross-platform desktop applications from scratch
Louis et al. Mastering mobile test automation
Islam Android Project Business Card: Ecard

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150128