我就是问一下,我这个流量是怎么电信超出流量怎么计费的。还欠6000元话费,如果是真的

您所在的位置: &
2.3.1 MessageQueue的创建
2.3.1 MessageQueue的创建
机械工业出版社
《深入理解Android:卷III》第2章深入理解Java Binder和MessageQueue,本章先对Java层的Binder架构做了一次较为深入的分析。Java层的Binder架构和Native层Binder架构类似,但是Java的Binder在通信上还是依赖Native层的Binder。本节为大家介绍MessageQueue的创建。
2.3 心系两界的MessageQueue
卷I第5章介绍过,MessageQueue类封装了与消息队列有关的操作。在一个以消息驱动的系统中,最重要的两部分就是消息队列和消息处理循环。在Andrid 2.3以前,只有Java世界的居民有资格向MessageQueue中添加消息以驱动Java世界的正常运转,但从Android 2.3开始,MessageQueue的核心部分下移至Native层,让Native世界的居民也能利用消息循环来处理他们所在世界的事情。因此现在的MessageQueue心系Native和Java两界。
2.3.1 MessageQueue的创建
现在来分析MessageQueue是如何跨界工作的,其代码如下:
[MessageQueue.java--MessageQueue.MessageQueue()] &MessageQueue()&{ &&&&&nativeInit();&//构造函数调用nativeInit,该函数由Native层实现 &}&
nativeInit()方法的真正实现为android_os_MessageQueue_nativeInit()函数,其代码如下:
[android_os_MessageQueue.cpp--android_os_MessageQueue_nativeInit()] &static&void&android_os_MessageQueue_nativeInit(JNIEnv*&env,&jobject&obj)&{ &&&&&//&NativeMessageQueue是MessageQueue在Native层的代表 &&&&&NativeMessageQueue*&nativeMessageQueue&=&new&NativeMessageQueue(); &&&&&...... &&&&&//&将这个NativeMessageQueue对象设置到Java层保存 &&&&&android_os_MessageQueue_setNativeMessageQueue(env,&obj, &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&nativeMessageQueue); &} &
nativeInit函数在Native层创建了一个与MessageQueue对应的NativeMessageQueue对象,其构造函数如下:
[android_os_MessageQueue.cpp--NativeMessageQueue::NativeMessageQueue()] &NativeMessageQueue::NativeMessageQueue()&{ &&&&&/*&代表消息循环的Looper也在Native层中呈现身影了。根据消息驱动的知识,一个线程会有一个 &&&&&&&Looper来循环处理消息队列中的消息。下面一行的调用就是取得保存在线程本地存储空间 &&&&&&(Thread&Local&Storage)中的Looper对象&*/ &&&&&mLooper&=&Looper::getForThread(); &&&&&if&(mLooper&==&NULL)&{ &&&&&&&&&/*&如果是第一次进来,则该线程没有设置本地存储,所以需要先创建一个Looper,然后再将其保 &&&&&&&&&&&&存到TLS中,这是很常见的一种以线程为单位的单例模式&*/ &&&&&&&&&mLooper&=&new&Looper(false); &&&&&&&&&Looper::setForThread(mLooper); &&&&&} &}&
Native的Looper是Native世界中参与消息循环的一位重要角色。虽然它的类名和Java层的Looper类一样,但此二者其实并无任何关系。这一点以后还将详细分析。
喜欢的朋友可以添加我们的微信账号:
51CTO读书频道二维码
51CTO读书频道活动讨论群:
【责任编辑: TEL:(010)】&&&&&&
关于&&的更多文章
本书是Android经典畅销书系(对Android系统源代码的分析最为系统
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
讲师: 7人学习过讲师: 10人学习过讲师: 0人学习过
当人们在工作中采用视觉方法时,他们会有更好的构想和
这是一本教你从零基础到精通的淘宝开店全实战案例操作
作为一名在股海中拼搏的散户,你是否经常发出这样的感
本书译自Grails项目负责人Graeme Keith Rocher所著的“The Definitive Guide to Grails”一书,着重介绍了如何在Grails框架下使
51CTO旗下网站 上传我的文档
 下载
 收藏
荣获“年度北京市朝阳区优秀律师”称号
 下载此文档
正在努力加载中...
第二章]深入理解Java Binder和MessageQueue
下载积分:1000
内容提示:第二章]深入理解Java Binder和MessageQueue
文档格式:DOCX|
浏览次数:0|
上传日期: 10:28:01|
文档星级:
该用户还上传了这些文档
第二章]深入理解Java Binder和MessageQueue
官方公共微信

我要回帖

更多关于 电信流量超出怎么办 的文章

 

随机推荐