J2ME引领移动开发

SAP 运费处理方式 从直接的处理方式上看,情况1/2/3可以将运费记账到物料成本中,但情况4/5/6是直接记账到成本对象中,具体是要体现在损益表中,还是要结转到物料成本中,可依据业务要求进行好处理。如果体现在损益表中,不需要多过多额外的操作,如果要体现在物料成本中心,则需要再进行一系列的处理,最终将金额结转到物料成本中。因为在创建采购订单时不知道具体运费,可以不维护运费,只需要维护材料价格。:创建采购订单时,运费是由供应商承担,很多时候是包含在材料报价中,这种情况不需要专门针对运费进行处理,材料价格中已包含运费。 阅读详情
2005 J2ME引领移动开发

文章摘要
    2005年对计算机通信行业的开发者和从业者来说有太多的期待,而最值得期待的就是被称之为纯技术驱动的第三代移动通信系统的商用。姑且不谈纯技术驱动有没有市场,能不能成功,但是3G的商用必定会给移动开发插上飞翔的翅膀,笔者认为J2ME将是移动开发这场竞赛的领跑者。本文将从总体介绍J2ME的体系结构和主要内容,同时谈谈J2ME同其他移动开发平台的比较。


J2ME概述
     2004年,移动开发恐怕成为了最时髦的字眼。在优快云的最近一份调查显示,有24.34%的受访者涉足嵌入式/移动设备应用开发,这个数字可能略高于实际的比例,但也足可说明嵌入式/移动设备应用开发是一块诱人的新鲜奶酪。J2ME是嵌入式/移动应用平台的王者,Linux和WinCE分列二、三位。Nokia等厂商力推的Symbian平台目前开发者占有率尚未达到满意水平,考虑到调查项合并了嵌入式设备(例如PDA)和移动设备(例如智能手机),Symbian、WinCE系列在移动平台上会是竞争的主要两方。如果厂商能在标准实现上做得更加规范,则J2ME的跨平台特性会发挥得更加淋漓尽致,继续保有王者地位。

    J2ME是SUN公司推出的针对嵌入式消费类电子产品的开发平台,与J2SE和J2EE共同组成Java技术的三个重要的分支。J2ME实际上是一系列规范的集合,由JCP组织制定相关的JSR并发布,各个厂商会按照规范在自己的产品上进行实现,但是必须要通过TCK测试,这样确保兼容性。比如MIDP2.0规范就是在JSR118中制定的。J2ME平台的形成颇有些Java技术回归起点的味道,我们知道Java本来就是针对消费类电子产品而生的一门编程语言,而后才慢慢发展为一门技术、一个平台的。

    谈到J2ME我们通常都会说到一个词KVM,而这可以认为是J2ME的起源,KVM之父Antero Taivalsaari本来在SUN公司参与一个名叫Spotless的研究型项目,由于他曾经有着在世界知名电信设备制造商工作的经历,这使得他萌发了在移动终端设备,比如手机,上实现java虚拟机的想法,而这得到了经理的支持。随后AT做为领导者带领团队开发了能够在手机这样的移动终端设备上运行的虚拟机和CLDC核心类库。慢慢的J2ME浮出了水面。

    J2ME的设计应该说是众多顶级工程师的结晶,她被设计的非常灵活。在J2ME中非常重要的两个概念是Configuration和Profile。Configuration是支持最大范围设备的最小的平台,在这一层还包括了Java虚拟机。Profile是针对特定的设备提供相应的开发包集合。另外针对某些设备特有的功能特性,J2ME还推出了Optional Profile的概念。比如Mobile Media API。


 

 

 

 

 

 

 

 

