当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]设计了这个基于J2ME手机相册系统。这个系统利用了J2ME和流技术实现对数码照片的显示。用户将自己的照片发布到相应的 web服务器上,可以随时通过手机登陆该网站,访问自己的数码照片,把网站的地址告诉亲朋则可以与大家分享这些美丽的瞬间。

1 引言

有关资料表明,到2005年,全球的移动电话将超过14亿部,移动电话深入每个人的生活,让具有“无线通信、随身携带”特性的移动电话伴随着因特网的发展使得移动应用前景无限。目前,手机上的软件发展经历了三个阶段: 最早只有基本的语音服务,其后增加了简单的附加应用,接着出现了WAP 方式使移动终端能访问Internet 的功能。发展到当前这个阶段,利用J2ME(Java 2 Micro Edition) 实现移动应用是一种良好的途径。

随着人们物质文化水平的提高,数码产品已经步入了百姓的日常生活,越来越多来的人拥有了数码相机或数码摄像机。这些设备拍摄的照片只能利用特殊的设备才可以浏览,那么如果我们可以利用随身携带的手机查看数码照片将是一件非常理想的事情。

基于这一想法,我们设计了这个基于J2ME手机相册系统。这个系统利用了J2ME和流技术实现对数码照片的显示。用户将自己的照片发布到相应的 web服务器上,可以随时通过手机登陆该网站,访问自己的数码照片,把网站的地址告诉亲朋则可以与大家分享这些美丽的瞬间。

2 相关技术介绍

2.1 J2ME介绍

Sun 在1999年6月时推出了 Java 2袖珍版 (J2ME)来满足消费电子和嵌入设备的需要。J2ME是为了那些使用有限的能源、有限的网络连接(常常是无线连接)以及有限图形用户界面能力的设备开发的。J2ME针对硬件的数据处理能力、存储容量、网络连接能力等规定了Configuration的概念,把上述运算功能有限、电力有限的嵌入式装置定义在Connected Limited Device Configuration(CLDC)规格之中;而另外一种装置则规范为Connected Device Configuration(CDC)规格。CLDC所使用的java虚拟机称为KVM,而CDC所使用的则称为CVM。J2ME的体系结构如图1所示。

图1 java2 平台

2.2 J2ME与Web的Http连接

Web由客户与服务器组成。客户是简单由TCP/IP加上Web浏览器组成,WEB服务器由HTTP加后台数据库组成。客户的浏览器和服务器用TCP/IP的HTTP(超文本传输协议)建立连接,使得客户与服务器二者的超媒体传输变得很容易。所有的客户及WEB服务器统一使用TCP/IP,统一分配IP,使得客户和服务器的逻辑连接变成简单的点对点连接。URL(统一资源定位器)实现了单一文档能在整个国际互联网主机中的定位。客户的请求通过WEB服务器的CGI(公用网关接口)可以很好地与后台的各种类型数据接口。

J2ME 提供了HTTP ,TCP 等高级Internet协议,使移动电话能直接访问已有Internet 的全部信息, 通过它能让用户方便地实现手机网与Internet的互连和资源共享。

2.3 流技术

Java流在处理上分为字符流和字节流。字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。Java内用Unicode编码存储字符,字符流处理类负责将外部的其他编码的字符流和java内Unicode字符流之间的转换。java对网络数据的发送和接收处理,也借用了一般流处理的方法。JDK1.4中新增加了新的I/O流处理,其中缓冲区管理和通道(Channel)概念则是对网络数据流的收发处理支持的强化。缓冲区管理中ByteBuffer类更好的支持了网络数据流处理。在网络连接中,通道代表了sockets的连接。我们正是利用字节流DataOutputStream来向Web服务器传送消息,而利用字节流DataInputStream接收从服务器返回的信息,从而实现了手机共享Internet的资源。

3 系统的设计思想

