手机研发知识培训讲义-手机应用层软件知识介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模块解析(2)- BL
封装底层和协议层的逻辑处理,将处理结果提供给FL
模块解析(3)- 其他应用软 件 每个任用软件都封装成一个单独的任务
FL和其他应用软件之间通过任务控制权切换的方式进行交互
Keypad Driver
audio Driver
Display Driver
FFS Driver
L1AL TASK
– 扩充含义:包括了其他支持模块和扩展模块。这时候 应该称为一组任务。
• 前台子系统的结构(见图)
– 手机的人机接口MMI; – 通用接口模块(GIM):控制用户键盘输入和显示输入 – 其他模块
• L1AL:硬件交互 • NVRAM:存储 • ACLK:时钟
模块解析(1.1)-MMI
• 人机接口(MMI)任务:FL的主要任务
EVT_COMMAND …………
.
EVT队 列
Wms_client_reg(…)...
WMS APP
ISHELL_PostEvent()
CoreStat APP CoreAPP …
ISHELL_StartApplet(AEECLSID_WMSAPP)
IWMS
IDialog
ISTATIC
IAnnunciator
Connected
Connecting Handler
Call Active
Idle Handler
• 找到通话方 • 收到ApexCcCallConnected信号 • call connected handler被调用,来到栈顶
一个典型的流程-拨打电 话 Disconnected
Handler
• AEE层
AEE层是BREW应用的管理层,有两个含意: 1、AEE实现应用调度、事件分发,负责BREW内部
的消息队列、应用堆栈的管理,负责和UI任务 之间通信; 2、AEE层是标准BREW API接口的设计实现层,各 个接口要通过AEE层处理,此外大多数需要下 传给OEM层去真正完成实现的接口也需要在AEE 层中封装、转化;
BREW平台手机应用层
• ZTE的CDMA手机和WCDAM手机软件中 ,应用层可以仅仅是BREW的应用层, 由若干个功能独立的应用模块组成;
• 而BREW仅仅是整个软件的一个任务UI 的处理实体。
CDMA 手机应用层
Core APP、Dial APP、Mediaplayer ……
AEE Layer UI
AEE层的代码是库文件,没有公开源码
BREW 应用事件处理图例 Signal from other tasks ui_cmd_q
ZTE UI
Core APP JAVA
Recent Call
UI SHELL
AEE_INIT() AEE_DISPATCH()
BREW(BREW AEE/OEM)
EVT 事件队列/ Call Back
BREW API/ QCT EXT API
BREW Applet
WMS
Dialer
Media Player
GAME
EM
Hale Waihona Puke Baidu
Browser
商务
设置
发送AEE_APP_SIG
MLM
GST
MMS
Qcamera
BREW 应用模块
应用模块
每个BREW应用模块是基于BREW 接口设计开 发的一个小程序,被BREW 统一管理;
可以在BREW启动时创建,也可以在程序执行中 动态的加载和卸载;
任何时候只有一个应用模块可以控制键盘响应和 显示刷新;
应用模块的运行完全基于事件驱动;
BREW 应用模块-例子
CORE GPS
………
Events from system or other Brew application
EVT_APP_START EVT_KEY EVT_USER
• 扩展BREW 接口 ICM、IWMS ……
BREW 应用模块
• 应用模块
每个BREW应用模块是基于BREW 接口设计开发 的一个小程序,被BREW 统一管理;
可以在BREW启动时创建,也可以在程序执行中 动态的加载和卸载;
任何时候只有一个应用模块可以控制键盘响应和 显示刷新;
应用模块的运行完全基于事件驱动;
– 可以在PC上完成编译和调试。
• GIM完成显示的过程
模块解析(1.2)- GIM
模块解析(1.3)- NVRAM
NVRAM Task
Interfaces
AnrmWriteDataReq AnrmReadDataReq
NVRAM Task
AnrmWriteDataCnf AnrmReadDataCnf
手机事业部软件培训-
手机应用层软件知识介绍
内容纲要
• 手机软件应用层介绍 • 应用层软件开发流程 • 应用层软件开发工具介绍 • 新应用介绍
应用层介绍
• 应用层是做什么的? • 应用层在整个系统的位置是什么?
• 应用层包括哪些子模块?各子模块的作 用是什么?
• 不同平台的应用层
Network
GSM手机软件结构
OEM Layer
WMS、CM、DS、SND、NV、EFS ……
CDMA PS
Orther tasks
HW Driver
BREW 应用介绍
• BREW (Binary Runtime Environment for Wireless)一开始是高通公司推出的一套 应用开发标准,并逐渐成为高通手机软 件的应用开发平台;
User
MMI and Applications (FL/BL)
Protocols Stack L2/L3
(include GSM Signalling Protocols / Data & GPRS Protocols)
GKI
Layer 1
External Devices
RTOS
Driver
Hardware
• 这和JAVA的思路是一样的。
BREW 接口
• 标准BREW 接口
显示类:IDisplay、IBitmap、IFont、 IImage ……
控件类:IDialog、ITextCtl、IImageCtl、IMenuCtl ……
其他特定功能:IShell、ITAPI、IDatabase、IFile 、ISound、ICamera ……
BREW手机软件架构
ZTE UI
CORE APP
WMS
DIALER APP
MEDIA PLAYER
GST
MLM
BROWSER
GAME
UI
B
JAVA
RECENT CALLS
商务功能
……
R RE
X
shell
E
OS
BREW APP AEE
IShell
ISound
IWMS
IDisplay
……
W
BREW OEM LAYER
•人机接口(Man Machine Interface) •接收按键和BL层的信号 •管理与底层驱动的接口 •展示一个绚烂的界面
• 什模么是块前解台子析系(统(1F)L)-前台子系统
– 传统含义:前台子系统可以理解为手机软件中的一个 任务,它通过接收处理其他任务发来的信号和内部发 送的信号,来响应用户和网络的动作。
Call Manager CMX API
Voice API
WMS EFS/NV Sound PBM Sockets
PdM
……
DMSS/AMSS software
应用层-描述
• 手机软件从大体可以划分为驱动层、协议层、 应用层;
• 通常所说的应用层是指围绕用户操作、响应进 行处理的软件层次,处于整个软件的最上层;
an AL Task
Return value
ffs_fread ffs_fwrite
FLASH
FFS TASK
模块解析(1.4)- CLOCK
Real-time Clock Driver RTC Interface
Clock Task
GIM ForeGround Layer
模块解析(1.5)- L1AL
Dialing 07887 123456
• 接收到后台发来的ApexCcCallConnecting 信号 • 从Idle Handler 调用connecting handler • connecting handler放到栈顶 • 显示连接界面 •后台将电话号码信息发送到协议栈
一个典型的流程-拨打电 话
• MMI需要处理各种操作模式
– IDLE,菜单,通话,电话列表,编辑。。。 – 模式应该可以重叠:例如通话的同时应该可
以菜单选择。>>>>mode stack; – 需要有效处理来自键盘和后台的事件。
模块解析(1.1)-MMI
SU P P LE MENTA RY SERVICES
CELL BROADCAST
– 包括以下内容
• 数据库以及数据库的生产工具alchemy; • 根据数据库元素的ID,完成对数据库的访问; • 完成硬件输入到逻辑事件的转换
模块解析(1.2)- GIM
• GIM的优点
– 将界面设计和代码设计分离。如果界面有变 化不用修改代码或修改的工作量很小。
– 可以利用Alchemy工具集生成GIM数据库, 也可以自己编写工具。
SHORT M ES S A G ES
M EN U SYSTEM
IN CALL
TELEP H O N E LISTS
IDLE
模块解析(1.1)-MMI
• HANDLER STACKS
– 每一种模式概念化为若干个场景,用一个 CONTEXT来描述;
– 对每个CONTEXT的操作放在一个事件处理 器中,称为Handler;
Connected Handler
Connecting Handler
Call Closed (OK)
Idle Handler
•通话方挂断电话 •收到后天发来的ApexCcCallDisconnected信号 • 调用call disconnected handler •显示通话中断 •用户点OK或过一段时间后,卸载Idle Handler以外的所有Handler
• 应用层包括MMI和相关的数据管理,由多个应 用任务或者模块组成;
• 由于平台不同,整体的软件结构上会有差异, 应用层的概念理解上也会有不同;
GSM手机应用层
• 在ZTE的GSM手机软件中,应用层由若 干个任务组成: 前台FL 后台BL WAP以及其他功能模块
• 前模台块子系解统析((FL)1)是做-什前么台的 子系统
BREW OEM
• OEM层
JAVA需要虚拟机,BREW不需要虚拟机,但是类似 的需要在BREW和具体的手机软件底层增加一个 适配层,这个适配层为OEM层;
OME层负责实现上层命令的实现: 显示刷新、播放声音、发起呼叫、文件读写等
OME层负责把底层的事件上报给应用层: 来电、新短信、闹钟等等
BREW AEE
– MMI 维护Handler的栈,这样就可以用栈的 形式来实现模式之间的重叠 ;
– 每一个时刻只有一个Handler控制MMI
– Handler处理来自键盘和后台的各种逻辑事件 ,并且通过GIM用数据库元素来显示。
模块解析(1.1)-MMI
Handler之间相互独立, 并存于Stack中 有两类handlers:- 临时 的(Transient) &空闲 的 (Idle) Handlers Handler由一个处理信号 的函数组成
• 通过BREW统一接口开发的应用可以在 不同的手机上运行,是的应用层可以脱 离具体的硬件环境、操作系统以及协议 层。
BREW 应用介绍-2
• 采用BREW平台来开发应用层软件,使 得软件开发人员可以把精力集中在对 BREW api的使用上,而不必关心底层如 何实现;
• 内容提供商可以脱离于手机制造商开发 出可以在手机上运行的应用;
Interface
NVRAM TASK
Interface
Interface
AF TASK
Interface
WAP/MMS/JAVA/GAME
一个典型的流程-拨打电
Making a Call

MMI接收到 L1AL按键信号
通过GIM层解析为 相应的事件
Idle Handler
通过GIM层显示号 码到屏幕
12345678
•开始只有 idle handler处于激活状态,在栈顶; •idle handler允许用户输入电话号码; • 按了拨号键以后, idle handler 发送信号ApexCcMakeCallReq 到后台
一个典型的流程-拨打电 话
Connecting Handler
Idle Handler
栈顶的Handler控制 MMI,首先接收到来自 外部的事件信号
每一个到达前台MMI的 信号从栈顶向下传
模块解析(1.2)- GIM
• GIM是前台程序的一部分
–主要功能是在MMI和部分LAY1之间提供一个 通用的接口
– 从底层抽象出显示器,键盘和其他周边设备 ,允许用户通过工具箱制定可见的MMI
相关文档
最新文档