智能手机操作系统介绍.ppt
,The successs road,智能手机操作系统介绍,沈青海,今天内容,手机操作系统概述开发平台BREWJ2ME智能手机操作系统Symbian OSPalm OSWindows Mobile嵌入式Linux国内手机操作系统相关培训课程,手机操作系统概述封闭式操作系统 开放式操作系统,开发平台BREW J2ME,开发平台,BREW,BREW,BREW(Binary Runtime Environment for Wireless)概述移植包发布系统(BDS)BREW SDK(软件开发包),BREW,开发环境Microsoft Visual C+6.0(或更高版本)1.1版的BREW SDK(或更高版本),BREW,示例:Applet结构体/*=INCLUDES AND VARIABLE DEFINITIONS=*/#include AEEModGen.h#include AEEAppGen.h#include AEEShell.h#include helloworld.bid/*-Applet structure.All variables in here are reference via pMe-*/typedef struct _helloworld AEEApplet a;AEEDeviceInfo DeviceInfo;IDisplay*pIDisplay;IShell*pIShell;/add your own variables here.helloworld;,BREW,示例:函数AEEClsCreateInstanceint AEEClsCreateInstance(AEECLSID ClsId,IShell*pIShell,IModule*po,void*ppObj)*ppObj=NULL;if(ClsId=AEECLSID_HELLOWORLD)/Create the applet and make room for the applet structure if(AEEApplet_New(sizeof(helloworld),ClsId,pIShell,po,(IApplet*)ppObj,(AEEHANDLER)helloworld_HandleEvent,(PFNFREEAPPDATA)helloworld_FreeAppData)if(helloworld_InitAppData(helloworld*)*ppObj)return(AEE_SUCCESS);else IAPPLET_Release(IApplet*)*ppObj);return EFAILED;return(EFAILED);,BREW,示例:函数_InitAppData和_FreeAppDataboolean helloworld_InitAppData(helloworld*pMe)pMe-DeviceInfo.wStructSize=sizeof(pMe-DeviceInfo);ISHELL_GetDeviceInfo(pMe-a.m_pIShell,void helloworld_FreeAppData(helloworld*pMe),BREW,模拟器环境与真实设备的区别速度声频外观文本输入内存,开发平台,J2ME,J2ME,J2ME简介是JAVA平台中最复杂的一个模块化和可缩放化 JVM层 配置层 框架层 包含许多各种不同规格的Configuration、Profile、以及Optional Package。,J2ME,J2ME把设备分为两类联接设备(connected device)有限联接设备(Connected,Limited Device)。,J2ME,CLDC对JAVA语言支持的特殊方面不支持浮点数据类型不支持JNI(Java Native Interface)不支持用户自定义的JAVA级的类载入器(class loaders)没有反射(reflection)特性不支持线程组(thread groups)或守护线程(daemon threads)不支持类实例(class instance)的终结(finalization)没有弱参考(weak references),J2ME,J2ME APICore Package Application Lifecycle Package User Interface Package Persistence Package Networking Package,J2ME,开发环境JAVA 2 标准版开发包 版本1.3或者更高。J2ME 无线开发工具包(J2MEWTK),包含编译和测试MIDlet的工具包。IDE(集成开发环境),J2ME,程序详解 所有J2ME的应用程序都要从MIDlet类中派生所有继承MIDlet类的子类都要实现三个函数startApp()pauseApp()destroyApp()每个Midlet同时间只允许有一个Display,J2ME,编写并运行一个MIDletimport javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class HelloWorld extends MIDlet implements CommandListener private Command exitCommand;private TextBox tb;public HelloWorld()exitCommand=new Command(Exit,Command.EXIT,1);tb=new TextBox(Hello,“test,15,0);tb.addCommand(exitCommand);tb.setCommandListener(this);protected void startApp()Display.getDisplay(this).setCurrent(tb);protected void pauseApp()protected void destroyApp(boolean u)public void commandAction(Command c,Displayable d)if(c=exitCommand)destroyApp(false);notifyDestroyed();,J2ME,J2ME的跨平台性限制手机的屏幕尺寸不一厂商的扩展API不统一手机平台上实现的bug手机性能问题,J2ME,适用于CLDC设备的部分规范:Connected Limited Device Configuration(CLDC);JSR 30,JSR 139 CLDC 规范Mobile Information Device Profile(MIDP);JSR 37,JSR 118 MIDP 规范Information Module Profile(IMP),JSR 195 IMP 规范Java Technology for the Wireless Industry(JTWI),JSR 185 无线Java行业规范Wireless Messaging API(WMA);JSR 120,JSR 205 无线信息规范,提供短信和彩信功能Mobile Media API(MMAPI);JSR 135 移动媒体规范,提供音频视频播放Location API for J2ME(JSR-179)定位规范,提供定位功能SIP API for J2ME(JSR-180)提供对会话发起协议的支持Security and Trust Services API for J2ME(JSR-177)提供网络安全与信任的支持Mobile 3D Graphics(JSR-184)提供对3D绘图的支持J2ME Web Services APIs(WSA),JSR 172 提供对Web Services的支持Bluetooth API(JSR-82,Motorola,Java Partner Site)提供对蓝牙的支持,智能手机操作系统Symbian OSPalm OSWindows Mobile嵌入式Linux国内手机操作系统,Symbian OS,Symbian OS,Symbian OS特点开放和基于标准专为手持设备设计本地编程语言大部分是C+高度的面向对象设计完全的多任务Client-Server 构架被广泛应用事件驱动对用户数据的可靠处理有效的电源管理本地化支持,Symbian OS,Series 60 Platform关键部件,Symbian OS,应用基本设计思想,Symbian OS,Symbian和Series 60 DP 2.0API 提供的引擎功能多媒体WAP 协议栈HTTP 协议栈消息技术多模电话TCP/IP红外BluetoothMulti-homingSession Initiation Protocol(SIP)SyncML Presence API应用服务,Symbian OS,UI:Screen,Window Server,GDI,视图,容器和控件应用程序创建视图,并建立窗口和控件,由此发送画图命令到GDI 和Window ServerGDI 和Window Server 负责将数据写到屏幕内存(screen memory)画图命令由active scheduler处理信息由屏幕内存写到物理屏幕上,Symbian OS,基本应用类,Symbian OS,SDK和开发工具介绍SDK Series 60 2.0 Series 60-specific APIs通用的UI组件 Series 60 引擎 SymbianOS 7.0s SDK 开发工具、例程、开发指南开发环境Microsoft Visual C+6.0或Microsoft Visual Studio 2003 C+.NetMetrowerks CodeWarrior Borland C+BuilderXMobile EditionAppForge MobileVB v3.1Emulator and debugger,Palm OS,Palm OS,Palm OS简介中文化PIM程序内置 最多的附加软件可以和PC机协同工作易于输入信息安全性单击式的使用便利性和其他设备共享信息有线和无线通信自由地选择所需的硬件携带方便省电,Palm OS,Palm OS开发工具介绍 编程语言C/C+BasicJavaOthers开发环境CodeWarrior for Palm OSPalm OS Developer SuitePRC-ToolsNS BasicOthers,Palm OS,Palm OS模拟器完全仿真Palm设备运行需要ROM自动测试串口和TCP/TP调试管道调试抓屏,Palm OS 5仿真器Palm OS基于Intel ARM处理器不是硬件模拟器Palm OS内核由许多DLL组成包含Palm OS应用兼容性环境(PACE)运行和测试68K应用程序运行和测试PNO*应用程序*PACE Native Object,Palm OS,创建一个Palm OS应用程序,Palm OS,Palm OS数据库以句柄集合的形式存放在存储堆中数据库头 数据库名字(最多31个字符)Creator ID和类型 应用程序信息(可选)记录列表记录 可以通过索引或者唯一的ID来访问 属性(modified,deleted,private,busy,and category)每条记录的最大长度为64K,Palm OS,其它Palm OS技术通信红外(IrDA)(高级和低级)交换管理器(Exchange Manager)IR、SMS、Bluetooth、Mail串口(USB)蓝牙(Bluetooth)网络(TCP/IP、UDP、Berkeley sockets)电话(Telephony),Palm OS,其它Palm OS技术管道(Conduits)桌面软件(Desktop)的插件,由HotSync程序调用允许Palm设备和PC交换数据 PC 标准或自定义格式 Palm设备 Palm OS数据库格式可以用C+、Java或者COMM开发工具开发到PalmSource网站上下载CDK,Windows Mobile,Windows Mobile,概述Pocket PC SmartPhone,Windows Mobile,平台,Windows Mobile,SDKWindows Mobile 2003 Second EditionSmartphone 2003 本机 C+应用程序Smartphone 2003 托管代码应用程序Pocket PC 2003 本机 C+应用程序Pocket PC 2003 托管代码应用程序Windows Mobile 5.0Windows Mobile 5.0 for Pocket PCWindows Mobile 5.0 for Smartphone,Windows Mobile,.NET CF 概述.NET框架扩展到设备上.NET 精简版跨平台特性开发工具Visual Studio.NET 2003/2005快速开发,嵌入式Linux(略),国内手机操作系统,国内手机操作系统,凯思集团的Hopen(昊鹏系统)科银京成Delta(道系统)波导的Doeasy(多易随系统)在Linux开源系统上进行二次开发的操作系统平台宇龙的Linous(领驰系统)南京移软的mLinux其它,相关的培训课程,培训课程,BREW应用程序开发BREW体系架构与开发综述使用小程序和模块编译应用程序 DLL 创建新 BREW 应用程序的方法。如何处理事件,包括切换事件 电话层如何监测进入的 SMS 消息 J2ME游戏开发J2ME体系架构与开发综述开发入门游戏示例分析,培训课程,PalmOS应用开发入门创建PalmOS应用程序PalmOS基本编程数据存储与检索编程网络通信编程与PC同步的管道技术编程,谢谢!,成功之路,