在J2ME平台中有两个主要的Configuration,一个是Connected Limited Device Configuration,一个是Connected Device Configuration。区分的标准则是按照设备的处理器、内存、联网能力等硬件特性。由于这些规范制定比较早,而现在的移动终端设备的处理和存储能力都有了质的飞跃。因此不再列出区分的标准,因为那已经没有了意义,你甚至会认为那是错误的。目前J2ME的应用主要还是基于CLDC的,因此本文将主要向读者介绍基于CLDC的J2ME平台。不过笔者在两家世界著名电信设备商参加的开发项目表明,基于CDC的应用将慢慢占领主流市场,因为CDC提供了更强大的类库支持。

    Mobile information Device Profile位于CLDC之上,在CLDC规范制定出来后并没有引起开发者的广泛注意,市场也没有因此而发生变化。原因是CLDC中并没有提供图形用户界面编程的接口,这样应用程序就没有和用户交互的能力了。MIDP1.0的推出受到了开发者的广泛关注,在MIDP1.0中提出了一种新的应用程序模型MIDlet,开发者还可以用MIDP中提供的javax.microedtion.lcdui包开发图形用户界面程序,用MIDP1.0的子系统Record Management System进行数据的持久性操作,借助于CLDC中提供的Generic Connection Framework的联网能力可以通过HTTP协议访问Web服务器,J2ME几乎无所不能。然而一些问题也慢慢暴露出来,由于MIDP的规范制定得过于宽泛、提供的功能有限,导致各个厂商在实现MIDP的时候在功能特性上存在很多差异,比如应用程序的大小、RMS的存储空间、并行存在的线程数量等等。更糟糕的是各个厂商还实现了很多J2ME之外的功能,例如Nokia UI API中提供了声音处理以及全屏等功能,这样破坏了Java跨平台的特性,如果你得程序中应用了Nokia UI API的话,那么它就不能移植到Motorola的手机设备上了。为了弥补这些不足,SUN在随后的MIDP2.0中推出了MMAPI的一个子集来解决声音处理的不足,并设计了一个独立的游戏开发包javax.microedition.lcdui.game用于游戏开发,还对push、socket联网等特性提供了支持。在JSR185中更是推出Java Technology for the Wireless Industry使得规范更加严格,提高了应用程序的兼容性。不仅如此,J2ME中的可选包更是各显神通,Bluetooth API,SIP API for J2ME和Mobile 3D Graphics都提供了非常强大的功能。
 

J2ME的发展与竞争
    软件环境飞速发展的同时,J2ME平台的硬件环境和市场同样越来越成熟。Java手机的数量在成倍增长,预计2006年java手机数量有望突破6亿部。硬件中加快集成Java预计将进一步促进Java在市场中的普及,J2ME将成为事实上的标准。到2006年,Java手机预计将占全部手机出货量的83%。与此同时移动增值业务的突飞猛进大大的推动了J2ME技术的发展,预计到2008年全球与Java相关的移动增值业务市场总值将达到147亿美元。

    2004年微软公司开始逐渐进入移动通信行业,并与美国的电信设备制造商Motorola推出内置微软SmartPhone的手机,打入手机市场。另外高通的BREW和Nokia的Symbian也一直认为是J2ME的竞争对手。不过目前他们的市场占有量都还很难和J2ME平台相比。BREW的兼容性差是最大的缺点,2004年中国联通不甘心受制于高通的限制,而与SUN公司联手打造了UniJa平台。笔者认为微软提供的Mobile Windows和Nokia的Symbian平台将是J2ME最大的竞争对手,Symbian是目前最成熟的手机操作系统,通过使用Nokia提供的SDK,开发者可以使用Java或者C/C++进行应用程序的开发,遗憾的是Symbian的开发资料相对贫乏,C++语言的开发效率比Java要低 ,这些都给基于Symbian操作系统的C++开发的推广带来了不利的影响。国外的Motorola和国内的多普达等厂商陆续推出了基于微软SmartPhone操作系统的手机,表明了微软进军移动开发市场的野心,通过使用微软提供的SDK,开发者可以在手机上使用Compact .Net Framework进行高效的开发,当然也可以使用C/C++。然而毕竟微软刚刚进入移动开发市场,市场占有率还不高。

    J2ME平台是开放的,目前已经占领了绝对份额的市场。我们有理由相信J2ME将继续成为移动开发的领导力量。


结束语
    走过弥漫着硝烟的市场、信步在大自然的怀抱的时候才可以让我们开发者更加清醒。无论鹿死谁手,开发者始终应该保持的是那份对技术务实的执著,摒弃那份浮躁与不安。2005年是移动开发走向成熟的一年,J2ME将继续领跑。让我们拭目以待!


作者简介
    詹建飞,北京邮电大学信号与信息处理专业硕士研究生,从事Java技术的研究与开发三年。曾在Motorola(中国)电子有限公司担任软件工程师开发基于Java的手机平台JUIX项目。

