最成熟的3G网络系统,是3GPP项目组制订的WCDMA.WCDMA的网络结构,可参考Figure 12.1,其中有几个特点. 1. 反向兼容GSM/GRPS网络. 原有GSM网络的基站子系统(BSS)保持不变,并且可以通过原有A协议栈和Gb协议栈,与改造后的核心网(Core Network)互联互通. 2. 核心网保持了原有GSM/GRPS/EDGE网络的HLR,AUC,EIR,VLR,MSC,SGSN,GGSN等等网络结构. 主要变化是把原有的MSC,分拆为MSC(Mobile Switchi…
在第9章中我们提到,从功能上讲对于智能手机的一个粗略的概括是,智能手机 == 电脑 + 移动网卡,或者更准确地说,智能手机的硬件结构分为应用程序处理器AP,和基带处理器BP两个部分.这里隐含着两个问题, 1. BP部分与AP部分的集成.2. 传统的功能手机只配备了出厂时预装的应用软件,而不允许用户自主下载并安装第三方应用软件,而智能手机突破了这一限制,因此智能手机的AP部分,必须有相应的开放机制,方便第三方软件的开发与安装,同时尽可能降低第三方软件造成对整个系统,包括其它软件的恶意伤害.更进一步…
分析了SmartPhone的里里外外以后,现在我们可以分析MTK的机遇和挑战了.MTK面临的外部环境在发生变化,变化有两条,一是移动网络从2G演变到3G,二是手机由FeaturePhone演化到SmartPhone. 根据前文的分析,MTK在FeaturePhone的产业链中的位置,原本应该只是一个BP芯片厂商.但是MTK没有局限于BP芯片,而是多做一步,担当了系统集成商的角色.把BP芯片,外围配件以及驱动器,还有GUI界面,和其它应用程序全面集成起来,提供给手机制造商Turnkey的解决方案.…
上一章我们说到,智能手机 == 电脑 + 移动网卡,这个提法比较粗略,更精准的提法应当是,智能手机的硬件结构分为应用程序处理器AP,和基带处理器BP两个部分.虽然AP部分的功能与电脑主板基本类似,但是硬件结构有很大不同,不同之处体现在CPU的选择,以及整个主板的布局连线. BP负责所有通讯软件的执行,它的硬件结构,也并非如网卡那么简单.基带处理器BP的实现,有三种方式. 1. 分立器件(Discrete Components). 把BP部分的CPU,内存,电源管理,无线收发器,功率放大器等等器件…
上一章我们讨论了SmartPhone BP部分的硬件系统,接下去我们将讨论SmartPhone BP部分的软件系统.所谓BP,指的是基带处理器(Baseband Processor),又称为通讯处理器(Communication Processor,CP),顾名思义,BP部分负责SmartPhone的通信机制. 作为手机的通信机制,BP部分尤其是软件系统,与移动网络的进化密不可分.2G时代的移动网络,主要分为两个家族,GSM和CDMAOne[1].从1985年,ITU启动了制订3G移动通信系统规…
1 前言 为了更深刻的理解Android图形系统抽象的概念和BufferQueue的工作机制,这篇文章我们将从Native Level入手,基于Android图形系统API写作一个简单的图形处理小程序.透过这个小程序我们将学习如何使用Native API创建Surface,如何请求图形缓冲区,如何向图形缓冲区中写入数据等知识.Talk is cheap, show me the code.让我们马上开始吧! 注:本系列文章的分析及代码均基于Android 12(S) Source Code,可参…
1 前言 Android图形系统是系统框架中一个非常重要的子系统,与其它子系统一样,Android 框架提供了各种用于 2D 和 3D 图形渲染的 API供开发者使用来创建绚丽多彩的应用APP.图形渲染的 API的底层可与制造商的图形驱动程序实现代码交互,了解这些API的工作原理及图形系统框架层的处理逻辑可以帮助我们更好的使用这些功能. 本系列文章将侧重于图形系统BufferQueue的知识做分析讲解.BufferQueues 是 Android 图形组件之间的粘合剂,BufferQueue 类…
1 前言 上一篇文章中我们已经创建了一个Native示例应用,从使用者的角度了解了图形显示系统API的基本使用,从这篇文章开始我们将基于这个示例应用深入图形显示系统API的内部实现逻辑,分析运作流程. 本篇将聚焦应用和SurfaceFlinger的活动,即应用是如何与SurfaceFlinger这个服务建立连接并进行通信的.让我们开始吧! 注:本篇涉及的代码位置: /frameworks/native/libs/gui/ /frameworks/native/libs/gui/include/g…
1 前言 SurfaceFlinger作为Android图形显示系统处理逻辑的核心单元,我们有必要去了解其是如何启动,初始化及进行消息处理的.这篇文章我们就来简单分析SurfaceFlinger这个Binder系统服务的一些基本处理逻辑.接下来分两部分讲解: >> SurfaceFlinger启动与初始化 >> SurfaceFlinger消息队列处理机制 Tips: 本篇涉及的代码位置: /frameworks/native/services/surfaceflinger/ 2…
题外话 刚刚开始着笔写作这篇文章时,正好看电视在采访一位92岁的考古学家,在他的日记中有这样一句话,写在这里与君共勉"不要等待幸运的降临,要去努力的掌握知识".如此朴实的一句话,此时此刻,正适合我们. 1 前言 回到前面的文章:Android 12(S) 图形显示系统 - 示例应用(二)  ,在上一篇文章中已经讲解了应用如何与SurfaceFlinger建立连接和通信,接下来就要去创建Surface了,当然在此之前,还有获取屏幕Display信息的操作,这不是关注的重点,先不展开讲解.…