京山游侠

专注技术,拒绝扯淡
posts - 50, comments - 868, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
  上一篇,我们见识了编写一个手机程序其实很简单。但是很多人大概不是很明白怎样把程序转移到手机上,不信你就试试,不管你是用数据线,还是用红外蓝牙,都无法把电脑上的程序弄到手机上运行,也没办法把别人手机上的游戏弄到自己的手机上运行(传输普通数据可以,就是程序不行)。我有一次就是看到别人的手机上有很多游戏,想转移过来,怎么试都不行。

  为什么会这样?这是因为Java程序在到手机上运行之前,必须经过一个安装过程,而这个安装过程,是通过你的手机的AMS(应用程序管理软件)完成的,而这个AMS只能从网上下载程序进行安装。明白了这个道理,那么再将程序转移到手机就简单多了,不就是要从网上下载吗?我们这里哪一位不是建网站的高手?搞一个Tomcat来就轻松搞定。我们甚至可以把建立一个手机程序下载网站作为创业之路。这样的下载服务器专业的叫发叫OTA服务器,OTA,就是Over The Air,是不是很直观,像手机这样的无线上网不就是通过空气来下载的吗?

  建立一个OTA服务器,首先要了解J2ME程序的结构,J2ME程序的项目生成以后,应该是由两个文件组成,一个.jar文件和一个.jad文件,.jar文件不用说了,自然是包含我们所有的java程序以及各种图片、音乐的资源文件;而.jad文件是一个文本文件,它包含了我们程序的描述信息。AMS在安装程序时,就是通过这个.jad文件来了解我们程序的一些信息的。在上一篇中,我们建立的项目保存目录为D:\Java\Projects\MyFirstMobileApplication,在这个目录的dist目录下面,可以看到两个文件:MyFirstMobileApplication.jar和MyFirstMobileApplication.jad

  打开Tomcat服务器,我们也懒得再专门建立一个Web应用程序,就使用Tomcat的默认应用程序好了,把上面的两个文件拷贝到Tomcat目录的webapps\ROOT目录下,然后,再在该目录下建立一个简单的WML文件download.wml,如下:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml"
>

<wml>
<card title="welcome" id="main">
<p>下载软件:</p>
<align="left"><href="MyFirstMobileApplication.jad"></a></p>
</card>
</wml>


  编辑完这个wml文件后,我们还要检查一个东西,就是打开Tomcat目录下的conf\web.xml文件,看看其中有没有如下几行:
<mime-mapping>
        
<extension>jad</extension>
        
<mime-type>text/vnd.sun.j2me.app-descriptor</mime-type>
    
</mime-mapping>
    
<mime-mapping>
        
<extension>jar</extension>
        
<mime-type>application/java-archive</mime-type>
    
</mime-mapping>


  如果没有,就要把它们加进去。不过一般最新版本的Tomcat都是有的。

  OK,下面就可以用手机来下载我们的程序了。不过请记住两点:
  1.手机上网是要钱的,比如我们这里,中国移动的价格是每下载1k收3分钱,不要小看啊,1M就是30元啊,看你有多少钱往水里扔。不过你也可以定制包月服务,5元钱10M或者20元50M,不过如果你真的每一个程序多下载到手机上测试的话,我想这包月也是不够的。
  2.你的服务器必须能够被访问,这说明你必须要有一个域名,还要租用服务器,这也是要钱的啊。而使用模拟器在自己的机器上访问,则只接访问http://localhost:8080/download.wml就可以了。

  因此,我们还是使用模拟器来演示怎么安装软件。MobilePack 5.5.1自带的手机模拟器程序叫emulator,是WTK2.5.1的组件之一。在NetBeans IDE中使用它运行项目很简单,但是要单独打开这个软件就有点麻烦了。在NetBeans的安装目录中,在mobility7.3\emulators-inst目录下有一个wtk251-win.zip文件,把这个文件解压缩到wtk251-win文件夹中,在wtk251-win\emulator\bin目录中可以看到下面这些文件:
  15.PNG

  我们运行其中的ktoolbar.exe,应用程序的界面如下:
  16.PNG

  注意,这个时候“项目”菜单是灰色的,我们需要随便打开一个项目,项目菜单才能够使用。在这个菜单中选择“通过OTA运行”,如下图:
  17.PNG

  弹出模拟器,下面的操作都在模拟器中完成。在下图中选择“应用程序”菜单:
  18.PNG


  接着选择“安装应用程序”,就会弹出如下图的输入url的界面,输入我们刚才编写的download.wml的地址:
  19.PNG

  开始下载:
  20.PNG

  下载完成后,AMS会把里面包含的jad连接抽取出来,我们选择需要安装的程序:
  21.PNG

  确认安装:
  22.PNG

  安装完成后,我们的应用程序列表中就多了一个程序MyFirstMidlet,运行这个程序的效果在上一篇里已经贴图了,这里不再重复:
  23.PNG

  最后说一下,在emulator里,它自带了很多示例项目,大家不妨看看。下面是其中的Demo3D项目的运行效果的截图,看来在手机上编写3D游戏也不是不可能的嘛。
  24.PNG


