主 题:大家给这本书的内容提点建议,好吗?我们打算出版:《新一代java手机程序设计– symbian epoc篇》,
台湾王森著(华中科技大学出版社)。
作 者:yeka
所属论坛:嵌入式开发
《新一代java手机程序设计– symbian epoc篇》,台湾王森著。
内容简介(作者提供):
电信大厂nokia在2001年11月,宣布成立一个由多家厂商组成的联盟,来共同制定未来的移动电话技术标准。其中java技术是这个标准中非常重要的一部分。
nokia的ceo jorma ollila在comdex的演讲中,称呼这个新的标准制订组织为"open mobile architecture initiative"(开放行动架构组织)。
目前加入的成员包括手机制造商和电信业者,名单上有at&t wireless,
ntt docomo,sony,ericsson,motorola,siemens,sharp,samsung,
nec,matsushita等等。
这个联盟将支持一些技术标准,第一个是java。java平台可以成为一个
各家手机、各种应用程序通用的运算平台,也同时具备网络通讯功能和
可靠的网络安全特性。另外包括的技术标准有mms(multimedia messaging service,多媒体传讯服务),将可以发送图片或其它多媒体档案,不只是目前简单的文字简讯功能。其它的标准还有xhtml,syncml,以及wap2.0。
另外这个组织也会加入用户身分认证的功能,第一考虑是由sun发起的
自由联盟(liberty alliance)。我们在前几期介绍过这个计划,它是由
sun和数十家各种行业的领导厂商所组成,目的是制订一个internet用
户认证机制,用来和微软一家独揽的passport相抗衡。
nokia认为经由这个行动电话技术标准的统一,将有助于各家厂商的产品开发、市场规模以及产品销售。
然而,这个技术的统一标准,正是建构在symbian公司所发展设计的epoc操作系统之上。本书正是一本专门描述如何在执行epoc操作系统的手机上,利用personal java与java phone这两组标准的api来开发应用程序。
由于epoc操作系统分成三种参考设计实现: crystal、quartz、以及smart phone。虽然都属于epoc操作系统,但是开发程序时仍有不小的差异,因此,本书将会分别介绍这三种参考设计实现的程序开发。
回复贴子:
回复人: summerflower(冬天) (2001-12-15 10:57:32) 得0分
欢迎这本书的出版,不过有两个疑问
1:这本书应该是基于epoc的personal java与java phone这两组标准的api来开发应用程序,也就是说这些api不具有通用性能,请问作者,目前哪些手机采用epoc操作系统?再者2:手机上面应用程序的发展方向是什么?我相信在手机上狭窄的屏幕,难使用的键盘上玩游戏,等开发的应用程序,我想手机应用程序的特点是可以网络连接,那么应用程序一定要做到和网络交互,如果要和网络交互,必定要知道gsm协议栈的各种接口,可惜这是许多通信厂商吃饭的东西,估计暂时不会公开,毕竟手机平台不同于pc机平台,无论是硬件平台还是操作系统÷协议栈软件平台都没有一家独霸天下,考虑到这些问题,开发跨平台的应用程序,不是一件容易的事情,及时是开发出来,应用前景如何?
回复人: xh0001(wave alee) (2001-12-15 12:09:01) 得0分
楼上的朋友所说甚是!虽然java具有跨平台性,但是在支持java虚拟机上面的跨平台,因手机的硬件的巨大差别性,特别是用户界面部分的差别,即使能开发出块平台的应用程序,在屏幕较小的和屏幕较大的手机上面也是让用户没法接收的。
不管怎么说,仅仅是凭空而谈,我还是很希望看到这本书,然后再作详细的评论。
不过目前还要继续做自己的手机开发。
回复人: alaofangel(天使之翼) (2001-12-16 9:18:32) 得0分
好像motorola已经推出了基于j2me的芯片于开发平台的整体方案,不知详情如何,有那位朋友对此较熟悉,请赐教
回复人: moli(王森) (2001-12-16 17:35:22) 得0分
大家好,
沒想到書的內容正在nokia 9210上測試而已,
華中就開始宣傳了…害我一身冷汗 ^^"
回答上面朋友的問題:
"personal java与java phone这两组标准的api来开发应用程序,也就是说这些api不具有通用性能"
這句話是有問題的, perosnal java是標準的sun官方規格,也就是說,同樣的程式碼,
只要使用personal java標準中的api來撰寫,也可以在pocket pc上執行,
甚至同樣的byte code,也可以在pc上(如果不用到swing的話)
同樣的, javaphone也是官方標準,讓java可以與手機上的通訊錄,行事曆作溝通以取得資料,
只要符合標準,任何手機都可以執行,我想這個是沒有問題.
我寫這本書,就是賭symbian epoc的未來,就好像如果有人認為未來行動平台是ms的天下,
那麼他就會努力的學windows ce programming,結果一樣無法跨平台,對嗎?
小第這一本著作只是各種門派之間其中一派而已,而原因只是因為使用epoc這一段時間
讓我愛上了epoc,不得不讓我想為它寫一本書.
另外,"如果要和网络交互,必定要知道gsm协议栈的各种接口"這句話我個人也覺得怪怪的,
這就好像有人說"如果要寫無線網路程序,要先懂得802.11規格和接口",感覺很奇怪.
因為不管在任何平台上,應用程序都是靠著tcp/ip來作聯繫,只要懂socket,甚至http協定即可.
目前epoc上的程序開發只有三種方式:
1. c++
2. java
其中,java又分成
a. personal java(以後叫做foundation profile/personal profile)
b. midp
尤其是將來nokia的主力 – nokia 7650,也是完全支援midp.
而支援midp也是所有行動設備廠商致力的目標(motorola, ericson, motorola, siemens ..etc)
前面的朋友說:
"无论是硬件平台还是操作系统÷协议栈软件平台都没有一家独霸天下,考虑到这些问题,开发跨平台的应用程序,不是一件容易的事情",
這也就是為什麼本來我想寫c++而後來改成java的原因.
另一位朋友說:
"因手机的硬件的巨大差别性,特别是用户界面部分的差别,即使能开发出块平台的应用程序,在屏幕较小的和屏幕较大的手机上面也是让用户没法接收的".
我想這也是midp設計時所考量的重點.
由於目前的內容已經很多,本來打算把midp也寫進書裡,
但是由於midp不只應用在epoc之上,所以才抽出來,變成另外一本書,
希望midp 2.0問世時也可以讓這本書與大家見面.
不管如何,都希望在正式出版前,看看各位朋友想看些什麼內容,
我想這是華中之所以在此公告的最大目的.
王森
回复人: summerflower(冬天) (2001-12-17 9:34:28) 得0分
谢谢作者很快回答,但是有两个问题需要纠正一下,
1:手机上使用gsm协议栈通信绝对不是象在windows上使用tcp/ip协议栈通信那么简单,如果是那样,那国内的手机开发商实在是太幸福了,因为gsm协议栈是按照gsm协议写出来的,应该来说,并不是十分符合osi的分层协议模型,之间有些变化,并且这些协议栈的使用与硬件平台关系很大,并不具有通用性,不然干吗叫嵌入式开发?
2:对于java我只是略之皮毛,那些接口,只是开发程序的标准接口,对于使用gsm协议栈通信,目前绝对没有一套标准的接口让你使用。
回复人: summerflower(冬天) (2001-12-17 9:43:23) 得0分
比如说:你在windows下写的利用windows的协议栈通信的程序,能够跨到平国机商使用吗?目前pc机无论是硬件还是软件,都有一个主流的标准,如果目前pc机象手机那么多得硬件软件标准,pc机绝对没有现在那么红火,我个人认为,最好制定一个手机标准,就像现在组装电脑一样。你可以买不同的cpu,基带板、手机外壳,自己组装一个手机:-),并且操作系统在你组装的硬件平台上,就像现在装windows样那么简单,那个时候真正迎来了手机程序开发的新时代,不然,没有什么实际意义。
回复人: moli(王森) (2001-12-18 1:16:38) 得0分
感謝summerflower的提問..
我的想法是,我們原本只是在討論application層次,
也就是osi分層的最上一層,
在手機上使用tcp/ip實在很簡單,
我已經幫助不少家廠商開發手機上的application(motorola a6288與nokia 9210),一樣是使用socket,一樣是使用http,
就可以和各種web server或是用其他語言所撰寫,使用socket的server side程序,
不管是windows平台還是unix平台都沒有問題.也都已經在運作.
連入門的程序員都可以順利撰寫程序,
所以在應用層是絕對沒問題的.
所以很抱歉,我真的不了解您所說的:"手机上使用gsm协议栈通信绝对不是象在windows上使用tcp/ip协议栈通信那么简单,如果是那样,那国内的手机开发商实在是太幸福了,因为gsm协议栈是按照gsm协议写出来的,应该来说,并不是十分符合osi的分层协议模型"
是什麼意思.因為我教過數百位學生j2me/midp,沒有人告訴過我手機上的程序在通訊上是一件難事.甚至用personal java也一樣簡單.
如果您提的是system programming,的確,我也參予底層的設計過,
的確是很複雜,可是對於application programming來說,提這些並沒有意義,是嗎?
如果寫application的人還要老是注意底層的protocol,那設計那麼多層的model就沒有意義了,
是嗎?
王森
回复人: summerflower(冬天) (2001-12-18 14:25:42) 得0分
呵呵 谢谢作者!
不过有个问题很奇怪,pc机http协议使用底层tcp/ip协议栈通信,这点没有错。http协议什么时候是用在手机上了?无线环境使用的是wap协议,如果真如作者所说,手机使用http协议,底层使用tcp/ip协议栈通信,那还要wap协议做什么?无线环境和固定网络环境很不同,比如你使用手机上网,手机向基站发送请求(包括地址,使用wap协议),通过基站传送到msc(使用wap协议,msc是gsm移动网络与固定网络的交点),msc发送到一个网关,这个网关叫做wap网关,把wap请求转换为http请求,然后发送这个请求到服务器,服务器返回内容到网关,网关进行格式转换,从http格式转换未wap格式(也就是类似于httm的wml格式),然后顺着来时的道路返回到手机,手机上有个wap浏览器,专门解析wml格式的数据流,于是你看见了网络内容,绝对不是你所说得简单的使用一个sockets接口,然后全部搞定。wap协议是应用层的协议,实际发送数据使用的还是底层的gsm协议,利用gsm协议有两种交换方式,一种事csd电路交换,一种是gprs,由于csd方式数据速率很慢,所以wap没有发展起来,只有等速率快的gpra了:-)。
不清楚作者为什么说利用手机通信是一件简单的事情。实在是不简单的一件事情。
回复人: alaofangel(天使之翼) (2001-12-18 14:57:14) 得0分
也许作者是在比较高的层次上说的,当然没有我们这些做较底层(其实惭愧,我所谓底层也是在别人-老外的基础上,并不是太低层)的所感受的痛苦与欢乐
但java是趋势,只要java芯片能真正到来,真正运用起来
回复人: mailbomb(网络咖啡) (2001-12-18 22:45:16) 得0分
学习
回复人: summerflower(冬天) (2001-12-19 15:41:44) 得0分
"因為我教過數百位學生j2me/midp,沒有人告訴過我手機上的程序在通訊上是一件難事.甚至用personal java也一樣簡單"
细细琢磨了王先生的这句话,感觉很有问题,作为csdn的一个名人,应该知道韩愈有句话说的很好,“术业有专攻”,(因为我没有象王先生那样教过几百个学习j2me/midp的学生,恐怕说话没有说服力,只好搬出老祖宗对抗了!!),没有人告诉你是一件难事,并不代表它就是一件简单的事情,谦虚总是没有坏处的,不要动不动就搬出几百个学生来吓唬人
回复人: moliwang(王森) (2001-12-19 17:53:46) 得0分
dear summerflower,
說真的,我感覺咱們兩位談的是不同的事情,是嗎?
或許您應該試著用personal java或是j2me來開發手機程序之後,
咱們再回頭談談您所談的,這樣會不會比較好呢?
或者您先詢問一下某位已經撰寫過j2me程序的程序員萊問問,看看他的答案如何呢?
是的,術業有專攻,我個人非常認同這句話,所以小弟也只有在j2me的領域這個小小的範疇才能稍微講話理直氣壯點!!
我舉學生的例子,只是想說明,用j2me撰寫手機上的通訊程序,在學生沒有任何通訊基礎知識上的情形,是很可以很順利的完成,而且只需要兩個小時的訓練,只要懂得最簡單的http協定即可.
如果您認為我這樣不夠謙虛,我向各位道歉,
如果您認為我搬出學生來唬人,我向曾經與我在課堂上教學相長的學生道歉.
如果因為非面對面溝通,而只是因為繁簡體中文的文字表示方法(或是用詞的文化上),
而造成您對我的誤解,那我鄭重地向您道歉.
這並非原本華中出版社的原意.我個人也實在不想造成額外的麻煩.
我了解老祖宗說過的話,所以從本篇開始,
我個人不會再在csdn的論壇上表示任何意見,我還是暗暗地躲起來,看大家所給予的批評和指教比較不會惹出麻煩.
王森