.NET 8 组件之IOC容器组件 NET 8中的IOC容器组件继承了前几代的优良传统,并在性能、扩展性、灵活性等方面进行了诸多优化,使得它在现代应用开发中依然保持领先地位。通过合理使用IOC容器,开发者可以更高效地管理依赖关系,编写更加模块化、可维护的代码。随着.NET生态的不断发展,IOC容器将继续扮演关键角色,为开发者提供强大的依赖管理功能。 阅读详情

相关推荐

AI应用架构师干货:智能财务分析AI平台可视化模块设计(附最佳实践)

智能财务分析的价值,从来不是“AI模型有多准”,而是“财务人员能用上AI的结果”。可视化模块的设计,本质是**“站在业务用户的角度,重新定义技术的价值”**——它不需要复杂的动画,不需要华丽的特效,只需要“把AI的结果翻译成财务人员能看懂的语言”。作为AI应用架构师,我们的使命不是“打造最先进的技术”,而是“打造最有用的技术”。而可视化,就是连接技术与业务的那座“桥”。附录:实战项目GitHub仓库(注:此处可放置实际项目的GitHub链接,包含完整代码、数据样例、部署文档)作者简介。

SuperAGI2025 1156

LINUX软件包的一般安装方法

LINUX软件包的一般安装方法在LINUX的世界里,软件的安装主要的是有两种方式,一种是rpm包,还有一种就是tar包。对于这两种包,一般的安装方法是这样的:1)rpm包的安装安装rpm包时需要一个参数就是-i.也就是就是可以用这样的命令来安装:rpm -i *.rpm但是我们在安装时总是希望能看到一些信息,这时就可以用这样的命令:rpm -ivh *.rpm这时就会显示出软件包的安装进度以及安装

9334

GD32F4系列替换STM32F4,HAL库CAN初始化卡死?一个Sleep模式的坑与填坑实录

本文详细解析了GD32F4系列替换STM32F4时,HAL库CAN初始化卡死的问题根源——Sleep模式差异。通过对比两款芯片CAN控制器的默认状态,提出了不修改HAL库源码的解决方案,即在HAL_CAN_MspInit()中清除SLEEP位,并分析了该方法的优势。文章还提供了国产MCU替换的通用建议和调试技巧,帮助开发者高效解决问题。

weixin_29174013的博客 216

linux系统安装包一般多大,LINUX软件包的一般安装方法

LINUX软件包的一般安装方法在LINUX的世界里,软件的安装主要的是有两种方式,一种是rpm包,还有一种就是tar包。对于这两种包,一般的安装方法是这样的:1)rpm包的安装安装rpm包时需要一个参数就是-i.也就是就是可以用这样的命令来安装:rpm -i *.rpm但是我们在安装时总是希望能看到一些信息,这时就可以用这样的命令:rpm -ivh *.rpm这时就会显示出软件包的安装进度以及安装...

weixin_39625864的博客 341

使用Label Studio标注车牌数据:YOLOv26模型训练指南

在计算机视觉领域,数据标注是模型训练的基础环节,直接影响最终模型的识别精度。Label Studio作为专业的标注工具,支持多种标注类型和格式导出,特别适合目标检测任务的数据准备。通过多边形标注技术,可以精确捕捉车牌的四个角点,生成旋转矩形框(OBB)标注数据,这种标注方式相比传统水平框能更好地处理倾斜车牌场景。标注完成后,数据可导出为YOLO格式,直接用于YOLOv26等先进目标检测模型的训练。在实际工程中,合理的标注策略和严格的质量控制能显著提升车牌识别模型在复杂场景下的鲁棒性,适用于智能交通、停车场管

chuozhi7142的博客 904

从软体机器人到鞋垫分析:Abaqus超弹性材料(Ogden模型)仿真配置全流程

本文详细介绍了Abaqus中Ogden模型在超弹性材料仿真中的应用全流程,涵盖从实验数据导入、参数拟合到模型构建与求解优化的关键步骤。特别针对鞋垫分析等生物力学场景,提供了单元选择、接触设置和并行计算等实用技巧,帮助工程师实现高精度仿真分析。

weixin_42525385的博客 399

linux软件包的一般安装方法

