BlackBerry J2ME 编程指南(三)

来源:互联网 发布:linux中arp命令解释 编辑:程序博客网 时间:2024/06/10 04:58

作者:

2.4 File I/O

 

J2MEFile操作作为JSR75的一部分被转javax.microedtion.io.file面,如图所

 

 

 

 

不同于java中的io下大量的文操作J2ME中的文件作主是针设备的体需求

Javax.microedition.io.file ——  提供对本文件统的访功能

 

ConnectionClosedException ——  当试图一个经关闭的  FileConnection 对象进操作,会抛 出此异

FileConnection ——  这是一很关的类上文件写都有该。可以字面去理 的意思。

FileSystemEventHandler ——事件听。

FileSystemListener  用于监文件目录状态的化,如文除、新,存卡的 和插入

FileSystemRegistry  用于管和跟件系统的监器,及可此类过当前有文 统的根录。

IllegalModeException ——  打开式异常,当试图入以读方的文件,会出该异 常。

 

2.5 GUI

 

J2SE提供了丰富的UI组件强大UI展示术,java代码通过applet植入到web页面


 

在标准的J2ME编程中放弃掉大量要消资源UI支持转而型的终设计一个特

殊的包

 

由于在MIDP手机编程有控制的概,所有的MIDP手机软件都必己的界,下就熟悉 一下MIDP的界面类体

 

首先说的是,MIDP的标界面类javax.microedition.lcdui包中,使用一定要得引 在界面系中所以接显示界面都继一个父——Displayable。根据否能接操 幕,以是否屏幕MIDP的界面类分类:

1)  高级用界面屏幕小无关不能接操作屏 高级用界面可以修改就以在有支Java的手机显示不同显示方会有不同, 但功能可以常使别适合对于面要的手机用软 高级用界面的类两个部

1、容器类

容器类指直或者继承Displayable,可以直接在幕上示的些类都一个一的

——Screen类,其他的都实现的器类个:

Alert——提示框 Form——窗体 List——列表框

TextBox——文本行文 以上这类除了Screen类以外,都表一界面际的开过程,即接使(使用其) 也可以使用继

 

2、控件类 控件类是指那些不能在屏上直接显示,必须添加到(MIDP中的所有件类均只能添加Form) 才可以示的。这有一个一的父类Item类,其它的是实的控包括以

ChoiceGroup——选择,包括选和


DateFiled——日期文 Gauge——进度条 ImageItem——图片项目 StringItem——可变字符串 TextFiled——单行文

 

MIDP2.0中,新增两个件: CustomItem——个性化项目,以实自己 Spacer——空白

在实际使用,根的需要选择适的类,然添加Form中进显示。

 

2)  低级用界面屏幕小相关可以接操作屏 低级用界面以让直接操界面例如屏幕上便的制图字以及本的形等, 可以在机中现复面,所很适进行戏以及动证之类开发。是低界面一 般和屏大小系比,所以不同手机间实现时候一般行移植。 低级用界面要包

1Canvas——手机画布 该类代手机幕,得屏幕性的系列事件处的方,以paint绘制方法等。 MIDP2.0中该类有一个——GameCanvas

 

2Graphics——画笔 系统所的绘动作该类实,包一般方法、置字或颜法以及些技操作的 方法等。

低级用界面以理使Graphics这样一个画笔Canvas上进行绘制。 当然还一个高级面和低用户面都使用的Command(软按钮类),使用类可在界 面中实软按的功 这种编习惯改变J2SE的差别很大的,有一种法是MIDPUI,也就突破J2ME 编程。

BlackBerry上的MIDP编程部分,头来何进行UI编程。

 

 

 

2.7 Applet

 

这个是J2SE的东西,J2ME没有支持,实际上Midlet的设计多是Applet的。

 

 

2.8 Network

 

相比较 J2SE 不断升级的在络编程上的支复杂的发流程,J2ME 的网络编程显得非常轻巧,相较于如 下的 J2SE 的庞大的网络编类库J2ME 的网络编程显得异常简单。


 

 

 

J2ME MIDP javax.microedition.io 程序包中提供了整套类,统称为用连接Generic Connection

Framework GCFGCF 使得与其它设备可编程programmatically transferring)数据变得常容 易。

 

通用连接框架Generic Connection FrameworkGCF为资源有限的设提供了个可扩展的、通用的 I/O 架。GCF 是一组在 javax.microedition.io 包中定义的接

 

 

 

GCF 层次结构

 

 GCF 中共定义了个接口    Connection 是最基本连接型。同时提了对据包 连接的持。沿着层向下派出提更多接口。如,  StreamConnection 接口支持输入流 和输出  ContentConnection 接口又扩展了  StreamConnection 接口以支持对的内容型、据长度 和编码式的定,HttpConnection 接口又扩展了 ContentConnection 接口以支对于标 HTTP 请求。 如在框层规的适机或双寻呼的移设备框架 MIDP(Mobile Information Device


Profile)在其 MIDP 1.0 范只要设备  HTTP 接协议而更  MIDP 2.0 规范要求同支持

