JavaME开发流程详解
Java ME移动开发教程第一讲
课程导论
典型移动应用案例术
课程导论
移动办公
移动办公是指办公人员可以随时随地处理与业务有关的 事情。
课程导论
个人应用
针对手机自带软件功能的不足,设计开发出新的功能, 为日常生活中的“衣、食、住、行”提供便利,担任智 能化助手的角色。
课程导论
手机游戏
手机游戏的优势是提供娱乐休闲,在坐车、等人的空虚 时间可以打发时间。
Java ME移动开发教程(项目式)
课程导论
教学要求
讲课+上机=54学时
• 讲课:30个学时 • 上机:24个学时
基本练习+完整项目
• 每一章知识的实训项目 • 期末项目
成绩
– 平时成绩(40%):平时练习+考勤 – 考试成绩(:移动应用开发技术
课程导论
课程导论
安装Sun JDK
课程导论
任务分析
本次任务要求完成JDK的下载、安装和配置。要完成本 次任务,需要思考如下几个问题:
JDK是什么软件,对于本项目有何作用?
从何处获得合适的JDK ?
JDK对电脑硬件和操作系统的安装要求? 如何安装JDK? 如何配置JDK?
课程导论
iPhone将原来普通的手机电话变成一个潮流时尚且功能 强大的随身工具,引起了手机设计领域的一次新变革。 iPhone 主要支持的开发语言为 Objective-C、 C、 C++、 JavaScript。
课程导论
移动应用程序的平台(三)
Android : 是 Google 公 司 于 2007 年 11 月 宣 布 的 基 于 Linux 平台的开源手机操作系统,该平台由操作系统、 中间件、用户界面和应用软件组成。 Android 产品线较为丰富,覆盖到商务、时尚、娱乐、 中低端市场等各种人群。 Android 的优势在于对第三方软件完全开放,免费向开 发人员提供,而且集成了大量的Google应用:
第 12 章 J2ME基础
2、CDC和CLDC
CDC (Connected Device Configuration):
用于内存及电力等资源相对丰富的信息家电产品, 如电视机顶盒、网络电视等,所用的Java虚拟机 JVM为CVM。 CLDC(Connected Limited Device Configuration): 用于内存及电力等资源相对贫乏的信息家电产品, 如手机、PDA等移动设备,所用的Java虚拟机 JVM为KVM。
第12章 Java ME程序设计基础
主要内容
Java ME的基础知识: (1) Java ME 概述、 (2)建立Java ME开发环境 、 (3) Java ME应用程序设计 、 (4) 数据记录管理系统 (5) 开发网络应用程序
Java ME 概述
1、 Java语言三个核心开发平台
Java Plantform Enterprise Edition (Java EE):用于开发企业服务器 端应用程序。 Java Plantform Standard Edition (Java SE):用于开发一般台式计 算机应用程序。 Java Plantform Micro Edition (Java ME):用于开发嵌入式、信 息家电产品应用程序。
List的的常用方法
(1)public int append(String str, Image img); 在列表项后面添加项目内容,并返回这个项目的 索引值。 (2)public void set(int elementNum, String stringPart, Image imagePart); 用字符串stringPart及图标imagePart替换显示 项。
目录
api bin butild docs jam kvm tools
Java课件Java ME嵌入式程序设计chap3
张家耀主讲
第三章Java ME应用开发环境与工具
• • • • • • 本章目标 在阅读完本章后您将了解: 使用WTK进行J2ME程序开发; 使用Eclipse进行J2ME程序开发; 本章简介 本章将重点介绍Java ME应用开发环境的设置和 Java ME主要开发工具的使用。包括Sun公司的 无线开发工具包WTK和Eclipse IDE 开发环境下 使用EclipseMe插件开发Java ME应用程序的方法。
• 图3_13 项目设置对话框
第三章Java ME应用开发环境与工具
• 在项目设置对话框中,我们可以对 Myproject项目的环境进行设置。如果各项 设置去缺省值则可单击OK按钮,则设置对 话框将关闭,并返回控制台窗口。在控制 台的中心区将显示新建立的Myproject项目 源代码、资源文件、库文件的准确存储位 置。如图3_14所示。
第三章Java ME应用开发环境与工具
• 表3-1 WTK子目录及其含义
第三章Java ME应用开发环境与工具
• 4.设置WTK系统变量 • 为了方便的使用WTK无线工具包与JDK 的环境变量设置相似,也需要完成系统环 境变量的设置工作。将WTK的工具目录添 加到系统目录的方法如下:右键单击“我 的电脑”,在弹出的快捷菜单中选择“属 性”菜单项,打开“系统属性”对话框, 选择“高级”选项卡,单击【环境变量】 按钮。
第三章Java ME应用开发环境与工具
• (5)Run MIDP Application用于运行打包的 MIDP程序; • (6)Utilities包含工具集,用于启动工具包的实 用程序窗口; • (7)Wireless Toolkit 2.5.2是开发MIDP的最小环 境;工具包的主入口点,从中可以获得工具集大 多数功能。 • WTK 2.5.2安装完毕后,在安装目录下自动生成 若干个子目录,在程序组中生成若干个开发工具, 子目录及其含义如表3-1所示: •
Java ME 程序设计第2章 Java ME开发环境配置
Sun公司提供的Java ME开发工具,先前称为J2ME Wireless Toolkit,它是Sun公司提供的一个MIDP应用 程序开发工具包。 Java WTK现在的最新版本是2.5版,该版本中支持 MIDP2.0的开发以及无线消息API、移动多媒体API等。 Java WTK可以免费从Sun公司的官方网站下载获取。
表 2-1 WTK目录结构功能描述
Java WTK目录结构
Java WTK项目开发
要运行KToolbar,可以在Windows的“开始” 菜单中选择“程序”|“Sun Java Wireless Toolkit 2.5 for CLDC”|“Wireless Toolkit 2.5”
运行Wireless Toolkit 2.5后,将显示主窗口
本章学习要点:
熟练掌握Java ME Wireless Toolkit的安装和配置 熟练掌握使用WTK开发MIDlet的步骤 熟练掌握Eclipse开发Java ME应用程序的开发流程 搭建OTA下载服务器
Java无线开发工具包
Java无线开发工具包(Java Wireless Toolkit,WTK)是
Java WTK项目管理
对于已经存在的现有项目,通过单击主窗口 工具栏上的“打开项目”按钮,将弹出 “打开项目”对话框,在其中列出所有 存在的项目名称
在列表中选中要打开的项目名 称后双击该项目,或者选中要 打开的项目名称后,单击“打 开项目”按钮,将在主窗口中 打开该项目,并在控制台中显 示项目被载入信息
单击左侧工具栏上方的“新建” 命令,创建无线工具包执行 命令
单击“Run”按钮,将使用模拟器运行MIDlet程序
使用Eclipse+EclipseME开发MIDlet程序
第3章-使用Java ME无线开发工具包
编辑MIDlet源文件 生成 运行
也可以通过Run MIDP application运行这个 也可以通过 运行这个 但是必须要有jar文件和 文件和jad文件 程序 但是必须要有 文件和 文件 那么我 们就需要打包下, 们就需要打包下,在KToolbar 选中项目 — — 包 —— 产生包,可以把整个程序,包括 产生包,可以把整个程序, 资源文件打包成JAR文件。形成的 文件。 资源文件打包成 文件 形成的JAR 保存 目录下。我们看到, 在apps\HelloWorld\bin 目录下。我们看到, 除了“产生包” 另外还有一个“ 除了“产生包”,另外还有一个“产生混淆 选项。所谓混淆, 包”选项。所谓混淆,是为了防止别人反编 译后读取源代码,将程序(.class 文件 进行 文件)进行 译后读取源代码,将程序 混淆,经过混淆的Java ByteCode 可以增加 混淆,经过混淆的 别人反编译的时间。 别人反编Dlet应用程序 2.仿真器 3.生成和打包工具 4.监视程序 5.MIDlet签名工具
3.2使用Sun Java Wireless Toolkit
3.2.1 Default Device Selection菜单命令
3.2.2 Documentation菜单命令 此菜单用于浏览Sun Java Wireless Toolkit的文挡。 3.2.3 OTA Provisioning菜单命令
3.4.1 Sun Java Wireless Toolkit使用示例
删除以前项目的方法: 1)需要把WTK安装目录下的项目删除掉.例如 D:\WTK2.5.2\apps 2) 2)需要从WTK保存项目的文件夹下面把项目删除掉.例 WTK . 如:
C:\Documents and Settings\Administrator\j2mewtk\2.5.2\app s
Java-Me实用教程
关键字就是Java语言中已经被赋予特定意义的一些单词
,它们在程序中有着不同的用途,不可以把关键字作为标识
符来用。
第33页,共505页。
Java语言中的关键字
abstract boolean
class
continue
extends false
右键点击“我的电脑”,弹出菜单,然后选择“属性”,弹 出“系统属性”对话框,再单击该对话框中的“高级”选项,
然后点击按钮“环境变量”,添加如下的系统环境变量(如图 1.2所示):
第10页,共505页。
图1.2 设置环境变量path
第11页,共505页。
4)系统环境ClassPath 值的设置
编辑系统环境变量ClassPath的值。对于Windows 2000、
可用“-source”参数约定字节码适合的Java平台。如 javac –source 1.2 <FileName.java>
第31页,共505页。
返回
第2章 基本数据类型和数组
本章导读 1. 标识符和关键字 2. 基本数据类型 3. 基本数据类型的转换 4. 数据的输入与输出 5. 数组
网络、多线程等重要的基础知识,而且很多新的技术领域都涉及
到了Java语言,因此,学习和掌握Java已成为共识,国内 外许多大学已将Java语言列入了本科教学计划,IT行业对 Java人才的需求正在不断的增长,一些软件公司对其开发 人员周期地进行Java的基础培训工作。在IT行业发达的北美
洲,有将近60%的软件开发人员在使用Java完成他们的工作,
<applet code=Boy.class height=100 width=300> </applet>
JavaME编程
一、第15章TCP编程TCP是面向连接的,必须在服务器端和客户端连接上之后才能通信,并由SocketConnection来进行通信,安全性较高。
1.服务器和客户机之间连接的建立//服务器端程序ServerMIDlet1.javaimport javax.microedition.io.Connector;import javax.microedition.io.ServerSocketConnection;import javax.microedition.io.SocketConnection;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class ServerMIDlet1 extends MIDlet {protected void startApp() throws MIDletStateChangeException {try {// 监听9999端口ServerSocketConnection ssc = (ServerSocketConnection) Connector.open("socket://:9999");System.out.println("未连接");// 等待客户端连接,如果没有客户端连接,程序在这里阻塞SocketConnection sc = (SocketConnection) ssc.acceptAndOpen();System.out.println("连接");} catch (Exception ex) {ex.printStackTrace();}}protected void destroyApp(boolean arg0) throws MIDletStateChangeException { }protected void pauseApp() {}}//客户机端程序ClientMIDlet1.javaimport javax.microedition.io.Connector;import javax.microedition.io.SocketConnection;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class ClientMIDlet1 extends MIDlet {protected void startApp() throws MIDletStateChangeException {try {// 连接到服务器端SocketConnection sc = (SocketConnection) Connector.open("socket://127.0.0.1:9999");} catch (Exception ex) {ex.printStackTrace();}}protected void destroyApp(boolean arg0) throws MIDletStateChangeException {} protected void pauseApp() {}}2.服务器和客户机之间建立连接并通信//服务器端程序ServerMIDlet3.javaimport java.io.DataInputStream;import javax.microedition.io.Connector;import javax.microedition.io.ServerSocketConnection;import javax.microedition.io.SocketConnection;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class ServerMIDlet3 extends MIDlet {protected void startApp() throws MIDletStateChangeException {try{ServerSocketConnection ssc =(ServerSocketConnection)Connector.open("socket://:9999");SocketConnection sc = (SocketConnection)ssc.acceptAndOpen();DataInputStream dis = sc.openDataInputStream();System.out.println("未收到信息");//如果没有读到内容,就死等String msg = dis.readUTF();System.out.println("已经收到:" + msg);}catch(Exception ex){ex.printStackTrace();}}protected void destroyApp(boolean arg0) throws MIDletStateChangeException {} protected void pauseApp() {}}//客户机端程序ClientMIDlet3.javaimport java.io.DataOutputStream;import javax.microedition.io.Connector;import javax.microedition.io.SocketConnection;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class ClientMIDlet3 extends MIDlet {protected void startApp() throws MIDletStateChangeException {try{SocketConnection sc =(SocketConnection)Connector.open("socket://127.0.0.1:9999");//DataOutputStream dos=sc.openDataOutputStream();//dos.writeUTF("Hello,world!");}catch(Exception ex){ex.printStackTrace();}}protected void destroyApp(boolean arg0) throws MIDletStateChangeException {} protected void pauseApp() {}}二、第13章RMS高级编程//编写程序实现对记录数据的过滤和排序import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException; import javax.microedition.rms.RecordComparator;import javax.microedition.rms.RecordEnumeration;import javax.microedition.rms.RecordFilter;import javax.microedition.rms.RecordStore;public class MIDlet2 extends MIDlet implementsRecordFilter,RecordComparator{protected void startApp() throws MIDletStateChangeException {RecordStore rs =null;try{rs=RecordStore.openRecordStore("RS7",true);rs.addRecord("131".getBytes(),0,3);rs.addRecord("6454".getBytes(),0,4);rs.addRecord("879".getBytes(),0,3);rs.addRecord("56".getBytes(),0,2);rs.addRecord("66".getBytes(),0,2);//Filter1 filter=new Filter1();RecordEnumeration re = rs.enumerateRecords(this, this, false);while(re.hasNextElement()){byte[] data=re.nextRecord();String name=new String(data);System.out.println(name);}}catch(Exception ex){ex.printStackTrace();}finally{try{rs.closeRecordStore();}catch(Exception ex){}}}protected void destroyApp(boolean arg0) throws MIDletStateChangeException {}protected void pauseApp() {}public boolean matches(byte[] rec) {String str =new String(rec);int num= Integer.parseInt(str);if(num>100){return true;}return false;}public int compare(byte[] rec1, byte[] rec2){String str1 =new String(rec1);String str2 =new String(rec2);int num1= Integer.parseInt(str1);int num2= Integer.parseInt(str2);if(num1>num2){return RecordComparator.FOLLOWS;}else if(num1<num2){return RecordComparator.PRECEDES;}return RecordComparator.EQUIVALENT;}}三、第16章UDP编程//编写程序实现面向非连接的通信UDP编程是面向非连接的,UDP是数据报,基于报文,只负责传输信息,并不保证信息一定会被收到。
移动开发实战-JavaME入门
Profile,PDA简表 简表) PDAP(PDA Profile,PDA简表)
PDA简表与MIDP类似,但比起移动电话,PDA具有更 PDA简表与MIDP类似 但比起移动电话,PDA具有更 简表与MIDP类似, 好的显示界面和更大的内存空间。 好的显示界面和更大的内存空间。
11
龙
ME简介 简介Java ME简介-10 基于CDC的简表 基于CDC的简表 CDC
ห้องสมุดไป่ตู้17
龙
创建MIDP应用创建MIDP应用-1 MIDP应用 创建MIDP应用程序(MIDlet) 创建MIDP应用程序(MIDlet)-1 MIDP应用程序
MIDlet是什么? MIDlet是什么 是什么?
一个MID(移动信息设备)简表应用程序 由应用程序管理软件(AMS)控制MIDlet的创建、 启动和暂停 继承javax.microedition.midlet.MIDlet,实现 其中的抽象方法
2
龙
ME简介 简介Java ME简介-1 Java平台版本回顾 Java平台版本回顾
JavaSE:Java平台标准版( Platform, JavaSE:Java平台标准版(Java Platform,St 平台标准版 Edition)。 andard Edition)。 JavaEE:Java平台企业版 平台企业版( JavaEE:Java平台企业版(Java Platform, En Edition)。 terprise Edition)。 JavaME:Java平台微型版 平台微型版( Platform, JavaME:Java平台微型版(Java Platform,Mi Edition)。 cro Edition)。
14
龙
Java ME移动开发实例精讲
第1篇入门第1章Java ME体系介绍和环境配置【本章导读语】(本章视频讲解:37分钟)一个新技术的入门,最大的困难是什么?很显然,是一些奇怪的术语,以及它们之间的关系。
而这些术语又不得不去理解,否则没办法学习下去。
Java ME的学习也是如此。
Java ME是目前一个非常热门的技术,很多编程爱好者都希望能够对此进行学习。
但是当你看到任何一个Java ME文档时,迎面而来的一些晦涩难懂的术语就会让你望而却步,例如:CDC、MIDP、CLDC,这些词语究竟代表什么意思?它们之间有什么关系?在Java ME体系结构中充当着什么角色?这些问题虽不牵涉编程实质,但必须要弄清楚,觉得它无聊却必须要掌握,这些都成为广大初学者入门的绊脚石。
本章来解决这些问题。
首先将对Java ME移动开发中若干体系结构的概念及其关系进行介绍,争取用平实的语言来说明问题;然后介绍怎样搭建环境。
Java ME应用程序的开发一般首先在PC机上进行,在PC机的模拟器中经过测试后,然后植入到移动设备中。
对于初学者来说,在PC机上进行移动应用开发的学习,不仅节省成本,而且有很多方便的软件能够简化移动应用的开发,可以提高工作效率。
本章内容将特别针对PC机上的开发进行配置。
首先将对JDK、WTK的安装过程进行阐述;接着基于提高开发效率的考虑,对目前最流行的Java开发IDE——Eclipse的安装进行介绍;然后将最流行的Java ME插件——EclipseMe和Eclipse进行整合;最后将开发一个最简单的手机应用。
只需30分钟,本章将让用户学会开发一个手机上运行的应用程序。
1.1 初识Java ME提起Java ME,读者就会想起Java著名的3个版本。
? Java SE:Java 2(Software Development Kit)Standard Edition,Java 2技术标准版,以界面程序、Java小程序和其他一些典型的应用为目标。
02.编写Java ME程序
Hello.java
网 络
Byte Code 审核器
JVM Hello.class
Runtime
硬件设备
Java ME 程序的执行步骤
类加载器 Hello.java Byte Code 审核器 Hello.class
络 网
JVM
预先审核 Runtime Hello.class
硬件设备
MIDP 应用程序的部署
●
获取 Java Me 应用开发的 SDK it 2.5.2 for CLDC /javame/downloads
● ● ●
获取 Eclipse 并安装 获取 Eclipse ME 插件并安装 启动 Eclipse 并配置 Java ME 开发环境
JavaME 移动应用专题
第二章 编 写 Java M 程序 E 主 : 宝峰
内容描述
● ● ● ● ●
传统 Java 应用程序的执行过程 Java ME 程序的执行步骤 MIDP 应用程序的部署 准备 Java ME 的开发环境 编写 HelloWorld 示例
传统 Java 应用程序的执行过程
●
MIDP 应用程序部署有两种方式
● ●
Over The Air ( OTA ) 非 OTA 部署 ( 经红外线,蓝牙,数据线等等 ) 网站 HTML File 2. 下载并安装 MIDP 应用程序
●
OTA 方式部署
Jar File
1. 利用 GPRS 连 接无线网络
Descriptor File
准备 Java ME 的开发环境
编写 HelloWorld 示例
●
实例演示 ......
结束
�
Java ME 程序设计第11章Java ME中的3D程序开发
外部建模导入3D模型
在Mobile 3D Graphics中提供了一个Loader类,它可以载入M3G格
式的文件。除了支持M3G格式的文件之外,Loader类还可以装载 PNG格式的图像文件, Loader类有如下两个静态方法: public static Object3D[ ] load(String name) public static Object3D[ ] load(byte[ ] data, int offset) 其中,参数name代表要装载的文件名,参数data是一个字节数组, 包含了要被装载的二进制对象,参数offset代表字节数组中开始读取 数据的起始位置索引。如果装载成功,该方法将返回一个Object3D 对象数组,该数组中将包含场景中全部的节点。
3D场景的创建
世界World类:在Mobile 3D中,场景树的根节点必须是World类的实
例对象,其中只有摄像机Camera类和光线Light类比较特殊,可以 不被放置在这个树中,而是直接通过Graphics3D类的对象来设置。 摄像机Camera类:在设备显示屏幕上,Mobile 3D中所有的三维物体 都是以二维平面的形式表现出来的,因此为了能在二维平面中显示 三维物体,必须把三维物体投影到二维平面上。在Mobile 3D中摄像 机Camera类负责完成这个工作。 光线Light类:把光线加进3D场景中可以给最终的外观带来一个巨大 的变化。Mobile 3D中的光源用Light类表示 背景Background类: Background作为3D场景的背景,通常是一幅可 操作的二维图片。默认情况下,不设置裁减区域,背景所采用的内 容将是整张图片。背景图像必须首先被转换成Image2D对象,然后 再调用setImage()方法设置成背景图像。如果不使用背景图像,也 可以采用setColor()方法来设置背景颜色。
基于java的mes系统开发实例
基于Java的MES系统开发实例一、背景介绍地球上有句古话,换汤不换药。
同样的,工业生产中也有一套固定的程序和规律,在这个程序和规律中,没有程序员的账号密码,没有任何情感色彩,更没有仁慈和宽容的理解能力。
MES系统即制造执行系统,是生产管理信息化的核心,通过对相关生产数据的采集与分析,实现生产计划、排程管理、生产执行、生产质量管理、设备管理、物料管理、劳动工时管理等功能。
二、MES系统的开发架构1.前端:基于HTML5、CSS3、JavaScript进行设计与开发,保证系统的易用性和友好性。
2.后端:采用Java作为主要开发语言,通过Java技术栈搭建系统核心模块,包括企业级的Spring框架、ORM框架MyBatis等。
3.数据库:使用关系型数据库系统,如MySQL、Oracle等,进行数据的持久化存储与管理。
三、MES系统的核心功能1.生产计划管理:实现生产计划的制定、发布、调整及跟踪。
2.生产排程管理:根据生产计划进行排程,并实现实时调整。
3.生产执行管理:监控生产现场的生产进度、质量状况,及时发现并解决生产过程中的问题。
4.生产质量管理:对生产过程进行质量控制,保证产品合格率。
5.设备管理与维护:对生产设备进行管理及维护,确保设备的正常运转。
6.物料管理:实现对生产物料的统一管理,包括物料采购、入库、使用、追踪等。
7.劳动工时管理:对员工的劳动工时进行统计,为工资结算提供依据。
四、MES系统的开发流程1.需求调研:对生产企业的实际需求进行深入调研,明确系统的功能需求与性能需求。
2.系统设计:基于调研结果,进行系统的总体设计与详细设计。
3.系统开发:根据设计方案,通过Java技术栈进行系统的开发与实现。
4.系统测试:对开发完成的系统进行单元测试、集成测试、系统测试等多种测试手段进行验证。
5.系统部署与运维:在测试通过后,对系统进行部署,确保系统能够稳定运行,并进行系统维护与优化。
五、MES系统的开发案例某某公司MES系统开发:1.实施背景:某某公司是一家制造业企业,拥有多条生产线,由于原生产管理方式效率较低,无法满足生产需求,决定引入MES系统进行生产管理信息化。
Java ME移动开发教程第二讲
课程导论
色彩数量
屏幕颜色是由色阶来决定。色阶是表示手机液晶显示屏亮度 强弱的指数标准,也就是通常所说的色彩指数,表示了色彩 的丰满程度。 目前手机的色阶指数从低到高可分为:最低单色,其次是 256色、4096色、 65536色、26万色、1600万色。 256=2 的8 次方,即8 位彩色;依次类推,65536 色=2的16 次 方,即通常所说的16位真彩色;26万=2的18次方,也就是18 位真彩;1600 万=2的24次方,也就是24位真彩。 目前手机能达到的色彩数量也是限制美术人员发挥的一个重 要瓶颈。将色阶高的图片放到色阶低的手机上,会产生图片 色彩的失真,有的颜色无法区分,色偏严重。所以,设计人 员需要根据实际手机进行图片绘制。
课程导论
内存
手机上的内存分为 RAM 和 ROM ,其中 RAM 是动态内存,相 当于电脑的内存,是影响手机程序运行性能的重要指标,在 RAM 中的数据在手机关闭后丢失。目前来说, 512M 的 RAM 可以较好地保证手机使用的流畅性。 ROM则相当于电脑的硬盘,用于存储手机操作系统、应用程 序和用户的文件,ROM中的信息在掉电后并不会丢失。随着 手机上安装程序的增多,以及数据信息的累加,ROM的可用 空间会不断减少。如果ROM的空间太少,就会影响到手机的 操作速度。这一点和电脑引导盘空间(例如:Windows 系统 的C盘)的减少会影响电脑的使用类似。 手机的大小可以通过增加SD卡来做进一步扩充,一般用于存 放用户的文件,例如视频、音频文件。可以将其理解为电脑 上的外接移动硬盘。
课程导论
获取Java ME系统参数(二)
第二个类是Runtime类: 1. totalMemory( )方法返回Java虚拟机从操作系统占用的 所有内存,返回的数值单位是字节。 2. freeMemory( )方法返回Java虚拟机已占内存中还未使 用的部分,返回的数值单位是字节。
实验二Java ME程序开发及命令按钮添加
实验二Java ME程序开发及命令按钮使用
一、实验目的及任务
1、掌握Java ME程序开发框架。
2、掌握命令按钮的添加。
3、掌握命令按钮的事件处理机制。
二、实验环境
1、J2ME Wireless Tookit
2、任意一个java源代码开发工具,如Eclipse
三、实验步骤
1、结合Form和Command的文档,完成如下效果:
将模拟器的背光灯时间调整为1000毫秒,震动时间为500毫秒。
2、在上题界面左方有一个“返回”按钮,在界面右方有一个菜单,包含3个按钮:“删除该号码”、“编辑该号码”和“退出程序”。
选择右边的“删除该号码”、“编辑该号码”按钮,要求能够
将按钮标题打印出来;选择右边的“退出程序”,要求退出该程序;选择左边的“返回”按钮,要求将Form标题改为:“返回”。
例如,首先选择右边的“删除该号码”、“编辑该号码”按钮,然后选择左边的“返回”按钮,就得到如图的效果。
提示:Form类中有几个方法可能会用到:
append(String str):往Form中添加文字。
setTitle():设置Form的标题。
Command类中的方法:
getLabel():获取按钮上的名称。
3、用Eclipse方式将上面的程序打包。
《JavaME应用开发》中级 课程重点讲义
《JavaME应用开发》第l章体系介绍和环境配置1、Java ME概述2、剖析Java ME3、安装JDK4、安装WTK5、安装Eclipse和Eclipse Me6、开发一个手机应用程序一、考核知识点JavaME应用程序开发环境的搭建和简单MIDlet移动应用程序的开发过程。
二、考核要求1、理解:JavaME移动应用程序开发平台的体系结构。
2、掌握:JavaME移动应用程序开发环境平台的搭建。
3、掌握:简单手机应用程序的开发过程。
三、本章在试卷中所占的比例6%第2章界面和Command命令按钮1、详解MIDlet结构2、添加Command命令按钮3、按钮排布规律4、按钮事件一、考核知识点MIDlet的生命周期和高级界面开发框架。
二、考核要求1、了解:MIDP文档的基本结构。
2、理解:MIDlet的程序结构和生命周期。
3、掌握:使用命令按钮进行高级界面开发。
三、本章在试卷中所占的比例8%第3章 List、Text Box、Ticker和Alert1、List列表框开发2、List列表框的功能3、TextBox文本框开发4、Ticker滚动条开发5、Alert提示框开发一、考核知识点高级界面设计中List列表框、TextBox文本框、Ticker滚动条、Alert提示框等控件的使用。
二、考核要求1、理解:高级界面设计的基本概念。
2、了解:javax.microedition.lcdui包的基本结构。
3、理解:Screen子类的重要子类和基本使用过程。
3、掌握:List列表框、TextBox文本框、Ticker滚动条、Alert提示框等控件在高级界面设计中的用法。
三、本章在试卷中所占的比例10%第4章表单元素及其事件1、表单元素简介2、Choice Group3、Date Field4、Gauge5、Image Item6、Text Field7、Item Command 事件8、Item State事件一、考核知识点Item子类的重要子类在高级界面设计中的运用和表单元素事件的开发过程。
Java Me 嵌入式程序设计chap1
第一章
• 当源程序被编译后,必须被预审核器(preverifier) 审核。才能生成可以下载到目标机设备上运行的 类文件。 • 生成的类文件具有一些额外属性;在运行时,使 用该额外属性进行安全检查。具体过程如图1-3所 示。
• 图1-3 在虚拟机和配置中完成的预审核过程
第一章
• (2)应用级别上的安全机制
第一章
• 在配置之上的软件层次是简表(Profiles), 它是某个行业或者某个领域内的特性概括, 每套简表专门针对某一类设备。例如,移 动电话具有一套简表;PDA也具有一套简 表;数字机顶盒具有另外一套简表。 • 位于最顶层的软件层次是可选包(Optional Packages),如蓝牙通信、无线消息、移 动多媒体和Web服务等。
第一章
• KVM应用于那些电池供电的手持移动设备,如移动电话、 PDA等; • CVM和KVM者适用的硬件资源是前者高后者低,根据不 同的硬件选择不同的虚拟机。KVM在功能上是CVM的子 集。 • 在虚拟机之上的软件层次是配置(Configurations),它 包含一些核心的类库,将具有通用特性的设备组织在一起, 如所有有线连接的设备具有相同的一套配置,相应地,所 有无线连接的设备具有另外的一套配置;所有有稳定而持 续电源供应的设备具有相同的一套配置,类似地,所有依 靠电池供电的设备具有另外的一套配置。
第一章
• 2)KVM(K Virtual Machine) • KVM的最大特点是小而高效,只需要几万字节 的存储空间就可以运行。KVM虚拟机和类库只需 占有K量级的存储空间,即50~80KB,具有较高 的可移植性和可扩展性。KVM是专门执行下载到 低端的CLDC设备上的MIDlet程序。KVM虚拟机 是根据相应的设备完全重新编写的,它不是现有 JVM的改进产品。 • 虽然Sun公司推荐CVM和KVM作为Java ME的虚 拟机,但这不是必需的,实际上,只要满足配置 中的规范定义,通过兼容性测试就可以作为虚拟 机应用在小型设备上。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工具
输入
输出
编译 javac.exe编译 源文件(*.Java) 未混淆的类文件(*.class)
混淆 第三方提供的工具 未混淆的类文件(*.class) 混淆后的类文件(*.class)
预审 preverify.exe预审核 混淆后的类文件(*.class) 经过预先审核的类文件(*.class)
打包与编写描述文件:
MIDP可执行文件后缀名为jar。利用jar file.class就能将通过预审核的*.class文件,打包成 MIDP认可的可执行文件。后缀名为jad的文件是jar文件的描述文件,jad文件详细介绍见第二节。
在仿真器或手机上安装运行:
有了jar及jad文文件后,我们就可以把它们放到仿真器或手机上运行了。至于如何把它们放到手机上,根据手机的功能不同,有如下方法可以选择:
使用数据线,将PC与手机相连,下载文件
使用红外线
使用蓝牙
使用OTA空中下载(利用短信/WAP
DashO / 商业软件,一般专业公司使用,昂贵
ZKM / 商业软件可试用
JBuilder / 集成开发环境中内附混淆功能,但JBuilder的价格也不便宜。
编译:
编译就是将我们所编制的*.java 文文件,编译成为二进制的*.class文件(计算机只认识二进制!)。javac.exe是由Sun公司编写的一个编译器,它可以把*.java文件编译成为*.class文件。注意:如果一个*.java文件中定义了三个类,它就将被编译成三个*.class文件。
预审核:
在完成编译后,我们必须要对*.class文件进行预审核,这和传统的Java程序(Applet、Servlet)是不同的。因为class在传输过程中容易损坏或是被篡改,传统的Java程序在运行前,都在本地机器上对.class进行Byte Code的审核。而对于手机这样的资源有限设备而言,在手机上进行大量的此类的审核是极为浪费资源(如占用CPU的时间、消耗电力等)。因此,我们必须先在PC机上使用preverify.exe进行一部份预选审核工作。这样,在手机上进行的审核工作就大量减少了。
打包 jar.exe打包 经过预先审核的类文件(*.class) 包文件(*.jar)
编写描述文件 文本编辑工具 描述文件(*.jad)
安装运行 传输工具(IR/BT/数据线/OTA) 包文件(*.jar)和描述文件(*.jad)
在仿真器或手机上正式运行
下面将会介绍每个步骤。当利用集成开发环境(诸如JBuilder、NetBeans、SUN ONE Studio、Eclipse等)时,这些工具不仅可以很快的帮我们建立起代码的主干,而且可以帮助我们自动的完成上面的大部份工作(关于集成开发环境的利用见后面的章节)。在利用IDE开发之前,开发者有必要了解其中每一步的原理。
混淆(可选):
由于class文件格式透明的缘故,java文件很容易被反汇编。因此,如果你不希望别人掌握你的源代码的话,你一定要进行混淆(obfuscate)。所谓混淆,就是利用工具,将方法名、类名改成没有实际意义的特定的字符及代号,增加阅读的难度。这样就充分的保护了我们自己的知识产权。而且混淆还有个意想不到的好处,就是减少程序的大小。这是由于混淆器将我们设定的方法名、类名变成没有意义的短字符或代码,无形中减少了程序的大小。对于手机程序设计来讲尤为重要,每K的减少都意味着可以获得更多的空间。混淆器都是第三方软件开发商提供的,许多都是开源的,可以免费使用。常见的混淆器见下表:
名称
地址
特点
ቤተ መጻሕፍቲ ባይዱ
JODE / 开源
ProGuard / 开源
RetroGuard / 开源,中国移动百宝箱强制使用