LINUX软件包的一般安装方法在LINUX的世界里,软件的安装主要的是有两种方式,一种是rpm包,还有一种就是tar包。对于这两种包,一般的安装方法是这样的:1)rpm包的安装安装rpm包时需要一个参数就是-i.也就是就是可以用这样的命令来安装:rpm -i *.rpm但是我们在安装时总是希望能看到一些信息,这时就可以用这样的命令:rpm -ivh *.rpm这时就会显示出软件包的安装进度以及安装...

weixin_33769207的博客 83

【微服务】Spring Aop原理深入解析

spring原理深度解析

congge 1万+

linux 软件包的安装,linux安装软件包的方法

Linux有多种发行版本,各种发行版本之间安装软件包的方法和命令不一样,同发行版本之间安装软件包的方法也有不同。Linux主要有三大派系:红帽子派系(Redhat、Centos、Oracle Linux)、Debian派(Ubuntu、Kali),SUSE派系(SuSe、OpenSUSE)等。红帽子派是Linux服务器操作系统的主流,本文重点介绍红帽子派系中rpm和yum安装软件包的方法。一、rp...

weixin_33986223的博客 2412

[SV]SystemVerilog学习笔记之struct & union

SystemVerilog学习笔记(四) 一、结构体(struct) 1.1、结构体(struct) 结构体声明:结构体默认是变量,也可以声明为线网 var struct{ //通过var进行结构体变量声明 logic [31:0] a, b; logic [ 7:0] opcode; } Instruction_Word_var; wire struct{ //结构体线网声明,定义为线网类型时,结构体的所有成员必须...

元直的博客 1万+

深入解读WT软件湍流强度计算与分析

深入解读WT软件湍流强度计算与分析

weixin_46713695的博客 1021

Linux软件包管理及redis的安装方法

1. 源码包,指的是程序员写的原始的程序代码文件,不能够直接在计算机上运行。2. 源码包,需要进行编译,变成二进制的软件包后,才可安装使用3. 源码包,一般可以在任何的计算机上安装使用4. 源码包,命名方式一般为:软件包名.tar.gz**软件包名.tar.bz2软件包名.tar.xz软件包名.zip5. 优点通用性定制性能1. 二进制源码包,是一个半成品,安装后不能直接使用。

jdjjdhj的博客 1370

深度解读 ABAP CDS View 中的 @Analytics.dataCategory: #FACT 注解

注解在 ABAP CDS View 中具有重要意义。它不仅定义了当前视图在数据模型中的角色,还为后续的分析和报告奠定了基础。在实际开发中,通过合理使用这一注解,可以显著提升数据模型的可用性和系统性能。无论是简单的 KPI 展示还是复杂的多维分析,这一注解都能发挥关键作用。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 787

Linux安装和更新软件包

dng module info module-name:显示模块的详细信息,包括可用的配置集和模块安装和软件包列表。在不指定模块流的情况下运行dnf module info module从默认配置集和流安装的软件包。添加--profile 选项可显示有关各个模块的配置集所安装的软件包的信息。从存储库安装 RPM软件包时,只需要提供软件包的名称。rpm命令可检索文件和已安装软件包的内容的相关信息。dnf group install 命令将安装一个组,同时安装其必选和默认的软件包,以及它们依赖的软件包。

2301_79840250的博客 1614

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Linux软件包的安装

yum -y groupinstall "软件包组 " ----安装软件包组 Development Tools。yum -y group remove “软件包组” ----卸载软件包组。yum -y remove 软件包名 ----卸载软件包。yum -y install 软件包名 ----安装软件包。-qpi:查看指定软件包的详细信息----指定软件包的路径要明确。-qf:查看指定的文件或目录是哪个软件包所安装的。–nodeps 去除依赖性关系。

2401_83216650的博客 1061

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LINUX的一般安装方法

一 LINUX分区格式我们在WINDOWS下的分区格式一般是FAT32或是NTFS的,而在LINUX下面我们一般采用的是ext2或是ext3格式的,一般认为是ext3格式的要更好一些.现在的一些刚刚开始学习LINUX的朋友们一般采的是WINDOWS和LINUX共存的做法.所以我们常将LINUX安装在我们硬盘的最后个逻辑分区上.个人认为比较好的做法是我们可以在WINDOWS下面用partiton m

5390

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: Java学习从入门到精通
下一篇: (转)手机游戏趋势和相关J2ME API
zhy21
博客等级 码龄22年 3粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值