Symbio广州手机软件开发发的好处?

Symbio用144部Windows Phone手机组成超炫矩阵屏幕-阿里云资讯网
Symbio用144部Windows Phone手机组成超炫矩阵屏幕
发布时间:
更新时间:
来源:网络
上传者:用户
在赫尔辛基举办的 TechDays 2012上,Symbio公司展示了他们用144部http://www.aliyun.com/zixun/aggregation/13466.html&&Windows Phone手机组成的12&12矩阵屏幕。视频分割后通过WiFi传输到每一,整个显示屏幕可以通过一部Windows Phone手机来控制同步。实际效果相当壮观,同时这也是一个世界记录,击败了前世界纪录保持者blinkendroid队(他们使用了72部手机)。
不过相比144部手机的成本,我们还是推荐读者直接购买一个大尺寸的显示屏更划算一些。
本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:zixun-group@service.aliyun.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
 网站结构是SEO的基础,要搭建利于 SEO的网站结构需要了解搜索引擎(百度)的SEO规则,这里需要讨论哪种布局对搜索引擎最友好,也可以看成搜索引擎喜欢那些布局,搜索引擎制定有哪些规则。   代码优化   ① flash, asp, html各如何优化   全站flash 的站要针对网站头部进行进一步优 化,Flash 代码只需在代码外设置内页入口   asp 代码会被搜索引擎收录但是收录效...
下个星期一开始就要接手一个新的网站,整个公司就我一个人做SEO,公司网站是同城送餐网,也是我上一篇文章说到的那个公司,老板主动加我QQ,聊了1个多小时,让我过去帮忙,工资开的不低,我就想去试试。SEO就我一个,我肯定是要负责整个网站的运营了,要为提高网站的流量、排名、转化率制定个计划,下面我就说说我自己对网站的整改和计划。   网络营销和推广方法在上篇《送餐网站推广营销方案的设定》已经说过了...
相信很多医疗网站,都有过策划专题的经验。而且,随着现在医疗网站的发展来说,一个有吸引力的专题对于网站是非常有好处的,对于医疗网站来说,专题内容策划占到了很重要的地位。那么,医疗网站专题策划需要做哪些方面?针对我做过的专题,来与大家交流下。   第一,医疗网站专题策划的主题。   网络新闻专题适合于表现各种重大新闻题材,那么,对于医疗网站来说,会以一些重大事件或者是高搜索量词做一个专题。下面,...
 12月4日消息,以“创新、融合、发展”为主题的第二届中国地方与行业网站峰会将于-5日在杭州海外海国际会展中心举行,3000多名来自互联网各界的从业人士、站长、媒体与嘉宾参加了本次盛会,admin5站长网作为大会合作媒体参与了全程报道,以下是化龙巷总经理钱钰的演讲内容。&   大家好,在这里首先感谢大会的主办方阿里集团和PHPWIND给大家提供了这么好的交流和分享...
现在准备做网站大体上有两种犹豫,一种是做一个大而全的网站犹豫,另一个是选择不好细分的行业网站犹豫,不过大部分的草根站长都把目标选择在小而细的行业型的网站,具体要选择什么样的行业那就要看草根站长个人的兴趣爱好了,最好是自己对这个行业非常熟悉的,这样才能够把这个小儿细的行业网站做到专业和极致!才能够体现出网站的差异化!   那么什么是网站细分呢?简单的说就是对目标访问群体进行具体的定位,做好这一...
 其实做这个网站的初衷也就是一群有点小抱负的几个80后,聚集在一起每个人都小激动了一把,想把自己现在做的二手房做强做大,才决定成立合肥房产网,虽然开始只是兴趣使然,但直到现在大家目标都很明确,要做就坚持做到最大最强。当时大家也没管对手有多么强大,自己能否击败他们,或许就是这种“初生牛犊不怕虎”的大无畏的自信,才让我们一路走来。好像扯远了,言归正传,现在我就总结下我们的门户网站在运营时所积累一...
