本文内容摘自即将出版的《symbian os j2me编程指南》一书,关于本书的详细介绍请访问:http://www.china-pub.com/computers/common/info.asp?id=25538 6.3 移植问题这一节讨论一系列特定的移植问题,涉及ui(包括低级图像和高级ui组件)、可选的和第三方api以及下载大小限制。为了创建能在一系列不同类型和功能的设备上运行的midlet,在midlet运行期间,识别设备的性能是非常有用的,这样它就能动态改变其行为,或者在提供midlet时,服务器能发送一个恰当的经过裁剪的jar文件。支持设备的运行期识别也是相当有限的:我们能使用system.getproperty()来识别jtwi或midp版本,并且我们可以使用canvas.getheight()、canvas.getwidth()、canvas.isdoublebuffere...
看此文前,你可以首先参考一下《j2me中定点库mathfp使用入门》一文。mathfp是一个定点的浮点模拟工具,这套类库没有封装细节,而是把一系列的转换操作留给了用户,这些频繁的操作非常容易出错,但是效率上占一定的优势。考虑到极少有j2me设备设有浮点运算单元,特别是在cldc1.0设备上不适合使用沉重的浮点运算。所以如果你的应用需要进行沉重的浮点运算,比如基于浮点的游戏,可以采用mathfp。这样至少比你采用手动的乘除法来的优雅。而对于并非沉重的浮点计算,我推荐大家使用由_nikolay klimchuk_ 开发的henson.midp.float库(ver 1.01) ,一个封装良好的float类。henson.midp.float类简介首先到http://henson.newmail.ru/j2me/float.java下载源代码。henson.midp.float类非常适合科学计算...
近期学习j2me开发,也谈谈我对字符串管理的一个方案。字符串管理的目的是字符串的资源化管理。1。这个系统应该可以通过静态方法访问;2。字符串保存在资源当中;3。可以方便的切换各种语言以达到多语言支持;4。字符串资源有一个名字,通过名字访问该资源;5。名字的规则应该是类名+内部名称。下一个问题就是资源以何种格式存储的问题:按理说xml是理想的方式,但是考虑到j2me系统的特殊性,采用plain text更为合适格式是string-name string-valuename和value之间以空格或t分割,不同的字符串之间以n分隔。内部采用hashtable存储。通过以上的分析,可以写出如下的stringmanagerpackage vmlinux.app;import java.io.*;import java.util.*;public class stringmanager {...
大家是如何保护自己的引用程序的呢?看到一些游戏的保护方式有些是允许运行一次,有的有时间限制。他们是如何做到的呢?是不是每次都要去写那些千篇一律的代码呢?我就研究了一个自己的解决方案:protector。这些protector有一个公共的基类:protector他是这样的:package vmlinux.app;import javax.microedition.lcdui.command;import javax.microedition.lcdui.commandlistener;import javax.microedition.lcdui.displayable;import javax.microedition.lcdui.display;import javax.microedition.midlet.midlet;public class protector implement...
前几天看到mathfp的文章,很有些激动,有了浮点数很多不能做的事情都变为可能。但是一大堆mathfp开头的函数和不断的转换让人头大。于是就想着自己封装一下,很多人都有这个想法吧:)我的这个叫做float。1。首先是浮点常数,这个没什么好说的 public static final float pi=new float(mathfp.pi); public static final float e=new float(mathfp.e); public static final float pi2=pi.div(2); public static final float pi4=pi.div(4); public static final float pi=pi.div(180); //pi/180 public static final float neg1=new float(-1);...
第一部分介绍了protector,并实现了一个最简单的protector:onceprotector第二部分将实现一个timeprotector我们先来设想他所具有的功能:1。没有到指定时间,他是处于激活状态的(check函数返回true);2。过了指定时间,他就不能激活;3。一旦过期,即使用户调整了时间也不再激活。嗯,明确了目的,下面就来继续。涉及到了时间问题,就来说说如何处理时间。midp有date类型,但是提供的功能非常有限。构造函数无法接受人们熟悉的字符串来初始化。我们必须使用calendar来做这些工作,当然,如果long在你眼里看来就是time(黑客帝国?)我是这样处理的,看timeprotector的构造函数: public timeprotector(midlet app,int year,int month,int date) { super(app); cal...
有了前面的基础,现在就开始实现snprotector。这回我们对snprotector又有哪些要求和目标呢?1。和前面的onceprotector和timeprotector一样要使用简单;2。用户可以在程序里输入用户名和序列号并验证;3。允许用户试用;4。允许验证后继续运行程序。好了,有了目标之后我们如何管理注册码呢?放在资源里?放在程序里?这两种方法都不方便批量的分发。哪里呢?我选择jad里面:)分发的程序的jad里面有两个用户定义字段:user: cakecsn: 8180076728b161326ae2cc61b783b451他们有什么用?看下去就明白了。大家是不是又想到一个问题,如何可以像前面的两个protector一样使用简便只需要判断一下check,又能在用户输入注册码后再继续运行呢?因为check判断和其它的startapp的初始工作在一个函数里面,难道有什么办法让函数停止...
这两天又研究了一下midlet程序的设计方法,发现通过写一个程序管理器可以大大方便midlet编程,并在这个基础上扩展了多语言支持。在midlet编程中,很多系统的属性要通过一个midlet实例来访问,比如display.getdisplay,那么在需要切换界面的类里面你必须把midlet实例或者display实例传送给他,尤其在设计弹出和可以返回的界面时。没有更好的办法吗?又比如程序的暂停功能,有没有根方便的方法把他们集成起来?还有错误处理,程序退出等等,利用以往的方法是不是很不爽?嗯,真是不爽,于是我写了这个程序管理器:app。首先看他的组织方式: static app instance; display disp_; midlet app_; public static void createinstance(midlet app) { if(instance==null)...
最近完成个j2me游戏,一直以来总想写点东西给大家~因为以前总是在索取,现在把j2me的入门知识-定时器的相关知识以及我的一点体会-付出给大家,内容不多只是它的使用,希望对入门的j2me开发者有所帮助。 首先,说下定时器的基本使用,以下内容摘自nokia 论坛里的一篇文章:《为60系列平台设计java应用》--定时器 各种定时器让各种应用能方便地规划任务,而不必对线程进行调配。使用线程通常需要更为复杂的设计,并需要更多的系统资源,对各种小设备而言,比较奢侈。创建一个定时器的范例:public class mytask extends timertask{private int icount;public mytask(int astart){super();icount = astart;}public void run(){icounter--;s...
junit是一个优秀的用于单元测试的框架,在j2se,j2ee的开发过程被广泛使用,它使得代码的质量得到更好的监控和维护。然而对于j2me平台一切就不是如此简单了,由于手持设备需要更多的考虑性能问题,j2me平台并没有提供反射(reflectiong)的api,因此junit的很多功能无法在j2me上实现,程序员也就无法在j2me平台上使用junit进行单元测试。本文将介绍一个能对j2me应用程序进行单元测试的工具:j2meunit。j2meunit是一个基于junit实现的针对j2me平台的单元测试框架。详细介绍请看:http://j2meunit.sourceforge.net/。 运行环境 本文的示例程序的运行和测试都是在eclipse3.1下进行,并需要到如下网址下载j2meunit的最新版本: http://j2meunit.sourceforge.net/下载后如为rar/zi...
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器