HTTP   HTTPS,后者提供了对更全的络连

 

 

2.9 Database

 

J2SE 中,通过标准的 JDBC 的数据库访问,本上经成为种标。但是 J2ME 的框架下数据的操 作没有接支,没有 JDBC 的直接支

 

J2ME 编程中,如果涉 database 操作,可以考使用些方转换应用 web service


第三     blackberry  J2ME 编程

 

 

在对 J2ME 的编程有了些体的认,也解到的和一关键的 J2SE J2ME 的编制程上的别, 我们就以进 BlackBerry 上的 J2ME 编程的世界。

 

在这一分,们将在黑莓进行 Midlet 开发的个常过程 BlackBerry 开发平台为

midlet 的开发提供了便利和强力的持和补充

 

1    开发包支持

 

BlackBerry 平台提供了 Eclipse 插件,用来对 midlet 进行开发编程。望使用 BlackBerry 进行

midlet 开发的人,只循如下骤:

 

1.    下载并 Eclipse BlackBerry Java Plug-in for Eclipse(的开包在 csdn 的黑莓发专 经可以载了)

本文使 BlackBerry Java Plug-in for Eclipse : v1.1 beta2 (下载:

http://na.blackberry.com/eng/developers/devbetasoftware/javaplugin.jsp )

2 据向,建项目

 

3安装 EclipseME 插件  --  Installing via the EclipseME Update site http://eclipseme.org/docs/installEclipseME.html#step2b

 

4改项目置, midlet

 

然后,可以验黑上的 midlet 开发乐趣了。

 

关于 blackberry 插件开发 midlet 的详细指南请参如下链

 

 

http://blog.csdn.net/salvatore_zhang/archive/2010/05/06/5564186.aspx

 

2    UI 开发支持

 

对于 Midlet UI 开发,在 BlackBerry 平台上有多种决方案: 可以使用 MIDP 的原生高低级 API,也就是 LCDUI 进行开

使用 BlackBerry 的特有 API 组件,类似 SUN  KJAVA 组件来行高 UI 开发

 

可以使用 Widget 技术来结合 Midlet WEB UI

 

关于 blackberry 上的 BlackBerry UI 开发的详细介,请参如下章:

 

 

http://blog.csdn.net/salvatore_zhang/archive/2010/05/06/5564433.aspx


3    blackberry native API 的混用

 

 

BlackBerry MIdlet 发过程,除了 UI,其 API 以混的,过这种式,极大 的弥补 JSR 对黑莓手机具体用开需求的缺陷。同,结黑莓 API 使用,以让 Midlet 用本更加 BlackBerry 系统的特征

 

3.1 关于 blackberry midlet 应用的

 

3.1.1 RMS MIDlet BlackBerry 之间共享数据

 

对于很没有 BlackBerry 应用经的开者,或者对于很现有的 J2ME 系统,果以小的代 价和 BlackBerry 应用交互,或者和 BlackBerry 应用集成,是一很好的方法。同,这是对

老的 J2ME BlackBerry 的新用迁和同数据的个好法。 BlackBerry 开发对

J2ME 供支,所以 RMS 可以被用作为决的首

 

3.1.2  使用全局事来进行应用交互

 

BlackBerry 提供了事件模型用来不同的应用之间信,使用事件模型的候需注意 如下事

 

·    任何应程序可以发布或者监全局

·    通过应全事件可以在一个用程中执行一些本来该在一个应用中出现动作

·    通过发全局件也可以在应用序之传递

 

3.1.3 使 RUNTIME Store 来应用交互

 

相对于态的 RMS 琐配置不灵BlackBerry 供的行时runtime store 非常灵 活和方便,它平台即被提供了下功

 

·    运行时储提一个中间区域让用应共享对象

·    通过数签名任何应用程序都以访运行时存

 

3.2 Midlet blackberry 应用互

 

通过 BlackBerry 平台提供的强大用交功能,应用开发可以: 在你的 Midlet 用中 BlackBerry 设备应用软

BlackBerry 应用程序中调用 Midlet

在设备用中入内容

 Midlet 应用植入 BlackBerry 系统 UI

详细的容,以参考如下文章:

http://www.blackberry.com/developers/docs/5.0.0api/App-Integration-summary.html


3.3  GPS 的补充

 

GPS MIDP 上的乎算标的功 BlackBerry® Device Software 5.0.0 或更版本的

BlackBerry 备支持 BlackBerry® extensions to JSR 179

 

 

MIDLet 中,导入所需的

import net.rim.device.api.gps.*;类和造函

public class handleGPS

{

BlackBerryCriteria myCriteria;

public handleGPS()

{

}

}在构造数中创建 try/catch 该块,将 GPS 式作参数构造函,从创建

BlackBerryCriteria 例。

try

{

myCriteria = new BlackBerryCriteria(GPSInfo.GPS_MODE_ASSIST);

}

catch ( UnsupportedOperationException ex )

{

return;

}在构造数中如果指定的一种 GPS 模式法检索 GPS 修正则调用 setFailloverMode() 指定要使用的 GPS 故障移模式。 检索第一个修正,调用 setSubsequentMode() 来指 使用的 GPS 式。

myCriteria.setFailoverMode(GPSInfo.GPS_MODE_AUTONOMOUS, 3, 100); myCriteria.setSubsequentMode(GPSInfo.GPS_MODE_AUTONOMOUS);验证 GPS 式是受到支 持,请 GPSInfo.isGPSModeAvailable() GPS 模式作参数递。 果该模受到持,则 调用 setMode() 指定 GPS 模式。

public class handleGPS

{

public handleGPS()

{

BlackBerryCriteria myCriteria = new BlackBerryCriteria();

if (GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_ASSIST))

myCriteria.setMode(GPSInfo.GPS_MODE_ASSIST);

else if (GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_AUTONOMOUS))

myCriteria.setMode(GPSInfo.GPS_MODE_AUTONOMOUS);

}

}


