热度 20
2015-6-26 16:06
1296 次阅读|
0 个评论
2 About KinomaJS Kinoma JS 中提供了Javascript API ,XML 编程接口。Javascript是该环境的编程语言,而XML通过 一个编程框架,和Javascript结合在一起。 3 Documents and Files KinomaJS 应用包含一些文件,包括: 以Javascript编写的源代码 可选的,XML文档 JPEG 或者PNG图像,用于构造应用的外观 3.1 Application shell devices simulation 在KinomaJs 构建过程中,在KinomaJS框架和应用程序之间有一个Shell在运行,该shell控制这个应用。 比如下面这个shell简单的装载一个应用,铺满整个屏幕 var url = mergeURI(shell.url, "./main" ); var id = "connect.kinoma.com" ; var host = new Host({ left : 0 , top : 0 , right : 0 , bottom : 0 }, url, id); shell.add(host); host.launch(); shell可以支持多个应用,比如:提供一个开发环境,或者一个多应用切换器。 shell可以提供许多接口来获得主机设备,比如:各种传感器…… 同时shell还可以提供 移植特殊风格的应用:比如,KinomaJS 触摸模块 包含一个shell,它内部有创建IOS,android常见效果的工具;而设备shell只需要shell定义好运行应用的环境。 KinomaJS Touch的框架和Kinoma Studio开发环境,都提供一个默认的Shell。同时,你也可以根据需求,自己创建Shell。 注意到,为了系统的稳健性,应用承诺供需和Shell应当在独立的Javascript 虚拟机中运行,并通过一个 host 对象 ,使用message来通信。 3.2 Programs and Modules application 和Shell是用Javascript程序和模块来编写的。 KinomaJS 中的Javascript 编程符合 ECMA-262 第五版 标准。一个program可以包含其他的program最为模块使用。 KinomaJS中的Javascript 模块类似于一般的js脚本,使用时通过“required”语句来调用。 每个模块在KinomaJS虚拟机中,都只被调用一次,这样可以提高程序的性能并是内存耗用最少。 3.2.1 Javascript Files 程序和模块是用Javascript 编写的。当被打包发布的时候,Javascript 源代码会被编译成二进制文件 以此来保证最小的装载时间。 program是用“include”语句来调用的的。mudules则是用 “require”来调用。 AppBehaviors.js // @module var CB = require ( "SharedBehaviors" ); App.js //@program var CB = require ( "SharedBehaviors" ); var SB = require ( "AppBehaviors.xml" ); include ( "AppAssets.js" ); //@module 和 //@program 这两句话是必须的,用于提示编译器该js是作为模块 还是程序。 3.2.2 XML Documents KinomaJS 通过分析XML文件来生成对应的 Javascript 程序和模块。这一动作可以在运行时实现,也可以在编译时候实现。 AppBehaviors.xml module require path= "SharedBehaviors" id= "CB" / / module App.xml program require path = "SharedBehaviors" id = "CB" / require path = "AppBehaviors.xml" id = "SB" / include path = "AppAssets.js" / / program “required ”语句中的id属性,定义了program 或 module中的标识符,该标识符用于获取 module中的权限。 3.2.3 Paths KinomaJS 通过装载一个程序,来调用application和 shell。该程序所在的路径是application 或者 shell的 URL。 Application和shell通过required和include函数里面的path参数,来搜索programs和modules。如果以“./”或者"../"开头,那么是相对路径。在program中,path 是和application的URL或者shell相关;在module中,path是和module 的URL相关。 如果以“/“开头,那么是绝对路径。绝对路径取决于运行时候的环境。在一些环境下,对绝对路径来说,有好几个root目录,这时候,KinomaJS就会搜寻每一个path。 其他情况下,如果program或者module没有搜到,就会进行相对路径的查找;举例来说,前面的例子里,application会装载 "./CommonBehaviors"模块,如果”/CommonBehaviors"没有找到。 如果工程文件中没有包含后缀名,那么运行时候会按照下面的顺序进行查找对比: 1. .jsb — A JavaScript program or module binary file 2. .js — A JavaScript program or module text file 3. .xml — An XML program or module document