若您要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在5个工作日内回复。
售前咨询热线
支持与服务
资源和社区
关注阿里云
International手机app开发外包公司?_百度知道
手机app开发外包公司?
我有更好的答案
Symbio软件开发从开始到最后一共需要以下几个流程:  1、计划  2、分析  3、设计  4、编码  5、测试  6、维护
采纳率:83%
跟题主分享一下我的众包经验吧,毕竟是APP开发,专业性比较强,我更偏向我经常用的解放号、码市、开源一类的主流平台解放号的服务很好,各个环节都有对应的服务,很贴心,整体观感我感觉是用过的最好的了其实这些渠道还是要自己去体验的,我也只是不想题主踩到我曾经踩过的坑纯手打,不喜勿喷
1条折叠回答
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。q2360c的专栏
https://blog.csdn.net/
https://static-blog.csdn.net/images/logo.gif
https://blog.csdn.net/q2360c
https://blog.csdn.net/
()中科院自动化所人工智能实验室博士生
明天的计算将进入普及计算时代。各种消费电子产品,包括智能手机,PDA,Web-TV,将来的信息家电等等将实现随时随地的计算。这是一个异常广阔和丰富多彩的领域,其设备极度多样化而且都将在网络中,Java技术的跨平台性和网络功能在这里大有用武之地。这就是J2ME,这一丰富多彩的领域中生机勃勃的技术。但是,这一领域的多样性和J2ME标准的复杂性很容易让初次接触者困惑。如果他试图写一个能在自己的PDA上运行的程序,很有可能会遇到许多困难,因为已有的旧的技术很有可能会被放弃,真正适合PDA的标准尚未完成,多种多样的标准和技术本身也在迅速发展变化。为此,本文的重点不在于具体的编码细节,而在于从概念上更准确地表述J2ME的体系结构,帮助读者理解和把握这些复杂的标准。并且从宏观上描述平台和标准的发展,分析在移动信息设备上开发J2ME应用的现状和前景,尽量让读者能够从全局上把握复杂的局势,为将来的发展做好准备。
在今天计算已经无处不在。越来越多的人开始认为,经过了许多人共用一台计算机的大型主机时代,一人一台计算机的个人PC时代之后,下一个时代就是一人多台计算设备的普及计算时代(Ubiquitous Computing,IBM称之为Pervasive Computing)。计算设备将从单一的PC扩展到各种各样的大小和功能,从家庭消费电子产品,到个人随身携带,穿着,车载的各种移动信息处理设备,多样化是这个领域的最大特点。
网络是这个领域最重要的增值特性。当手机可以随时随地无线上网,PDA可以和个人PC同步,车载PC可以获得网上GPS地图数据时,这些孤立的设备才能够发挥最大的作用。
而平台无关性和网络功能正是Java的设计目标和能力(事实上,Java最初的设计目标就是用于消费电子领域,但是后来在PC和服务器上得到了发展)。"一次编写,到处运行"的平台无关性,对网络,多重设备间联网的机制(JINI)显然对这个领域是至关重要的软件条件。这个领域内的Java标准就是J2ME。
Java的最大目标和特点,就是"一次编写,到处运行"的平台无关性。但是,很自然的,正如Sun认识到的,"One size does'nt fit all",一套标准无法适应各种不同的需求。因此,Java技术目前共有三套,分别针对不同的平台和应用。
Standard Edition (J2SE,标准版):针对桌面端PC和工作站的个人和低端商务应用。
Enterprise Edition (J2EE,企业版):针对服务器端企业级应用,支持Servlets, JSP和XML等等。
Micro Edition (J2ME,袖珍版,也有翻译为小型版或者移动版的。)针对有限内存,显示和处理能力的设备,主要是消费电子和嵌入式设备领域(这实际正是Java语言设计最初的目标领域)。 注:Java SDK 1.2及以后的版本都统一改名为Java 2,因此这些名字中都有2。
在消费电子和嵌入式设备领域,内存从几百K到几十M,从没有屏幕到Web-TV,CPU从低功耗的嵌入式处理器到206MHz的RISC处理器,硬件条件的差异是相当大的。这就使得J2ME的标准需要有不同的层次和类别来适应这个复杂的领域,因此相比之下J2ME就比J2SE和J2EE的标准要复杂得多。关于J2ME标准的文章已经有了不少,但是很少有文章清晰扼要地讲清楚J2ME的体系结构划分的原因,而只有清楚了划分的根据和为什么这么划分,才能够更好地理解标准。尤其是因为硬件发展速度是很快的,很有可能一段时间之后,如果还按最初标准的字面定义区划分设备就会陷于迷惘。作者阅读和浏览了相当多的文章和介绍,但有些问题也还是最近才认识得比较清楚,在此和读者分享我的认识,也希望得到建议和指正。因此,下面的介绍尽量不去重复其他文章中都已介绍过的一些具体细节,不去翻译规范的字面定义,而是分析规范制定的原因,类别划分的真正标准,从开发者的角度,让读者能够在这个复杂而多变的领域中更准确地把握技术的区别和趋势脉搏,更好地为将来广阔的机会做好准备。
针对消费电子和嵌入式设备领域丰富多样的设备和彼此相差极大的计算能力及各种硬件条件,J2ME首先根据最基本的一些特征把它们划分为两类。
具备间断网络通讯能力的个人移动信息设备:如手机,双向呼机,PDA(Personal Digital Assistant,个人数字助理,也称掌上电脑)等等。
有固定的不间断网络连接的共享连接信息设备:如置顶盒(set-top boxes),Web-TV,支持Internet的有屏幕电话,汽车娱乐/导航系统等等。 Sun的J2ME FAQ(常见问题集)里有一个很好的概括:J2ME技术有两个设计中心――手持的设备,和可以插到墙上插座的设备。第一类设备往往是个人化的,移动的,使用电池,体积和功耗都有限制,因此功能和计算能力有限。第二类设备一般是固定的,因此体积没有太大限制。由于固定,可以有持续电源供应,因此功耗没有太大问题,计算能力相对充裕。
计算能力是这两类设备的主要区别,对其上可能的应用和环境显然有着本质影响,不同类别的设备不可能采用同样的Java平台,必须分别定义。针对这两大类设备的平台规范就是Configuration(有译为配置的,不过我认为最好不译)。第一类设备的Configuration称为CLDC(Connected, Limited Device Configuration),第二类称为CDC(Connected Device Configuration)。
属于同一类的设备计算能力是相似的,但是其他功能和条件还有非常大的区别。作为Java平台必须保证相容性,这就必须舍弃所有的设备特殊性。因此,Configuration就是支持一组通用设备的最小Java平台,作为这些设备的最小公分母来保证不同设备间的平台相容性。这里的Java平台主要是指Java虚拟机(JVM)和核心库。
在Configuration中舍弃了设备的特殊性来保证Java平台的相容性,但是仅仅有Configuration显然是不够的,特殊的具体设备其独有的功能和硬件条件都没有得到支持。为此,在Configuration的基础上,根据设备具体功能再进行一次划分,比如智能手机,PDA等等。功能的划分也就是其他硬件条件的划分,比如屏幕大小,内存,计算能力,电力供应等等都是从属于功能的,因此同功能的设备的硬件条件都是非常相似的。Profile(译为简表或者简档)就是针对每一类功能设备的特殊性定义的与设备特性相关的API,建筑于Configuration之上,作为Configuration的扩展和补充。例如MIDP(Mobile Information Device Profile,移动信息设备Profile)就定义了关于移动信息设备(主要指智能手机和一部分具有无线通信功能的PDA)的图形界面,输入和时间处理,持久性存储,短消息等等的API,并且考虑到了移动信息设备的屏幕和内存限制。而正在制定中的PDA Profile则定义了针对PDA的API,其屏幕,内存条件都要大于MIDP,但是网络方面的要求则显然和手机有所不同。如下图所示,同属于一个Configuration的设备根据功能不同由不同的Profile来支持,Profile体现设备的特殊性,但是都建筑在一个共同的基础Configuration平台之上。
关于J2ME的体系结构,我们可以这样总结:
Configuration的分类是根据计算能力的不同来划分的,同类设备的计算能力相近。Configuration是一个规范,定义了这类设备的共同Java平台,定义与设备无关的Java虚拟机和核心库,是平台相容性的基础。Profile的分类是根据设备功能划分的,同类功能的设备其他各种硬件条件和需求也相近。Profile是一组API,在某一Configuration的基础上扩展了针对设备特定功能的API,使得标准能够完全适应特殊的设备,彻底发挥设备的功能。
J2ME体系的一般结构是:由Configuration定义的Java虚拟机运行于设备的宿主操作系统之上,构成整个平台的基础。Configuration提供了基本的语言特性,Profile提供针对设备的特殊功能API和扩展类库。应用程序的运行环境需要一个Configuration和至少一个Profile,多个Profile可以共存,也可以叠加。
我们用两个具体设备的实现作为例子说明。在一个运行Palm OS的PDA上,Configuration采用CLDC,虚拟机采用KVM(虚拟机和Configuration是紧密相连的,KVM只是CLDC定义的一个参考实现(reference implementation),并不是唯一的选择),然后采用PDA Profile的Profile。在另一个运行Symbian的智能手机上,则可以采用KVM,CLDC,MIDP。
注:在JCP(Java Community Process,J2ME标准在这里制定)的网站上已经提出了JSR 68(Java Specification Request,标准提案),将在下一代J2ME标准中用Building Block概念来取代Configuration。其原因是,Profile经常需要提供J2SE中已有的功能,为了能够利用已有的J2SE API而不是重新制定新API,引入了Building Block概念。一个Building Block定义一个来自J2SE或者J2EE的API以用于J2ME。这样,Profile就可以通过Building Block来利用已有的API。
J2ME的标准很多,其中许多细节凡是关于J2ME的文章都会介绍,这里我们只简要介绍几个基本而重要的标准。读者也可以直接去查标准的正式文档,在JCP网站可以找到所有J2ME标准和规范,包括还在提出和审核阶段,没有正式成为标准的提案。
虽然J2ME标准繁多,但只要把握住标准划分的原因就很容易掌握。在这个技术飞速发展的领域,我们不能把眼光局限于标准的字面含义,而要灵活掌握,把握其精神。比如,CLDC和CDC的定义中具体的最小内存需求仅仅是"最小的",随着硬件能力的飞速发展,很有可能一些界限会变得模糊。PDA本来应该属于CLDC的范围,但是Compaq的iPaq上却实现了CDC。以后的下一代PDA有64M内存并不意外,在其上实现CDC也是完全可能的。但是,从功能的角度,应该还是CLDC以及PDA Profile更适合于PDA的条件。到那时,具体的实现就要看厂商和开发者的选择了。还需要注意的是,由于Profile是建于Configuration之上,作为对Configuration的扩展,因此Profile必须Configuration的支持。有的文章在讲到MIDP的内存需求时,说MIDP需要最少256K,这是指MIDP本身。而有的文章说MIDP需要最少768K,那时因为把作为基础的CLDC所需要的512K算进去了。
CLDC(Connected, Limited Device Configuration)针对个人化的移动的有限连接信息设备,例如智能手机,双向呼机,PDA等等。其要求是:
512 KB 以下内存
有限能源供应(通常使用电池)
有限或非持续网络连接
简单的用户界面(甚至没有) 在如此严格的限制之下,CLDC 只包括四个包,其中三个来自标准 Java 规范并且作了缩减(java.lang、java.util 和 java.io),另一个专门针对 CLDC (javax.microedition)。
类和接口数目java.io
系统输入输出
18java.lang
Java 编程语言的基本类
38java.util
集合、日期和时间支持、各式实用工具类
10javax.microedition
通用连接框架(Generic Connection Framework)
10表 1. CLDC 中的包
CLDC必须照顾最苛刻的硬件条件,因此去掉了许多重要的类和特征,只保留了最核心的一些基本类。例如RMI和映射因需要内存太多而被舍弃,错误处理要求的代价太高,也被删除了。许多设备不能支持浮点数,更不用说双精度类了。还有许多设备没有或不提供访问一个文件系统的功能或权限。不过请放心,对于那些能够支持更多特征的设备,它们所需要的这些功能或者超出标准J2SE要求的功能,都可以由针对此类设备的Profile来补充。
CLDC中唯一新增的javax.microedition包定义了一个通用连接框架(Generic Connection Framework,GCF)。通用连接框架把J2SE中的文件,sockets,HTTP请求和其他输入/输出机制的概念抽象为更简单的一套类。可以说,它提供了java.io和java.net的同样功能,却不需要设备的特殊能力。与底层操作系统无关是Configuration的基本要求。通用连接框架可以看成是构造通讯驱动的框架,这一点类似于J2SE中的JDBC,后者是一个构造数据库驱动的框架。通用连接框架并没有定义对任何特定协议的支持,但是在Sun的一个CLDC参考实现中确实包括了对一些通讯协议的支持,这点使许多人感到困惑。那些协议只是一些例子,协议的支持应该在Profile层或者专门针对某设备的扩展中定义。
由于虚拟机处于Configuration中定义平台的核心,Configuration和虚拟机是紧密相关的。既然CLDC的硬件要求如此苛刻,对其虚拟机也就有着非常高的要求。Sun提供的参考实现是KVM(K Virtual Machine)。KVM是完全从头开始编写的,其设计目标包括:
虚拟机的大小和类库为50到80KB左右
内存占用为几十K
在具有 16 位和 32 位处理器的设备上,有相当的性能
高度可移植和可扩展,特定于机器和/或平台的代码的总量很少
多线程和垃圾回收是独立于系统的
可以对虚拟机的组件进行配置,以适合于特定设备,从而增强了灵活性 KVM的实现是相当成功的。最早在1999年JavaOne大会的时候,作为Sun的Spotless计划派生结果,Sun分发了许多Palm V,提供了Palm OS上的第一个KVM版本和一个实验性的类库com.sun.kjava。这一KVM非常小而紧凑,只需要几十K内存。而com.sun.kjava类库提供了Palm的图形用户接口,Palm数据库访问,简单的集合类等等。将两者结合,开发者就可以开发Palm上的Java应用,因此它受到了开发者的广泛欢迎,网上也有了许多教程和示例代码。事实上,到目前为止,这都是在Palm上开发Java程序的唯一合理途径。CLDC没有定义用户界面等API,MIDP并不适合PDA,对应的最合适J2ME标准是PDA Profile,但是尚未完成。许多开发者强烈要求Sun在正式的J2ME标准中继续支持它,但是Sun已经放弃了这一技术,而且并不保证正式的PDA Profile与之的兼容性,因此我们不建议读者过多研究。
由于这一历史原因,造成了很多名词上的困扰。许多早期的文章把这一KVM与com.sun.kjava包合称为KVM,表示这一技术,而现在所说的KVM应该是单单指Sun的CLDC虚拟机参考实现。甚至还有人用K Java作为J2ME的代称,表示基于KVM的Java,这很容易和正式的J2ME标准以及早期的com.sun.kjava包相混淆,读者在看这类文章时需要注意文章的时间和背景,并采用严格的正式名称。
目前Sun还正在开发KVM的一个高性能版本--Project Monty虚拟机以用于下一代的移动信息处理设备。它采用了Hot Spot的技术,性能将比现有的KVM将近高一个数量级。
虽然KVM作为Sun的参考实现最经常被提到,不过并不等于一定要用KVM。其它公司的虚拟机只要满足相应的Configuration里的定义,通过兼容性测试,一样可以作为Configuration的虚拟机。目前IBM WebSphere Micro Environment,已经通过了"Java PoweredTM"认证,其J9虚拟机在相当多的平台上通过了J2ME兼容性测试:
MIDP(Mobile Information Device Profile)定义了针对移动信息处理设备(主要指智能手机和一部分具有无线通信功能的PDA)的图形界面,输入和时间处理,持久性存储,无线电话网络连接之上的一些消息处理(例如短消息),安全等等API,并且考虑到了移动信息设备的屏幕和内存限制。类似于J2SE中的Applet框架,MIDP提供了基于javax.microedition.midlet 包的MIDlet应用程序框架。
由于MIDP提出较早,目前重要的智能手机和PDA操作系统上都已有了相应的实现(后面将简要介绍这些操作系统),网上也有许多教程与文章,一般所谓的Wireless应用文章都是关于MIDP的,这里就不再重复了,读者可以。
PDA Profile
PDA Profile将在CLDC的基础上,提供针对PDA的用户界面,数据存储等扩展API。用户界面部分适用于有限大小和色彩的显示,为了支持开发者已有的经验基础,将是AWT的一个子集,也有可能在AWT子集之上加入MIDP用户界面组件。而存储机制将是简单的,平台无关的,类似于MIDP中的存储,为应用程序、数据、配置/环境信息提供简单的数据存储。
目前这一规范正由Palm Source公司(从Palm公司分离出来的专门负责Palm OS的公司)领导主持,已经在4月8日开始进入了JCP流程的第二阶段Community Draft最后部分(Community Draft Ballot 08 Apr, 2002 ),估计最终正式版本应该在7月至9月左右完成。(参考)前面已经提到,PDA Profile将取代 k java,作为针对PDA的正式J2ME标准。因此建议希望在PDA上开发应用的开发者等待这个标准的出台和相应的实现,现在如果要进行MIDP的应用开发,则应明确其目标是智能手机类的设备,而不是PDA,这一点很多文章都没有讲清楚。
CDC(Connected Device Configuration)针对有固定的不间断网络连接的共享连接信息设备,如置顶盒(set-top boxes),Web-TV,支持Internet的有屏幕电话,汽车娱乐/导航系统等等。
CDC要求为Java提供至少2M的内存,这可以是ROM加上RAM,也就是说,Java虚拟机和核心类库很有可能放在ROM或者Flash里。事实上,下一代无线手持设备完全可以满足CDC的需求。
CDC是CLDC的完整超集,包含了所有的CLDC规范。另外,在相对充裕的条件下,它支持J2SE的标准 Java 虚拟机和一部分核心类库。对于这一点,几乎所有的文章都这么说,却很少有文章彻底分清彼此之间的兼容性关系,甚至还有文章错误地说CDC支持Java语言的完整实现,这是很容易引起混淆的。
首先可以肯定,既然CDC是CLDC的超集,基于CLDC的程序在CDC内是完全兼容的。不过这里的CLDC程序必须只用到CLDC的部分,一旦采用了某一个Profile,显然也就不能在CDC内兼容了。
其次,CDC支持标准的J2SE虚拟机,这只是Java平台的基础,并不包括建筑于平台基础之上的各种类库。特定设备需要的特定类库由相应的Profile来定义。这一点随后就会提到。还是那个关键:Configuration定义的是一类设备的与设备无关的最小平台,因此,诸如用户界面之类的类都被分离,留在Profile中定义。
虽然CDC支持标准的J2SE虚拟机,但是标准的Java虚拟机显然无法适应有限的资源环境。为此需要专门定义一个虚拟机,称为CVM(开始的时候,CVM代表Compact Virtual Machine,但是后来Sun的工程师认为这有可能与KVM相混淆,因此现在C并不代表特定的含义)。CVM除了支持标准J2SE虚拟机的所有特性外,还支持许多嵌入系统需要的特性,更适合于在资源限制条件下运行,移植性很强。目前Sun提供了Linux和VxWorks之上的CVM参考实现(reference implementation)。
Foundation Profile
Foundation Profile提供除了用户界面以外CDC所缺少的几乎所有标准J2SE核心类库,作为其他所有Profiles的基础(我们看到,多个Profile可以共存,也可以叠加)。
Personal Profile
Personal Profile针对那些资源相对有限,但是需要高度的Internet和WEB连接支持的设备,例如Web-TV,汽车导航系统等等。它在Foundation Profile的基础上提供了网络特性以及支持Java applets的 GUI。
Personal Profile的前身是Personal Java,Personal Java是Sun为资源限制设备创建 Java 平台版本的早期尝试。Personal Profile将与Personal Java 1.1和1.2向后兼容。
RMI Profile
RMI Profile在Foundation Profile的基础上提供RMI支持,将允许网络设备与其它系统应用程序(不一定是J2ME的)交互操作。
平台无关性主要指的是设备的宿主操作系统平台。由于Java平台建筑于虚拟机之上,只要不同的操作系统上的虚拟机满足同样的规范和标准,对于虚拟机以上的层次是平台无关的。这使得针对某一Configuration或者Profile的应用可以运行于所有实现了这一Configuration或者Profile的操作系统平台。举例来说,目前已经有网站开始收集基于MIDP的程序――MIDlet,提供下载和收费,各种支持MIDP的设备都可以使用,这包括数量巨大的智能手机和几乎所有的PDA(Palm OS和Pocket PC)。
对于Profile而言,不同的Profile之间一般是不相容的,比如日本NTT 的DoCoMo已经销售了相当多的支持CLDC的手机,但是使用的是自己专用的Profile,针对这一Profile的程序对其他Profile也就是不兼容的。事实上,由于Profile是针对设备功能的,不同的Profile针对的设备,往往功能上有着较大差别,程序的相容性既不可能也无太大意义。当然有一些设备的功能划分不那么明确,比如有无线通信功能的PDA和智能手机。由于一个Configuration之上可以同时有多个Profile,Profile之间也可以嵌套和叠加,例如CDC的Foundation Profile就是其他各种Profile的基础。那么这些设备就既可以采用MIDP也可以采用PDAP,在以后的硬件基础上,同时装多个Profile也完全没有问题。
有的文章里说,J2ME为了能够在计算能力有限的设备上运行,舍弃了J2SE的许多特性,因此J2ME是J2SE的子集。这样的说法没有强调J2ME里因为设备特殊性而增加的内容,因而是不准确的。除非程序只用到这些平台间共同的部分,否则是不能相容的。而一般来说,共同的部分是相当有限的。
还有一些技术和J2ME相关,但是并不属于J2ME,我们在这里作简要介绍。
Java卡(Java Card)是为智能卡(smart cards)设计的。Smart cards的内存非常有限,为此限制了类的数目(例如,没有Windows系统类),并把整个Java Card规范在一个二进制核心里实现,然后用Java封装。由于智能卡的功能很简单而容易掌握,类不需要频繁改变,这一方法效果很好(对于J2ME显然不能使用这种方法)。另外,由于每一个Java卡应用的数据和代码是独立在沙箱(sand box)内执行的,一张卡上可以有多个应用,彼此独立,并且很安全,这样就实现了一卡多用,不需要在钱包里装太多的卡。
虽然Java卡是为智能卡设计的,不过也可以用于许多其他地方。例如1998年的Java One大会上的Java戒指(Java Ring,又名 Java-Powered iButton,事实上只是Java Card的另外一种型态,Dallas Semiconductor公司将它制作成为钮扣的形状,进而镶嵌在戒指之上),或者世界上现在发布的数百万张GSM SIM卡。
Embedded Java
Embedded Java是历史上Sun另一次创立嵌入系统Java平台的尝试,针对有间断的网络连接或者没有网络连接的设备,这些设备经常是没有图形界面的。Embedded Java的设计更接近于J2SE,但是因此太大太慢,而且对系统要求过高。另外,Embedded Java将控制其运行的平台,也就是接管所有的系统调用,所有的库,所有的设备。显然提供平台的公司不会喜欢这一点。因此,Embedded Java基本上完全失败了。
WAP(Wireless Application Protocol,无线应用协议)是XML的一个应用,其目的是在无线设备如手机上显示Internet内容。由于无线设备的显示区域有限,需要将标准的HTML重新调整以适应硬件条件。
许多初听说J2ME的人都会想到WAP,其实WAP和J2ME并不冲突,而且是很好的互补。WAP对于文本为主的内容是很合适的,需要持续的网络连接。但是对于图形较多的应用WAP就不太合适,只能提供轻量级的脚本执行能力。WAP的网关也有安全性问题。而Java技术可以用于间断的网络连接,可以将应用和服务逻辑在设备和服务器间分离,很适合于图形应用,有很稳定而可靠的安全模型。
结合WAP和Java技术的一个方法是在设备上安装一个WAP浏览器,并且实现CLDC和MIDP及其与WAP浏览器之间的通讯。也有一些WAP技术是用Java实现的,比如K Browser(http://www.4thpass.com)就是一个用Java实现的浏览器,运行于J2ME之上。
无线这个概念在J2ME的相关文章中经常出现,但是
无线Java不等于J2ME。J2ME中,无线设备只是其中的一小部分。而无线Java技术也可能包括这种情况:在笔记本上运行J2SE应用,通过802.11 LAN连接网络。
MIDP不是全部的J2ME。MIDP发布最早,因此也得到了最广泛的支持,相关的讨论和文章因此也非常多,但是J2ME当然不仅仅是MIDP。
MIDP不是全部的无线Java技术。还有许多其他Java技术属于无线技术,比如Personal Java,PDA Profile,甚至无线设备上的J2SE。
在消费电子和嵌入式设备的广阔领域中,目前最受关注的是移动信息设备,因此有必要介绍一下移动信息设备的主要操作系统平台,这对J2ME的开发是相当重要的。移动信息设备主要包括PDA和智能手机,现在和将来都还会有一部分设备处于PDA和智能手机交界的位置。其中手机的市场远比PDA要大得多,所以许多国外谈到J2ME的文章都是以Wireless应用为主。
PDA也即掌上电脑,一般是指类似于Palm公司出品的Palm这样的设备,主要的操作系统有Palm OS和Pocket C两大阵营。Palm OS来自Palm公司,是一个开放的系统,在PDA市场上占主导地位,已经有非常多的第三方厂商开发的应用和一大批非常忠实和狂热的用户。目前采用Palm OS的主要有Palm公司的Palm系列和Sony公司的Clie系列(Handspring公司的Visor也属于这类产品,但是已经宣布退出传统PDA市场,主要发展PDA和无线通讯结合的产品Treo)。
Pocket PC是微软及其合作伙伴Casio、Compaq、Hewlett Packard和Symbol推出的,基于Win CE 3.0,也是一个开放的标准系统,功能可以扩展(以往的Win CE是一个封闭的不可扩展的系统),在这个平台上厂商可以自己开发软件。具体产品如Compaq的iPAQ。
另外,Sharp公司Zaurus系列PDA采用Linux的一个针对嵌入式系统的版本。作为拥有高达64M内存的高端PDA,可以满足CDC的标准,预装了Personal Java的虚拟机。
在智能手机领域,主要的平台是Symbian的EPOC。EPOC最早由Psion开发,主要面向智能手机,也有PDA的特征,Psion就是第一批主要的PDA厂商之一。Psion宣布EPOC的第一个版本是开放的OS,并向其它厂商授权,随后Psion与Ericsson,Nokia,及稍后的Motorola建立了名为"Symbian"的联盟,目前主要股东为Motorola, Nokia, Panasonic, Psion和SonyEricsson,而且Siemens4月也宣布加入。Symbian在欧洲有很好的基础,为大多数主要手机厂商所采用,典型的产品如Norkia的9210。
图5:Norkia 9210
Symbian向领先的软硬件开发商开放源代码--所谓的Platinum Programme。从Symbian OS 5起开始支持java,OS 6引入了Personal Java和Java Phone(在Personal Java基础上的一个扩展API,主要针对手机),OS 7开始支持CLDC和MIDP(部分基于6.0和6.1的产品也支持)。
另一方面,微软则有PocketPC 2002电话版和SmartPhone 2002(又称Stinger)与Symbian竞争,显然,前者是有无线通信功能的PDA(前面提到的Handspring新推出的Treo就是这类产品的典型),后者是有智能处理功能的手机。
在前面提到的这些操作系统平台中,Palm OS上已经有了MIDP的参考实现,但是并不是最适合PDA的Profile。Symbian实现了CLDC和MIDP,作为智能手机的操作系统,是理想的MIDP应用平台。在Compaq的iPaq上已经实现了CDC(基于Pocket PC),另外前面提到过,IBM的WebSphere Micro Environment在Pocket PC上实现了CLDC,CDC和MIDP。Sharp的Zaurus实现了Personal Java(基于Linux)。可以看到,在硬件条件较好的PDA上(Pocket PC和Zaurus都使用Intel Arm CPU,比Palm使用的Motorola DragonBall系列性能要高得多)都可以实现CDC的标准。由于这些主要操作系统平台都是开放的,基本可以相信,主要的移动信息设备操作系统都将一直提供J2ME的支持,但是具体支持哪个标准则并不一定死板地按照CLDC和CDC的最初定义,和设备的硬件条件和厂商的选择有关,或者可能同时实现多个标准。
关于移动信息设备上J2ME应用的具体开发,现有的文章和技术基本分为以下几类:
采用早期的KVM和com.sun.kjava包,或者加上第三方的k awt类库。有很多早期的文章和代码,但是这一技术将被PDA Profile取代,而且不保证兼容性,不建议开发者采用这一方法,而是等待PDA Profile的最后完成及其实现。
采用CLDC和MIDP开发。由于MIDP标准发布较早,智能手机的市场也远比PDA大得多,这是目前大量的无线应用文章的主要内容,不过它最适合的目标是智能手机,虽然智能手机可能有一定的PDA的功能,但是这一技术并不是最适合PDA的,开发者需要考虑清楚。
采用CDC和Personal Profile,这样的文章不太多见,目前的移动信息设备硬件能力还有所不足。但是下一代的PDA和智能手机肯定可以支持。 就现有的PDA硬件条件而言,J2ME应用要和已有的应用竞争还有比较多的困难:
空间:现在一般的Palm类设备内存从2M到16M不等(目前较高档的机型都已支持扩展卡,可以扩展到128M,但是卡上运行程序的速度要慢得多,一般主要用来放数据,运行程序不能依赖于卡),Palm上一般现有程序的标准大小是几十K到300K以下。而仅MIDP的Palm参考实现库在Palm上就需要将近600K,再加上作为基础的CLDC库,加上程序,就快要接近1M了。和已有的应用相比,目前是没有太大竞争力的。
速度:由于Palm一直信奉的是"简单就是美"的原则,目前的Palm系列PDA主要用的是33MHz 的Motorola 68000系列DragonBall,这虽然带来了成本的降低和节电性,但J2ME应用的性能很难让人满意了。作者在自己的Palm m100(入门机型,但是Palm系列各机型的CPU速度基本上是一样的)测试过一些演示程序,一般都有两三秒钟的启动延迟。
功能:目前最适合Palm的PDA Profile尚未完成,如果用MIDP开发则不太合适,用早期的KVM和com.sun.kjava则因为不是J2ME标准,程序兼容性无法保证。 虽然如此,但是在移动信息设备上开发J2ME应用的前景还是非常美好的:
硬件的发展:目前的Palm配8M到16M内存已经是主流,下一代超过32M是必然的趋势。Palm OS 5终于开始支持32位的ARM RISC处理器,其速度应该能够提高10倍以上。事实上,Sharp公司今年第一季度发售的Zaurus SL-5500已经采用了Intel 206MHz StrongARM处理器和64M内存,在这样的硬件上速度和内存都不会成为问题。
标准的完善:PDA Profile今年内将最后完成,可以预计很快会在主要操作系统上得到实现。目前在JCP也有许多其他标准非常有意义,例如关于蓝牙技术(Bluetooth),游戏,定位等等。
平台的广泛性:移动信息设备的主要操作系统平台都是开放的,J2ME的标准也是开放的,因此基本上所有的主要操作系统平台都支持或将支持J2ME,这带来的广阔市场(智能手机的市场尤其巨大,据称Norkia到今年就可以出货5000万只Java手机,而到2003年可达1亿只。)和真正的"一次编写,到处运行"是任何其他技术无法比拟的。对于开发者而言,可以不受操作系统的限制,不用担心在这个多变的市场上因平台的变化而影响自己的应用。
开发的方便性:J2ME虽然和J2SE有着许多不同,但仍然属于Java技术,具有Java方便开发的优点,也使得Java程序员学习移动信息设备开发没有太大困难(事实上,我认为开发J2ME应用的主要困难不在于具体编码,而在于标准的复杂性)。 注:本文来自IBM DW,原文地址:
作者:q2360c 发表于
https://blog.csdn.net/q2360c/article/details/243471
阅读:4042
eMbedded Visual C++ 4.0  Microsoft eMbedded Visual C++ 4.0 支持新的基于 Windows CE. NET 4.2 设备的开发,而且安装发布的 Service Pack 之后,支持用于 Pocket PC 和 Smartphone 的 Windows Mobile 2003 软件(以前的代码名为“Ozone”)。eMbedded Visual C++ 4.0 是使用本机代码在 Windows CE .NET 4.2 上为移动或嵌入式设备开发应用程序的理想软件。eMbedded Visual C++ 4.0 的增强功能包括:   1、实时调试,以诊断未处理的异常   2、C++ 结构化的异常处理   3、“附加到”进程,以获得增强的进程调试能力   4、更好地与新型仿真器集成   Visual Studio.NET2003的Smart Device Programmability功能  Visual Studio .NET 的 Smart Device Programmability(SDP) 功能(以前称作 Smart Device Extensions [SDE])可以帮助开发人员利用 Microsoft .NET Compact Framework 编写移动应用程序,从而在连接或断开的情况下启用分布式的移动计算。使用 .NET Compact Framework 中提供的大量类库,开发人员编写应用程序的速度可以比使用传统工具快得多。  使用 Visual Studio .NET 2003,开发人员可以使用在桌面系统开发中用到的相同工具和技术来开发 Pocket PC 2002(如果具备相应的 SDK)以及 Pocket PC 和 Smartphone 2003。它将安装 .NET Compact Framework,这是专门为资源有限的设备设计的。开发人员可以使用新的 C# 语言或者 Visual Basic .NET 语言来开发移动和嵌入式设备。它还可以很好地用于使用 XML Web Service 或ADO.NET 的应用程序。  Visual Studio .NET 2003 可用于:   1、利用 Web 服务的应用程序   2、在连接或断开的环境中都必须正常运行的应用程序   3、使用 Visual Basic .NET 或 C# 开发应用程序   4、当您希望使用相同的工具进行桌面、服务器和设备编程时   5、快速开发的移动应用程序   6、提供可靠且安全的环境的软件   可移植到具有不同 CPU 或各种 Windows 版本的不同设备的应用程序   ASP.NET Mobile Controls  ASP.NET Mobile Controls(以前称作 Microsoft Mobile Internet Toolkit [MMIT]),是对Smart Device Programmability 和.NET Compact Framework 的补充。ASP.NET Mobile Controls通过启用 ASP.NET 将标记发送到多种多样的移动设备中,从而扩展了 .NET Compact Framework 和 Visual Studio .NET 构建移动 Web 应用程序的功能。使用这种方法,开发人员可以利用 Visual Studio .NET 构建一个移动 Web 应用程序,这个程序可以自动调整其页面呈现方式以适应各种设备,如启用 Internet 的移动电话、寻呼机和 PDA(如 Pocket PC 等)。它还能简化开发任务,因为它已集成到 Visual Studio .NET 集成设计环境 (IDE) 中,允许开发人员通过将控件拖到移动 Web 窗体上来构建移动 Web 应用程序。  ASP.NET 不会在客户端设备上安装任何组件。相反,它会利用服务器端逻辑,以适应特定设备的 Web 浏览器的呈现方式。它可以生成无线标记语言 (WML)、HTML 和精简的 HTML (cHTML)。  除了适应性很强的 Web 页面呈现之外,ASP.NET 还为实现自定义和可扩展提供了丰富的框架,并提供了一种简单的扩展控件的方法,以使控件可以适应即将上市的各种新型设备。另外,ASP.NET 还允许开发人员在同一编程模型内控制针对特定设备或设备类别的呈现方式,允许开发人员轻松地添加对新设备的支持,而不必重新编写他们的移动 Web 应用程序。  ASP.NET Mobile Controls 可用于:   1、支持各种启用 Web 的设备(移动电话、寻呼机、PDA)   2、支持各种标记语言(WML、cHTML、HTML)  注意:ASP.NET Mobile Controls 不需要安装任何客户端。但是,目标设备必须具备客户端 Web 浏览器。  Microsoft SQL Server 2000 Windows CE Edition 2.0 版  Microsoft SQL Server 2000 Windows CE Edition (SQL Server CE) 2.0 版是精简的数据库,可用于迅速开发将企业数据管理能力扩展至移动设备的应用程序。SQL Server CE 是一种功能强大的工具,它支持用户熟悉的结构化查询语言 (SQL) 语法,并提供与 SQL Server 一致的开发模型和 API,从而使移动应用程序的开发更加简单易行。  SQL Server CE 引擎提供了一套基本的关系数据库功能,如优化查询处理器和对事务及各种数据类型的支持,同时它还维护保留重要系统资源的精简内存空间。远程数据访问和合并复制可以确保可靠地发送 SQL Server 数据库中的数据;既可以脱机操作,又可以在日后与服务器同步,这些优势使得 SQL Server CE 成为用于移动和无线环境的理想软件。  SQL Server CE 2.0 可以通过 Visual Studio .NET 与 .NET Compact Framework 集成,从而简化了智能设备的数据库应用程序开发。使用新的 SQL Server CE 数据提供程序通过公共语言运行库管理代码,移动应用程序开发人员可以在断开的情况下,建立具有脱机数据管理功能的高度可扩展应用程序。  在以下情况下,可以将 SQL Server CE 作为开发工具的补充:   1、将企业数据管理功能扩展至 Pocket PC  2、开发用来存储和处理移动设备上大量数据的应用程序   3、在连接状况不稳定的环境中,需要使用移动设备进行可靠的数据复制   工具对比表 开发方案   在短期内,开发基于Windows Mobile设备的最常用工具仍是用于Pocket PC 的eMbedded Visual Tools 3.0、用于Smartphone 2002的eMbedded Visual C++ 3.0,以及用于Pocket PC 和Smartphone 2003的eMbedded Visual C++ 4.0。最终,Visual Studio .NET及其提供的 Smart Device Programmability (SDP) 功能将成为所有基于 Windows Mobile 设备的开发平台。  服务器端代码还是客户端代码?  使用服务器端代码还是使用客户端代码,取决于几个条件。应用程序的方案虽然各不相同,但是这些条件能够帮助您为应用程序的用户选择最佳的解决方案。   用户体验:客户端应用程序普遍能够提供较好的用户体验,因为它们在设备上运行,并且独立于所有与之进行互操作的基础结构。   可用的带宽:这与用户体验有关。在有足够可靠带宽的环境(如无线 LAN)中运行的应用程序,如果使用服务器端代码,也可以提供良好的用户体验。   数据安全性:客户端应用程序必须确保设备上敏感数据的安全性。Windows Mobile 软件提供的一系列 Cryptographic Service Provider,有助于实现此目的。服务器端应用程序必须确保可以使用 SSL 等技术安全地传输数据。   可支持性:对客户端应用程序的更新必须下载并安装到设备上。如果开发客户端应用程序,请将这个因素考虑在内。   脱机功能:如果需要脱机数据访问和其他脱机功能,客户端应用程序是最佳选择。  在开发基于 Windows Mobile 的 Pocket PC 和 Smartphone 之前,您需要准备什么呢?  在开发 Pocket PC 和 Smartphone 之前,您要准备的内容取决于您要开发什么,以及要开发的设备。在大多数情况下,您需要具备集成的开发环境,以及要开发的设备的 SDK 或扩展。幸运的是,您可以在一台计算机上开发所有的基于 Windows Mobile 的设备,因为所有工具都可以在这两类设备上共存。有关我们推荐的安装顺序,请参阅附录。  目前,eMbedded Visual Tools IDE 和所需的 SDK 都是免费的,可以通过 Web 下载。  哪种工具 . . . 何时?  性能、控制或资源对我来说非常重要。例如,我要编写一个游戏、设备驱动程序或者一个 Active X 组件……  如果您打算开发运行 Windows Mobile 2003 软件的 Pocket PC 和 Smartphone,只需从 Developer Downloads 下载 eMbedded Visual C++ 4.0 Service Pack 2 和 Pocket PC 2003 SDK。您还可以使用 Smartphone 2003 SDK 为 Smartphone 开发 Windows Mobile? 2003 软件。  要支持早期的 Pocket PC、Pocket PC 2002 和 Smartphone 2002 设备,您还需要下载 eMbedded Visual Tools 3.0 - 2002 Edition。  如果您需要维护开发 Handheld PC Professional Edition、Handheld PC 2000 或 Palm Size PC 1.2 的应用程序,可以下载 SDKs for eMbedded Visual Tools 3.0。  我要在一个安全、可靠的环境中快速开发应用程序,我可能要访问 Web 服务……   我要编写一个具有最大的代码可移植性的客户端应用程序……   我要利用自己掌握的 Visual Studio .NET 2003、Visual C#、Visual Basic.Net 或 .NET Framework 知识……  我们建议您使用 Visual Studio .NET 2003 中的 Smart Device Programmability 功能。.NET Compact Framework 是内置到基于 Windows Mobile 2003 的 Pocket PC 和 Smartphone 中的。它可以用于 Pocket PC 2002,但必须安装到设备上。  我要开发 Smartphone 2002……   您应该下载 eMbedded Visual Tools 3.0 - 2002 Edition。  如果您希望在真正的设备上测试应用程序,但是您所在的地区尚无 Smartphone,或者 Smartphone 不支持开发,您可以购买 Smartphone Developer Kit。  我要使用一个代码库开发 Pocket PC 2002 和 Pocket PC 2003……   您可以用两种方法构建您的应用程序:   使用 Visual Studio .NET 2003 开发 .NET Compact Framework。这样,您可以编写一个托管代码库,并让它在两种设备上运行。Pocket PC 2002 要求在设备上安装 .NET Compact Framework。   使用 eMbedded Visual C++ 3.0。如果您使用可靠的 API 并编写了一个运行良好的应用程序,而且使用 eMbedded Visual C++ 3.0 来编写和编译本机代码,它应该可以在 Pocket PC 2003 和 Pocket PC 2002 两种设备上运行。  我要使用一个代码库开发 Smartphone 2002 和 Smartphone 2003……   .NET Compact Framework 不能用于 Smartphone 2002。要编写一个代码库以在 Smartphone 2002 和 Smartphone 2003 上运行,您必须使用本机代码并使用 eMbedded Visual C++ 3.0 编译您的应用程序。  我要维护用 eMbedded Visual Basic 编写的应用程序……   您应该下载 eMbedded Visual Tools 3.0 - 2002 Edition,它包含 eMbedded Visual Basic 的开发环境、仿真器和 SDK。  请考虑使用 Visual Basic .NET 2003 将应用程序导出到 .NET Compact Framework。  我要为可以在瘦客户端环境中运行的各种移动设备编写应用程序。我要维护用 eMbedded Visual Basic 编写的应用程序……   您应该在 Visual Studio .NET 2003 中使用 ASP.Net Mobile Controls 。注:本文转载自www.mypda.com.cn
作者:q2360c 发表于
https://blog.csdn.net/q2360c/article/details/209366
阅读:4141}

我要回帖

更多关于 手机软件开发公司 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信