×
Namespaces

Variants
Actions

诺基亚移动Java开发介绍

From Nokia Developer Wiki
Jump to: navigation, search
WP Metro Icon Chinese.png
Article Metadata

文章
green_lu 在 05 Sep 2008 创建
最后由 hamishwillee 在 31 Jul 2013 编辑


诺基亚移动Java开发介绍

作者:路戈宁

Contents

Java ME背景介绍

目前整个Java平台针对不同的设备能力,设计提供了三个版本,图1为Java平台的示意图:

  • Standard Edition (Java SE)
  • Enterprise Edition (Java EE)
  • Micro Edition (Java ME)

这三个版本的基本技术支撑是相似的,遵循一般的Java特性,诸如内存的自动垃圾回收(Automatic Garbage Collection)和跨平台的虚拟机实现等。Java Micro Edition为移动设备之类的嵌入式设备的Java开发提供了一个标准框架,此框架充分适配了嵌入式设备的内存和设备资源的限制环境。 但Java ME也和Java SE,Java EE共用一些Java类,这意味着桌面和企业环境下的Java开发技巧同样适用于移动环境下的Java开发。 Java ME平台定义了两套配置(Configuration)类库集:能力更强的CDC (Connected Device Configuration ) 和能力稍弱的CLDC(Connected Limited Device Configuration)。CLDC适配了那些较小内存和较弱虚拟机能力的移动设备。在配置之上是更有设备针对性的描述(Profile)类库集。MIDP(Mobile Information Device Profile)就是在CLDC之上增加了一些对移动设备的类库补充。

Java Platforms.PNG

图1: Java平台示意图

有关Java ME的详细介绍,可以访问Sun网站Java ME技术专区诺基亚论坛网站Java技术专区

相关技术参考文档和资料:

Java MEJava SE的一个子集,同时补充了一些与手机相关的API。充分了解Java ME和 Java SE,Java EE 的平台差异是非常重要的:

  • 出于安全考虑,Java ME应用(MIDlet)运行于沙箱(Sandbox)中,这意味着Java应用对系统资源的访问是受限制的。Java ME应用对手机本地文件,本地数据的访问会受到限制;使用某些功能特性也需要获得确认,如网络特性和发送短消息等。
  • CLDC不支持应用自定义的Java类动态载入(User-defined Class Loader)。Java ME也不提供Java类的动态卸载能力,这意味着MIDlet运行中所载入的Java类将保留于堆内存中,直至MIDlet生命周期的结束。
  • Java ME不支持Java反射(Reflection),即不支持Java应用运行时的"自审",如获取类成员,方法的信息等。此外, Java ME 也不支持对象的序列化(Serialization)操作,不支持用RMI(Remote Method Invocation)编写分布式对象。
  • Java ME 不支持 JNI (Java Native Interface) 使得Java ME应用无法调用手机的本地应用。
  • MIDlet使用自己较为简单的UI类,而不使用Java标准的Swings或AWT类。
  • Java ME的支撑环境和支撑能力差异很大,使得Java ME包含大量可选择(Optional)实现的API,这也影响了Java ME应用的兼容性。

MIDP应用介绍

我们把运行于MIDP设备上Java应用叫做MIDlet(类似Applet,Servlet)。MIDlet在MIDP移动设备上的兼容性受限于设备是否支持MIDlet所使用的可选API 。

一个标准MIDlet涉及:

  • 继承自MIDP定义的抽象基类 javax.microedition.midlet.MIDlet,此基类定义了MIDlet的整个生命周期。
  • 被打包成JAR(Java Archive)文件进行派发。
  • JAR文件中包含一个清单文件 MANIFEST.MF-
  • 包含一个应用描述文件JAD(Java Application Descriptor)。
  • 所有的类文件需要进行预校验( Preverification),这一工作在编译过程中自动实现。

