- 浏览: 245987 次
- 性别:
- 来自: 北京
最新评论
-
david_je:
请问有没有提供试读的链接?
Go Web编程(Go语言性能好、语法简单、开发效率高!)
文章列表
Looper中的消息队列处理机制
Looper也提供了消息的定义、消息的发送、消息的处理者的自定义和消息队列。在其头文件Looper.h中,定义了消息结构体Message,它只有一个类型成员,Message的定义如下(见文件Looper.h,下同):
消息的处理者可由MessageHandler进行处理:
使用者可通过派生出子类来扩展消息。对消息的处理,需要在MessageHandler的子类中重载handleMessage函数。
它们将被封装到消息“信封”MessageEnvolope中,然后送到消息队列中。MessageEnvolope的定义如下:
Looper中维护 ...
《深入剖析Android系统》第9章RIL补充配图
《深入剖析Android系统》一书中第9章的RIL部分的函数层层调用,可以用插图的方式标示出主要的调用关系。由于插图较大,不适合16开的书籍尺寸大小,故未将相关插图放到《深入剖析Android系统》一书中。读者在阅读该章内容时,可以在电脑上放大插图来查看函数的调用关系。注:这些插图绘制于2009年,基于Android的Cupcake版本,但亦适用于Android的后续新版本。
1.RIL调用关系概略图:
2.RIL调用关系详图:
3. RIL调用关系详图中的分发(dispatch)部分:
Looper中的睡眠等待与唤醒机制
C++类Looper中的睡眠和唤醒机制是通过pollOnce和wake函数提供的,它们又是利用操作系统(Linux内核)的epoll机制来完成的。当被监控的文件(通过epoll_ctl的EPOLL_CTL_ADD添加进去)可I/O时,epoll_wait调用会从睡眠中醒来,这时,可以检查是哪个(或哪些)文件描述符对应的文件可以进行
Looper对文件描述符的监控与处理
- 博客分类:
- app设计
Looper对文件描述符的监控与处理
上面提到的管道的读端是一种文件描述符,那么其他的文件描述符,如普通的文件、设备文件和套接字(包括套接字对)等的描述符,都可以被Looper用来监控,实现类似于上面的消息队列的唤醒和处理机制。通常,消息是通过消息队列发送的,也可以通过套接字(比如已建立好连接的套接字)、设备文件来发送;当然,也包括管道。对一个文件描述符进行监控后,只要有可I/O事件发生,那么调用了pollOnce的调用者(如某个线程)将被唤醒,然后就可调用指定的处理者(如回调函数)对到来的数据(若为可读事件的话)进行处理。
Looper提供了addFd函数用于添加需要监控的文件描述符, ...
EventThread线程对VSync的接收
EventThread被设计用来接收VSync事件通知,并分发VSync通知给系统中的每一个感兴趣的注册者。VSync来源自底层硬件驱动程序的上报,对于Android能看到的接口来说,它是来自HAL层的hwc_composer_device的抽象 ...
深入剖析Android系统(基于Google发布的Jelly Bean原始代码,讲述Android系统的内部静态结构关系和内部运行机制,为你呈现原汁原味的Android代码分析大餐!)
杨长刚著
EventThread线程对VSync的分发
前面提到,EventThread在接收到VSync后再将它们分发给感兴趣的注册者,分发的过程是在其线程循环threadLoop函数中完成的。读者也可以先阅读后面一节内容,先了解感兴趣的注册者如何得到VSync通知以及 ...
谁动了我的琴弦——会话劫持
让我们看一个最常见的例子——会话劫持,如图10-2所示。
图10-2 会话劫持说明
如图10-2所示,受害者Alice正常的登录网站为www.buybook.com
身份认证设计的基本准则
- 博客分类:
- Web安全
身份认证设计的基本准则
密码长度和复杂性策略
密码认证作为当前最流行的身份验证方式,在安全方面最值得考虑的因素就是密码的长度。一个强度高的密码使得人工猜测或者暴力破解密码的难度增加。下面定义了高强度密码的一些特性。
(1)密码长度
对于重要的应用,密码长度最少为6;对于关键的应用,密码长度最少为8;对于那些最关键的应用,应该考虑多因子认证系统。
(2)密码的复杂度
保护你的会话令牌
通常我们会采取以下的措施来保护会话。
1.采用强算法生成Session ID
正如我们前面用Web Scrab分析的那样,会话ID必须具有随机性和不可预测性。一般来说,会话ID的长度至少为128位。下面我们就拿常见的应用服务器Tomcat来说明如何配置会话ID的长度和生成算法。
首先我们找到{TOMCAT_HOME}\conf\context.xml,然后加入下面一段设置
<Manager sessionIdLength="20"
Windows UI的设计理念
- 博客分类:
- Windows
Windows UI的设计理念由最核心的五个原则组成,它们是:
●
简洁与快速(clean, light, open, fast)
●
注重排版和布局(celebrate typography)
●
内容重于形式(content before chrome)
●
生动而有灵魂(alive& in motion)
●
返璞归真(authentically digital)
当然以上这些设计理念在不同的软件产品中会有一些不同的具体表现形式,根据产品特性不同、应用场景不同而表现出不同的侧重点及具体特性。但是核心的理念特征却一直保持统一,那就是“内容重于形式”。
1 ...
Windows UI 的发展历程
- 博客分类:
- Windows
<!--[if !supportLists]-->1.
<!--[endif]-->设计背景
(见图1-2)
Windows UI最早出现在微软电子百科全书95,随后在Windows XP的Windows Media Center中有所体现,它有利于以文字为主的界面导航。2006年著名的Zune播放器开始使用类似Windows UI的设计风格,Zune的桌面客户端程序的清爽排版和设计给用户带来了耳目一新的冲 ...
云计算:大数据时代的系统工程(三)
- 博客分类:
- 云计算
我们每个人都同时存在于多个组织结构之中,要承担着不同的角色分工。为了达成一个统一的目标,所谓“组织”必须考虑如何合理、有效地进行规划、分工、协调、制衡等,以期顺利达成目标。
云计算创新性地将大量计算资源组织在一起,协同工作,意味着云计算必须在信息技术的层面,给出一种针对大规模系统的科学管理办法。我们已知面对大规模系统时,单纯人工管理的无力,于是云计算采取了一种自动化管理的办法,即机器管理机器。这意味着在一个大的数据中心里,只需少数人员的巡视就能完成所有的日常维护工作。
美国管理学教授斯蒂芬·罗宾斯将管理描述为“一个协调工作活动的过程,以便能够有效率和有效果地同别人一起或通过别人实现组织 ...
云计算:大数据时代的系统工程(二)
- 博客分类:
- 云计算
从目前来看,如果我们想要完整的认知云计算,应该从“服务”和“平台”两面去理解,即云计算涵盖云计算平台和云计算服务这两个概念。
如前所述,云计算服务代表一种新的商业模式,对于任何一种商业模式而言,除了 ...
云计算:大数据时代的系统工程
- 博客分类:
- 云计算
很多人觉得云计算应该是个具体的事物,所以初听到云计算时,总会先问一句:“什么是云计算”?
什么是云计算?问的人轻松,回答的人却很费力,仿佛描绘一种味觉,感觉强烈,却不知如何抓住要领呈给面前的人看个仔 ...