评论

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上[未登录]  回复  更多评论   

2007-07-19 21:40 by dan
您写的文章很适合我这样的新手看,而且很详细.非常感谢,希望一直有新的发布.

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上  回复  更多评论   

2007-07-19 22:26 by go
good...

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上[未登录]  回复  更多评论   

2007-07-20 09:03 by king
2.你的服务器必须能够被访问,这说明你必须要有一个域名,还要租用服务器,这也是要钱的啊。而使用模拟器在自己的机器上访问,则只接访问http://localhost:8080/download.wml就可以了

么看懂,那手机怎么访问里。?真的么看懂

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上  回复  更多评论   

2007-07-20 10:25 by 海边沫沫
@king
手机只能访问公开的网站啊,比如http://www.sina.com.cn/download.wml,而访问http://localhost:8080/download.wml就不行,因为localhost这样的域名只能在本机上访问。

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上  回复  更多评论   

2007-07-21 13:38 by 山风小子
很详细,有时间学学 :)

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上  回复  更多评论   

2007-07-21 16:50 by Darkdance
很不错的文章,希望您也能简单的介绍一下ECLIPSE的用法哦。。

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上  回复  更多评论   

2007-07-30 16:44 by 小白之家
学习,学习ing

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上  回复  更多评论   

2007-08-07 22:01 by Fang.W
强!顶!
但是我有个问题哦,你说想要将做好的程序放在自己的手机上运行需要通过网络下载才行。这种说法我想反驳一下...
我做了很多简单的j2me程序,都能放到自己的手机里运行啊,还有我用电脑在网上下载了很多游戏安装包,然后通过数据线、红外、蓝牙随便哪种方法将jar 包传到手机里,然后在手机里找到JAR包,安装后,就可以运行了。

所以我想是不是跟手机的型号有关。因为我也曾经将同样的jar包传到我们经理的手机上,他的手机就没有安装jar 包这个功能。当时我还很郁闷,想他的手机到底应该怎样安装。

现在看过你的文章后,我想是不是跟手机的型号有关。也许有的手机只能通过网络下载安装,就是你说的OTA。

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上  回复  更多评论   

2007-08-08 11:15 by 海边沫沫
@Fang.W
如果是这样,那么说明你说的有道理

你用的是哪款手机?

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上  回复  更多评论   

2007-08-08 12:02 by Fang.W
索爱W810

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上  回复  更多评论   

2007-08-10 14:49 by Foxfur
java的安装是和手机有关的,一般情况下,官方版本的系统都是要求通过网络安装的,有些做得智能点的就可以自动识别。三星的手机就可以通过补丁来实现通过TF卡安装java程序!:)

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上  回复  更多评论   

2007-08-29 10:01 by 曹燕华
我是新手,谢谢.

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上  回复  更多评论   

2008-06-24 11:18 by yangxy
在dist文件夹里就有生成的jad和jar,拷贝到手机上就可以安装了.我的手机是PPC安装了java虚拟机

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上  回复  更多评论   

2008-08-12 11:04 by Sijia
很好,能把源码发给我吗?
liu_sijia@126.com
谢谢先.

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上  回复  更多评论   

2009-03-25 17:22 by byfk
非常之感谢

# re: 使用NetBeans进行J2ME开发(二):把程序转移到手机上  回复  更多评论   

2010-03-11 22:45 by 李劲柏
感谢您的力作,对我很有帮助!

只有注册用户登录后才能发表评论。


网站导航: