原创 KinomaJS Overview

2015-6-26 16:06 1293 20 20 分类: EDA/ IP/ 设计与制造
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条评论)

登录后参与讨论
我要评论
0
20
关闭 站长推荐上一条 /2 下一条