﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-kingpub-文章分类-J2ME</title><link>http://www.blogjava.net/kingpub/category/16517.html</link><description>海内存知己，博客若比邻</description><language>zh-cn</language><lastBuildDate>Sat, 03 Mar 2007 09:14:51 GMT</lastBuildDate><pubDate>Sat, 03 Mar 2007 09:14:51 GMT</pubDate><ttl>60</ttl><item><title>搭建J2ME开发平台 EclipseME篇(下)</title><link>http://www.blogjava.net/kingpub/articles/76633.html</link><dc:creator>xiaofeng</dc:creator><author>xiaofeng</author><pubDate>Sun, 22 Oct 2006 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/kingpub/articles/76633.html</guid><description><![CDATA[
		<p>3 使用Eclipse进行无线开发</p>
		<p>创建工程</p>
		<p>在完成了环境搭建后，我们就可以在Eclipse中用我们所熟悉的方式开发无线应用程序。下面让我们完成一个经典Hello World程序。这里，我们选择使用Sun WTK 2.2作为模拟器。</p>
		<p>
		</p>
		<p> <img alt=" " src="http://yefeng177.blogchina.com/yefeng177/inc/EclipseMe19.JPG" onload="function anonymous()&#xD;&#xA;{&#xD;&#xA;function anonymous()&#xD;&#xA;{&#xD;&#xA; img_auto_size(this,450,true);&#xD;&#xA;}&#xD;&#xA;}" align="baseline" /></p>
		<p>
				<br />在Eclipse工作台上的新建选项中，选择J2ME Midlet Suite，首先创建一个MIDP Suit。</p>
		<p>
		</p>
		<p>
				<br />在下一步中，我们可以看到有多种模拟器设备可供选择，选定“J2ME Wireless Toolkit 2.2 MIDP 2.0 Platform”后，继续下一步，直至完成。</p>
		<p>
		</p>
		<p>
				<img alt=" " src="http://yefeng177.blogchina.com/yefeng177/inc/EclipseMe20.JPG" onload="function anonymous()&#xD;&#xA;{&#xD;&#xA;function anonymous()&#xD;&#xA;{&#xD;&#xA; img_auto_size(this,450,true);&#xD;&#xA;}&#xD;&#xA;}" align="baseline" />
				<br />此时，在包资源管理器中，Hello World套件项目已经被建立起来，我们注意到，Eclipse为我们自动绑定了J2ME library运行库，并创建了jad等配置文件。</p>
		<p>
		</p>
		<p>
		</p>
		<p> <img alt=" " src="http://yefeng177.blogchina.com/yefeng177/inc/EclipseMe21.JPG" onload="function anonymous()&#xD;&#xA;{&#xD;&#xA;function anonymous()&#xD;&#xA;{&#xD;&#xA; img_auto_size(this,450,true);&#xD;&#xA;}&#xD;&#xA;}" align="baseline" /></p>
		<p>
				<br />创建MIDlet文件</p>
		<p>完成项目创建后，让我来创建一个MIDlet类文件，它是整个套件的入口文件。也是Hello World的关键类。</p>
		<p>
		</p>
		<p>
				<img alt=" " src="http://yefeng177.blogchina.com/yefeng177/inc/EclipseMe22.JPG" onload="function anonymous()&#xD;&#xA;{&#xD;&#xA;function anonymous()&#xD;&#xA;{&#xD;&#xA; img_auto_size(this,450,true);&#xD;&#xA;}&#xD;&#xA;}" align="baseline" />
				<br />选择J2ME Midlet之后，我们可以看到系统自动继承了MIDlet超类，请确保三个默认方法复选框被选中，输入类名，完成创建。</p>
		<p>
		</p>
		<p>
				<img src="http://yefeng177.blogchina.com/yefeng177/inc/EclipseMe23.JPG" />
				<br />打开刚刚创建的Hello World，我们发现Eclipse已经自动帮我们生成了程序主体，继承方法以及一些注释。</p>
		<p>
		</p>
		<p>
				<img alt=" " src="http://yefeng177.blogchina.com/yefeng177/inc/EclipseMe24.JPG" onload="function anonymous()&#xD;&#xA;{&#xD;&#xA;function anonymous()&#xD;&#xA;{&#xD;&#xA; img_auto_size(this,450,true);&#xD;&#xA;}&#xD;&#xA;}" align="baseline" />
				<br />如此之多的重复工作已经被Eclipse完成，以至于我们只需要在相应的方法中填写自己的实现过程就可以了。</p>
		<p>
				<br />首先在Hello World代码中导入界面类import javax.microedition.lcdui.*;</p>
		<p>
				<br />然后，我们仅仅需要用以下代码覆盖原先的构造函数：</p>
		<p>
				<br />public HelloWorld() {</p>
		<p>
				<br />       super ();</p>
		<p>
				<br />       // TODO 自动生成构造函数存根</p>
		<p>
				<br />       Form form = new Form("Hello World");</p>
		<p>
				<br />       form.append("Welcome to J2ME World!");</p>
		<p>
				<br />       Display.getDisplay(this).setCurrent(form);</p>
		<p>
				<br />}</p>
		<p>
				<br />如此简单的几步，第一个J2ME就完成了！</p>
		<p>
		</p>
		<p> </p>
		<p>
		</p>
		<p> </p>
		<p>
				<br />执行MIDlet</p>
		<p>在Hello World项目上单击右键，选择“运行…”，</p>
		<p>
				<img alt=" " src="http://yefeng177.blogchina.com/yefeng177/inc/EclipseMe25.JPG" onload="function anonymous()&#xD;&#xA;{&#xD;&#xA;function anonymous()&#xD;&#xA;{&#xD;&#xA; img_auto_size(this,450,true);&#xD;&#xA;}&#xD;&#xA;}" align="baseline" />
				<br />    </p>
		<p>
		</p>
		<p> </p>
		<p>
				<br />在弹出对话框中，在Wireless Toolkit Emulator中新建一个配置，指定刚刚Hello World为入口文件，应用设置，最后运行。</p>
		<p>
		</p>
		<p>
		</p>
		<p> <img alt=" " src="http://yefeng177.blogchina.com/yefeng177/inc/EclipseMe26.JPG" onload="function anonymous()&#xD;&#xA;{&#xD;&#xA;function anonymous()&#xD;&#xA;{&#xD;&#xA; img_auto_size(this,450,true);&#xD;&#xA;}&#xD;&#xA;}" align="baseline" /></p>
		<p>
				<br />可以看到，Eclipse自动启动了WTK的模拟器，显示出了Hello World的欢迎界面！</p>
		<p>
		</p>
		<p>
		</p>
		<p> <img alt=" " src="http://yefeng177.blogchina.com/yefeng177/inc/EclipseMe27.JPG" onload="function anonymous()&#xD;&#xA;{&#xD;&#xA;function anonymous()&#xD;&#xA;{&#xD;&#xA; img_auto_size(this,450,true);&#xD;&#xA;}&#xD;&#xA;}" align="baseline" /></p>
		<p>
				<br />打包与混淆</p>
		<p>打包，就是为套件生成jar文件，用来发布项目。右键单击目标项目，可以在J2ME选项中选定Create Package，生成jar包。</p>
		<p>
		</p>
		<p>
		</p>
		<p> <img alt=" " src="http://yefeng177.blogchina.com/yefeng177/inc/EclipseMe28.JPG" onload="function anonymous()&#xD;&#xA;{&#xD;&#xA; img_auto_size(this,450,true);&#xD;&#xA;}" align="baseline" /></p>
		<p>
				<br />混淆，就是为了保护版权，增加别人反编译阅读源代码的难度；同时可以减少jar包的体积。在J2ME选项中也能够找到创建混淆包的选项。但首先，需要指定当前系统中混淆器的安装位置。</p>
		<p>
				<br />我们这里采用了开源免费的Proguard3.0.1作为混淆器。在“首选项 / J2ME / packaging / obfuscation”中，通过浏览指定Proguard3.0.1的安装(解压)路径。</p>
		<p>
		</p>
		<p>
		</p>
		<p> <img alt=" " src="http://yefeng177.blogchina.com/yefeng177/inc/EclipseMe29.JPG" onload="function anonymous()&#xD;&#xA;{&#xD;&#xA; img_auto_size(this,450,true);&#xD;&#xA;}" align="baseline" /></p>
		<p>
				<br />应用保存设置之后，就可以成功的创建混淆包了。</p>
		<p>
		</p>
		<p> </p>
		<p>
				<br />注意：</p>
		<p>
				<br />很多初次使用的朋友会发现即便指定路径之后，依然不能顺利创建混淆，并且往往得到类似下面的警告信息。</p>
		<p>
		</p>
		<p>
		</p>
		<p> <img alt=" " src="http://yefeng177.blogchina.com/yefeng177/inc/EclipseMe30.JPG" onload="function anonymous()&#xD;&#xA;{&#xD;&#xA; img_auto_size(this,450,true);&#xD;&#xA;}" align="baseline" /></p>
		<p>
				<br />出现这个错误的原因与JDK路径有关。我们在安装了JDK之后(以1.4.2为例)，系统环境变量中存在两种JDK，一种是JDK SDK，一种是运行时环境(runtime)。Eclipse在解压安装时选择的是后者，而启动Proguard3.0.1需要的是前者。</p>
		<p>
				<br />修复这个问题很简单，在“首选项 / java / 已安装的JRE”中把你的JRE从指向运行时更改为指向SDK(即JDK的安装目录)</p>
		<p>
		</p>
		<p>
		</p>
		<p> <img alt=" " src="http://yefeng177.blogchina.com/yefeng177/inc/EclipseMe31.JPG" onload="function anonymous()&#xD;&#xA;{&#xD;&#xA; img_auto_size(this,450,true);&#xD;&#xA;}" align="baseline" /></p>
		<p>
		</p>
		<p>
				<img alt=" " src="http://yefeng177.blogchina.com/yefeng177/inc/EclipseMe32.JPG" onload="function anonymous()&#xD;&#xA;{&#xD;&#xA; img_auto_size(this,450,true);&#xD;&#xA;}" align="baseline" />
				<br />此时JRE将拥有完整JDK库文件，再次运行创建混淆，我们会发现在Hello World子目录deployed中包括了HelloWorld.jar，HelloWorld_base.jar， HelloWorld_base_obf.jar。他们分别是混淆后，混淆前等不同版本的jar包。</p>
		<p>
		</p>
		<p> </p>