4    日志支持

 

 

由于 j2me 不支管道,无法像 J2SE 用栈打,不过 BlackBerry 提供内置的 event log,可通过 throwable callstack这样动就可打印出到系统日志,后导,就 可以。里以个运行时候异常

 

实例代如下,

 

 

catch (Throwable e) {

//Dialog.inform("exception"); System.err.println("io execption");

// GUID 量定义

long GUID = 0x9999999999999999L;

//记日事件

EventLogger.register(GUID, "LMLogger", EventLogger.VIEWER_STRING); String eventData = "smsApp: sms1";

//记录

EventLogger.logEvent(GUID, eventData.getBytes() , EventLogger.ALWAYS_LOG);

e.printStackTrace();

}

long GUID = 0x9999999999999999L;

EventLogger.register(GUID, "LMLogger", EventLogger.VIEWER_STRING); String eventData = "smsApp: sms2";

EventLogger.logEvent(GUID, eventData.getBytes() , EventLogger.ALWAYS_LOG);

在手机面直查看 eventlog, ALT 键,按 lglg 或者是导文本上查看

javaloader.exe -u eventlog > mylog.txt

最后系 event log ,可以到如输出,

guid:0x9C3CD62E3320B498 time: Thu Jun 17 17:09:03 2010  severity:1 type:3 app:Java Exception data: RuntimeException

blocking operation not permitted on event dispatch thread net_rim_cldc-19(4BAE2663)

EventThreadCheck throwException

0x1F87

net_rim_cldc-18(4BAE2663) NativeTransport

send

0x76D1

net_rim_cldc-19(4BAE2663) Transport

send

0x9266

net_rim_cldc-19(4BAE2663) Protocol

send

0x3702

Smsfor8910(4C19EC08) Smsfor8910RIMResources

<clinit>

0x114

net_rim_cldc-11(4BAE2663)


Field fieldChangeNotify

0xBCD

net_rim_cldc-14(4BAE2663) ButtonField

<private>

0x270C

net_rim_cldc-14(4BAE2663) ButtonField trackwheelUnclick

0x22E0

net_rim_cldc-12(4BAE2663) Manager

trackwheelUnclick

0x249D

net_rim_cldc-12(4BAE2663) Manager

trackwheelUnclick

0x249D

net_rim_cldc-12(4BAE2663) Screen

trackwheelUnclick

0x9693

net_rim_cldc-12(4BAE2663) Screen dispatchNavigationEvent

0x71CD

net_rim_cldc-13(4BAE2663) UiEngineImpl processMessage

0x7964

net_rim_cldc-8(4BAE2663) Application

<private>

0x29A4

net_rim_cldc-8(4BAE2663) Application processNextMessage

0x1ADD

net_rim_cldc-8(4BAE2663) Application enterEventDispatcher

0x1A1A

Smsfor8910(4C19EC08) MyThread

run

0x9A

 

 

 

BlackBerry SDK下载

  • BlackBerry Java Plug-in for Eclipse v1.1
  • Java Plug-in for Eclipse Update Site
  • BlackBerry Web Plug-in v2.0
  • BlackBerry Widget SDK v1.0
  • BlackBerry Theme Studio v5.0
  • Plazmic Content Developer’s Kit v4.7
  • BlackBerry smartphone simulators
  •  

     

     

    相关链接:

    BlackBerry J2ME 编程指南(一)

    BlackBerry J2ME 编程指南(二)

    BlackBerry J2ME 编程指南(三) 

     

    原创粉丝点击