管理MIDlet安装,卸载和运行的Java运行环境叫AMS(Application Management Software)。 一个MIDlet套件(MIDlet Suite)是保存在一个JAR文件中一个或多个MIDlet的集合称呼,套件机制使得套件内的MIDlet可以共享外部资源。安装到手机上的MIDlet套件被作为一个整体看待。MIDlet套件运行时,如果手机支持同时运行多个MIDlet,那么套件中所有运行的MIDlet将会共存于一个Java虚拟机中,因此多个MIDlet就可以共享虚拟机中所载入的Java类实例和资源。如此,不同MIDlet的数据共享得以实现,注意使用Java的同步(Synchronization)操作进行相关的数据保护。 一个MIDlet不能启动另外一个MIDlet,一个MIDlet套件也不能启动另外一个MIDlet套件。不同MIDlet套件中的MIDlet不能共享资源。MIDlet可以通过RMS(Record Management System)实现数据的永久存储,永久数据可以被所有的MIDlet所访问。

MIDP应用的安全机制主要包括:

  • Java应用安全性分类:MIDlet从安全角度被分为两类,信任的和未获信任的。经过签名获信任的MIDlet可以被安装到手机中信任的安全域下,并允许应用不经用户确认而调用敏感API。
  • 安全域(Domain):相关的四个安全域包括:未获信任(Untrusted)域,信任的第三方开发者(Trusted 3rd Party)域, 运营商(Operator)域和设备制造商(Manufacturer)域。
  • 许可(Permission):通过许可分类可以控制应用对敏感API的调用。许可被分为四类:Denied (不允许),One-shot (每次询问),Session (第一次询问)和 Blanket (总是允许)。每个安全域都对相关许可进行了定义。MIDlet在JAD文件中声明应用需要的许可。
  • 签名(Signing):MIDlet的签名基于PKI(X.509 Public-Key Infrastructure)机制。诺基亚推荐通过Java Verified测试认证计划进行MIDlet签名。更多信息请访问http://www.developer.nokia.com/Distribute/Packaging_and_signing.xhtml 诺基亚论坛应用测试专区] 。

MIDP应用的一般开发流程

  • 项目分析和设计
包括应用的需求分析,功能设计,以及开发环境的选择。
  • 搭建项目开发环境
基于IDE搭建项目的开发环境。
  • 编写源文件
按照项目流程编写或导入Java源代码。
  • 编译和预校验源文件
编译源文件生成类文件,在Java ME工具中,类的预校验过程在编译过程中得以完成。
  • 创建JAR和JAD文件
创建应用的JAR和JAD文件。
  • 应用测试
在模拟器上运行调试应用。
  • 应用签名(可选)
根据需求对应用进行签名。
  • 应用派发
可以通过USB,蓝牙,红外等方式将应用安装到手机上,对于诺基亚手机,需要安装名为"诺基亚PC套件"的PC软件。另外也可以利用OTA(Over the Air)技术无线空下载应用到手机上。

诺基亚移动Java开发环境

诺基亚推荐使用以下软件构建Java应用开发环境:

注意事项:

  • 诺基亚Series 40平台面向市场规模庞大的Java™移动终端,而S60平台则主要面向基于Symbian OS的智能手机。了解诺基亚开发者平台的详细信息,请访问诺基亚论坛网站平台专区
    • 参考技术文档:
  • 诺基亚的Java平台SDK(Platform SDK)包括不同的版本(Editions)和特征包(Feature Packs),支持基于平台的Java应用开发;而诺基亚Java设备SDK(Device SDK)则支持特定诺基亚手机的Java开发,SDK包含一些附加的体现手机特性的Java API。
  • 对于Eclipse,安装Series 40 SDK和 S60 SDK的路径要和Eclipse的安装路径相同。
  • 诺基亚将不再继续支持先前的诺基亚Java IDE工具-Carbide.j,转而全面支持Eclipse和 NetBeans IDE。
  • 可以访问诺基亚论坛网站的设备规范专区具体了解诺基亚手机的Java特性。

相关的诺基亚Java开发资源

了解更多诺基亚移动开发技术请访问

This page was last modified on 31 July 2013, at 13:50.
204 page views in the last 30 days.
×