分类: LINUX
2007-05-26 21:01:27
北京理工大学 20981班 陈罡
一、篇首语
历时近两个月的开发工作,总算把手机杂志的整体框架给解决了,当然还存在不少问题,我们会一如既往的坚持下去,解决这些问题。其中包括的杂志的协议定义,杂志界面框架定义,内存缓冲池,文件缓冲,资源预读服务器,xml解析引擎,xml绘图引擎,屏幕绘图引擎,h264解码器,amr-nb解码器,3gp转h264的转换器,音视频的同步机制,以及后台的杂志编辑工具和脚本等等。在只有两名开发人员的小组,能够如此之快的完成这个程序,套用老外的话来说——“It's really a hard work,but IT IS DONE.”
二、向open source,项目组的成员以及家人致谢!
幸运的是open source的力量是非常强大的,如果有机会能够为open source出一份力的话,我一定会不遗余力的,这个项目本身也是借助了不少open source的成果,所有相关的小工具均采用python 2.4脚本完成,包括了pygtk,pycairo,pyexpat,mod_pythonxml,py2exe等等,尤其值得称道的是python的正则表达式出人意料的强大,原本用c/c++需要上百行的代码,只要一行就可以解决了,当然写出这一行所需要的时间也不短(呵呵,偶是初学,让大家见笑了。)xml解析器参考了部分expat的代码,h264解析器参考了部分ffmpeg的代码,h264编码器参考了部分x264的代码,iso流媒体文件格式解析器参考了AtomicParsley的部分代码,xml协议的设计参考了gtk+的一些ui设计理念等等,这些无法一一致谢,只能笼统的向整个open source的成员致谢,是你们的工作让我带领这个团队在如此短的时间内让整个计划得以坚决的执行。还要感谢XP编程理念的创造者Kent Beck,正因为他的理论(——以测试驱动开发)引导着我们快速的完成一个又一个原型,快速的推翻或修改原型,最终快速的推进整个项目的进程。
感谢我的搭挡lvzz和我完美的配合,他的谦逊和勤奋让我印象深刻,他是每天唯一一个和我一起在公司加班到刚刚能够赶上最后一班地铁的人。没有他的努力,整个平台的ui框架在手机上的速度简直无法让人接受。
需要特别感谢的是项目组的编辑和美工们的辛勤劳动,难以置信这些丰富的内容都是出自几个女孩子之手。是她们让我感到,女孩子的想象力和创造力并不像社会上所谣传的那么差,恰恰相反,只要给她们足够的发挥空间,她们也可以做出让人惊叹的作品出来的。
感谢我的爱人diana hu,她默默忍受了我的每天11点半以后才到家,很少帮助她做家务以及很少陪伴她的左右等等诸多不足,她是我事业的最坚定的支持者。
最后感谢我们的小狗“壮壮”,它每天陪在diana的身边,给我们的生活带来了无限乐趣。
三、我们理想中的模式
(欢迎大家提出更好的意见,也希望有兴趣的有志之士加入我们共同讨论)
项目组开发这个手机杂志平台的口号是——“大家省才是真的省”。 采用完全免费的形式在互联网上发布,包括“5M周刊”浏览器和周刊的内容。以B2B的模式为主,不考虑直接收取用户的费用,浏览器是和杂志内容都是免费的。以做一些广告来维持小组的收入(呵呵,两个pool guys,4个MM)。最理想的形式是大家看我们的杂志,我们做广告赚点广告费,而且做出一套移动杂志发布的认证系统出来,希望在我们的平台上做杂志内容的,需要我们签名才可以安装到手机上,当然了这个费用是很低的。在这里强烈声讨nokia 3rd平台的symbian signed,太贵了。
现阶段这些都是空想,只有踏踏实实把这个平台做好了(包括健壮性、可扩展性、可移植性等等),机型适配增强了(目前仅仅完成了S60 2nd平台的开发,正在S60 3rd平台的开发正在进行中,计划开发win mobile,mobilinux平台移植,暂时不考虑j2me,起码的h264解码器就没戏),才能够取得大家的信任,赢得稳定的读者群体。
四、5M周刊简介
“5M周刊”本身定位为一个移动杂志发布平台。从开发者的角度而言,我没有觉得这个程序是一个创新,至少从开发模式上,工具上,采用的技术上都是已有的常规技术,所不同的地方应该在思路上,它实现了我们项目组心目中的手机杂志的样子。不完善之处还请大家批评指正,下周一就要正式在互联网上推广了,但愿会有感兴趣的手机玩家支持我和我的小组。(以下截图均来自Symbian S60 2nd手机模拟器)
1、手机桌面logo
图标是“5M周刊”,主要是大家都在鼓吹手机是继报纸、广播、电视、互联网之后的第五媒体,所以顺应这个潮流,我们把这个手机杂志浏览器起名为“5M周刊”,方便记忆,颜色选取上,也是考虑了手机安装不同主题的时候,会引起logo的对比度变化,有可能看不清的情况,最终使用了蓝色的边框和白色的背景来突出显示效果。
2、程序启动界面
3、期刊选择界面
5M周刊程序只是一个杂志内容的浏览器,浏览器程序和杂志内容是分成两个包分别安装的。也就是说,在手机上安装了杂志浏览器后,你应该看到的是一个完全空的杂志,没有内容,只有在安装了相应的内容包以后,才会看到如此绚丽多彩的手机杂志。
4、在期刊选择界面的用户菜单
这个是在“期刊选择界面”的用户菜单,当用户在“期刊选择界面”点击“选项”的时候,就会显示出来。该菜单涵盖了基本的用户操作。
对于这个半透明效果的菜单,灵感来自于smart movie(智能影院)的半透明菜单,采用了透明特效的图像处理。有参加试用的朋友跟我反映说这个菜单的透明度太高,影响菜单项的浏览,呵呵,真正发布的时候,我会酌情进行调整。
各个菜单项功能简介:
进入——会直接打开期刊的封面,然后进入“期刊目录界面”。
功能设置——可以设置手机的背景灯光是否常开,以及背景音乐的音量,加入了背景音乐,手机杂志浏览才称得上是一种享受。
删除杂志——直接删除当前选定的杂志。
推荐好友——会提供两种方式让用户选择,从电话号码本选择号码或者直接输入好友的手机号码,程序会自动把软件下载地址以短信的形式发送给指定的号码。
关于5M——显示一些版本信息,以及免费杂志内容包的下载地址。
5、期刊logo界面(假定我们选择了“时尚嘉人”的期刊)
首先显示的是该期刊的封面。当然了,整个程序的页面切换都是带有特效的,总体感觉上类似幻灯片的样子。封面页面每期杂志都会有,直接翻过即可开始浏览杂志的目录和内容。
这里明确一下按键的定义:
手机的上下方向键——杂志目录和内容的焦点切换
手机的左右方向键——杂志翻页
左边的选项键——调出程序菜单,菜单会随着当前所处的界面不同而不同,例如期刊选择界面,就会有简单的杂志管理,例如“删除杂志”之类的选项,而到了“期刊浏览的界面”,菜单更多的是一些页面跳转,或者“返回期刊目录”之类的操作了。
右边的返回键——返回最近一次操作的杂志页面,缓冲区我设置了缓冲10页,也就是类似微软的ctrl+z的功能,但是队列的长度只有10页,这个功能键如此定义不知道是否合适,还有待于用户的反馈。
关于手机键盘映射的问题,欢迎大家多提意见,我们好进一步改进用户的体验。
6、期刊目录界面(在杂志logo界面按右方向键即可)
会直接播放一段玉兰油的视频广告,呵呵,由于这个5M周刊,从浏览器到杂志杂志内容均是完全免费下载的,所以我们只能播放一些广告以期有一些财大气粗的公司能够给我们一些赞助或者广告费之类的收入。
按手机的ok确认键(四个方向键中间的那个键),就可以关闭广告视频播放,当然也可以继续观看(我们大家能看完这段广告,就算是对我们的支持了),在视频播放过程中,左右键可以进行视频音量的调整。这个就是源自于ffmpeg的h264播放器了,在7610这种100MHz的ARM处理器上马马虎虎可以达到12-15 fps。视频压缩比非常高,大概4k/s的样子。整个5M周刊为单机版程序,杂志内容都是互联网下载,安装到手机是本机存储卡上的杂志文件,不会产生任何gprs流量费,可以放心使用。
广告播放完毕后,就会出现“期刊目录界面”。此时,按上下键就可以移动界面中的焦点,按中间的ok键或者从菜单中选择“进入”,就可以进入不同的杂志界面了。也可以按右键,直接翻页,一页页顺序浏览。浏览过程中随时可以打开菜单,进行页面跳转。
7、几张不同内容的杂志页面抓图,以嗜读者,我个人非常喜欢卡通的。