手机相册实际上是通过Http协议使手机与服务器和数据库连接,使用流技术来传送数据信息,使得手机用户可以看到服务器上存放的数码照片,服务器起到的是手机与照片资源之间通信的桥梁作用。

手机用户将通过Internet访问数据库,经过身份验证后将需求告诉服务器,服务器把用户请求的资源以流的形式进行包装,并传送给手机用户。J2ME在手机上接收流,并将数据重组为图像,显示在手机屏幕上。当用户发出结束命令,这时服务器将发出信号要求结束与服务器连接,提示用户是否断开网络,若用户选择断开网络,则关闭网络连接。由此可见本系统的关系图如图2所示。

图2 体系结构图

4关键问题的解决

4.1手机与web服务器的连接

目前有多种与web服务器连接方式,为了使其使用方便和便于理解,本系统使用了HTTP的联结方式。通过对HttpConnection类进行编程可以实现手机与Web服务器的Http连接,利用DataOutputStream类可以把向服务器发送的命令封装进流中进行传送。手机端的部分连接代码如下:

HttpConnection hpc = null;

DataOutputStream dos = null;

strIp = "http://127.0.0.1:8080 /Login.jsp ";

try {

hpc = (HttpConnection) Connector.open(strIp, Connector.READ_WRITE);

hpc.setRequestMethod(HttpConnection.POST);

hpc.setRequestProperty("Content-Type",

"application/x-www-form-urlencoded");

dos = new DataOutputStream(hpc.openDataOutputStream());

dos.write( ("no=" + stname).getBytes());

dos.write("&".getBytes());

dos.write( ("pass=" + stpass).getBytes());

dos.close();

……

}

通过以上代码,可以实现连接web服务器,并且post出去两个参数,以便服务器验证用户身份。其他向服务器传送命令的代码类似。

当MySearch.jsp得到MyGet参数时,JSP得到服务器上存放照片文件夹的图像文件列表,将文件名逐一传送到客户端。

String jname=request.getParameter("MyGet");

if(jname.equals("IsOk")){

……

out.print(XXX.png); //循环打印文件名

……

}

在手机客户端利用DataInputStream类接收数据,再将的到的文件名显示再手机屏幕上,以便用户选择浏览。其代码如下:

HttpConnection hpc = null;

DataInputStream dis = null;

hpc = (HttpConnection) Connector.open(localUrl, Connector.READ_WRITE);

……

dis = new DataInputStream(hpc.openDataInputStream());

StringBuffer b = new StringBuffer();

int ch;

while ( (ch = dis.read()) != -1) {

……

}

……

4.2利用流传输文件及文件的再现

手机得到web服务器上的文件可以通过多种方式,例如利用XML进行包装,利用Socket技术,利用流技术进行传送等。为了减少手机和服务器的负担,提高效率,减少代码本系统采用流技术传送图像文件。在手机端利用InputStream类接收得到的图像信息数据。其代码如下:

public Image MyImage;

public String ImageName;

……

HttpConnection con = null;

InputStream ins = null;

String MyIp = "http://127.0.0.1:8080/"+ ImageName;

try {

con = (HttpConnection) Connector.open(MyIp, Connector.READ_WRITE);

……

ins = con.openDataInputStream();

MyImage = Image.createImage(ins);

}

……

向web服务器提出申请后,服务器会返回用户请求的资源,图像文件备包装进一个Stream发送给用户。J2ME利用InputStream来接收输入流,并利用Image的createImage方法将数据流转换为Image类型,以便在手机上显示。

5 总结

本文给出了一个基于J2ME 的个人相册的设计和实现,保证了用户及时地通过移动终端访问服务器上的照片。采用流作为数据交换的工具,实现了文件的远程传递和重组。。利用当前使用最广泛的HTTP 通信协议,将传统的Internet 网站与移动终端相结合,验证了建立移动个人相册的可行性。并为实现基于J2ME 的小型移动图像浏览系统提供了一种可行的方案。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