<img src ="http://www.blogjava.net/kingpub/aggbug/76633.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kingpub/" target="_blank">xiaofeng</a> 2006-10-22 16:50 <a href="http://www.blogjava.net/kingpub/articles/76633.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>搭建J2ME开发平台 EclipseME篇(上)</title><link>http://www.blogjava.net/kingpub/articles/76632.html</link><dc:creator>xiaofeng</dc:creator><author>xiaofeng</author><pubDate>Sun, 22 Oct 2006 08:49:00 GMT</pubDate><guid>http://www.blogjava.net/kingpub/articles/76632.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 搭建开发平台  EclipseME篇1 /FONT&gt;初识Eclipse、EclipseME Eclipse是一个开发源代码的、基于java的可扩展开发平台。Eclipse相关的许可证是大多数基于Common Public License (CPL)，CPL是一个为Open Source Initiative (OSI)所认可的许可证。由于Eclipse Foundation的建立，Ecl...&nbsp;&nbsp;<a href='http://www.blogjava.net/kingpub/articles/76632.html'>阅读全文</a><img src ="http://www.blogjava.net/kingpub/aggbug/76632.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kingpub/" target="_blank">xiaofeng</a> 2006-10-22 16:49 <a href="http://www.blogjava.net/kingpub/articles/76632.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>