1 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WAC Widget Java ME 手机新动向陈志宇 2 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
以下内容旨在概述我们产品总的发展方向 该内容仅供参考, 不可纳入任何合同 该内容不构成提供任何材料 代码或功能的承诺, 并且不应该作为制定购买决策的依据 此处所述有关 Oracle 产品的任何特性或功能的开发 发布以及相应的日程安排均由 Oracle 自行决定 3 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
议题 Java ME 与 Web 的现状 WAC 技术 Widget 运行时 Java Java Script 桥 WRT JavaScript 扩展 演示 4 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
Java ME 与 Web 的现状 LWUIT XHTML 组件 https://lwuit.dev.java.net/ JSR 290 Java 语言与 XML 用户交互标记集成 API http://jcp.org/en/jsr/summary?id=290 5 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
LWUIT XHTML 组件 内部分析器 符合 XHTML-MP1 标准 HttpRequestHandler handler = new HttpRequestHandler(); HTMLComponent htmlc = new HTMLComponent(handler); htmlc.setpage("http://m.facebook.com"); 6 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
JSR 290 适用于 Java ME 应用程序的 Web UI 外部分析器 至少支持 WICD MP 1.0 7 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
移动 Web 应用程序 存储在移动设备上的客户端应用程序, 无需连接到 Web 便可运行 使用 Web 技术创建 :HTML JavaScript XML CSS 可以访问设备资源并将内容缓存在内存中 8 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
Widget 模型 9 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
为什么选择 WAC? 基于 HTML5 技术的 Web 运行时 通过 JS 扩展来访问设备功能 相机 地址簿 文件系统 传感器 满足 Widget AppStore 需求 一组网络 API: 身份验证 消息传递和定位 运营商 /OEM/WRT 扩展 10 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WAC 安全性 签名与未签名 Widget 撤销 Widget 保护 API 访问控制 网络资源访问控制 隐私 儿童保护 11 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WAC 设备 API 示例访问设备信息 <script type="text/javascript"> deviceapis.devicestatus.watchpropertychange(onchange,null, {property:"batterylevel", aspect:"battery }); deviceapis.devicestatus.watchpropertychange(onchange,null, {property:"batterybeingcharged, aspect:"battery }); </script> 12 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WAC 设备 API 示例访问设备相机 <script type="text/javascript"> deviceapis.camera.getcameras(ongetcameracallback);.. camera.createpreviewnode(oncreatepreviewnodesuccess);.. camera.captureimage(cameraimagesuccess); </script> 13 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WAC 设备 API 示例获取设备位置 <script type="text/javascript"> geolocation.getcurrentposition(onpositionsuccess, onfailure, {enablehighaccuracy: true; timeout: 60000; maximumage: 0}); </script> 14 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
为什么要实施 Widget 运行时? Web 引擎 OJWC + JSR290 一组可选 JSR 应用程序管理系统 15 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
生命周期 设备 API Java 运行时 运行时 运行时架构 WAC widget WRT JavaScript 扩展 Widget 播放器 Widget AMS Java JavaScript 桥 JSR290 Java 库 Java VM JavaScript 引擎 平台 Web 引擎 16 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
Widget 安装 widget.wgt Widget 安装程序 config.xml 签名 配置分析器 名称图标权限 widget.jad Java widget.jar AMS index.html *.css *.js *.png WidgetPlayer 启动器 JAR 创建程序 Widget 启动器 index.html *.css *.js *.png 安装程序 17 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
统一的运行时 位于 Java ME 运行时之上的 Web widget 运行时 可选 JSR 之上的 WAC DeviceApis JavaScript 扩展 多种应用程序模型 :MIDlet 和 widget 集成的应用程序管理系统 (AMS) 高可移植性 18 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
Java JavaScript 桥 Java 和 JavaScript 之间的互操作性 兼容支持 Netscape Plugin API 的任何 Web 引擎 LiveConnect 支持 针对 Java 对象的 JavaScript 操作与 Java 相映射 JS 属性读取 / 写入 针对 Java 域的 get/set JS 方法调用 Java 方法调用 19 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
JavaME 之上的 WAC 设备 API <script type="text/javascript">. deviceapis.camera.getcameras(ongetcameracallback);.. </script> WAC 设备 API Java-JavaScript 桥 相机 定位 消息传递 设备访问 JSR135 JSR179 JSR120 JSR JSR256 移植层 目标平台 Java VM JavaScript 引擎 20 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WRT JavaScript 扩展 基于 Java ME API( 可选包 ) 允许在 Java 和 Web 运行时之间共享资源 尽量减少移植工作 通过高度重用 Java ME 实现减少占用空间 支持应用程序开发人员使用 JAR 文件提供的可供下载的类库 21 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WRT 扩展架构 <script type="text/javascript"> var LandmarkStore = java.javapackages.javax.microedition.location.landmarkstore; var items = LandmarkStore.getInstance(null). getlandmarks(landmarkstore.entertainment); </script> Java-JavaScript 桥 相机 定位 PIM 设备访问 JSR135 JSR293 JSR75 JSR JSR256 移植层 目标平台 Java VM JavaScript 引擎 22 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WRT 扩展 : 调用 MSA API JSR179 地标数据库 Web Widget + MSA API Web Widget 23 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WRT 扩展 : 调用 MSA API 配置 <widget xmlns="http://www.w3.org/ns/widgets"> <javame:api type="standard" level="required" name= javax.microedition.location.landmarkstore" vendor= Nokia" version= 2.0" /> </widget> 24 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WRT 扩展 : 调用 MSA API 安全性 <widget xmlns="http://www.w3.org/ns/widgets"> <javame:permission name= javax.microedition.location.landmarkstore value= read /> </widget> 25 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WRT 扩展 : 调用 MSA API JavaScript var LandmarkStoreClass = java.javapackages.javax.microedition.location.landmarkstore; var items = LandmarkStoreClass.getInstance(null). getlandmarks(landmarkstoreclass.entertainment); while (items.hasmoreelements()) { var item = items.nextelement(); var name = item.getname(); var latitude = item.getqualifiedcoordinates().getlatitude(); var longitude = item.getqualifiedcoordinates().getlongitude(); // } 26 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WRT 扩展 : 使用动态加载的 Java 库 public static WeatherResponse request ( String location) throws IOException { String url = urlencoder(location); HttpConnection c = null; final WeatherResponse Handler h = new WeatherResponseHandler(); //. return h.getresult(); } Web UI + Java 代码 Web UI 27 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WRT 扩展 使用动态加载的 Java 库 配置 : <javame:jar level="required" name="example" vendor="some Company" version="1.0" url= http://some.com/widgets/library.jad /> 28 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WRT 扩展 使用动态加载的 Java 库 Java 代码 : package org.sample; class APISample { public String method() { return "Hello!"; } } JavaScript 代码 : var APISample = java.javapackages.org.sample.apisample; var apiobj = new APISample(); var str = apiobj.method(); 29 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
WRT 扩展使用动态加载的 Java 组件 MIDlet 库 w1.wgt w2.wgt library.jar Java+Web 安装程序 MIDlet1 Widget 资源 (w1) index.html config.xml MIDlet2 Widget 资源 (w2) index.html config.xml library.jar 30 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
演示 31 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
32 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类 问答
33 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类
34 版权所有 2011,Oracle 和 / 或其分支机构 保留所有权利 从幻灯片 8 中插入信息保护策略分类