2 About KinomaJS
KinomaJS 中提供了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
文章评论(0条评论)
登录后参与讨论