Android中native进程内存泄露的调试技巧

Android中native进程内存泄露的调试技巧 红狼博客 代码基于Android2.3.x版本 Android为Java程序提供了方便的内存泄露信息和工具(如MAT),便于查找。但是,对于纯粹C/C++ 编写的natvie进程,却不那么容易查找内存泄露。传统的C/C++程序可以使用valgrind工具,也可以使用某些代码检查工具。幸运的是,Google的bionic库为我们查找内存泄露...
阅读(2957) 评论(0)

Looper中的消息队列处理机制

Looper中的消息队列处理机制 Looper也提供了消息的定义、消息的发送、消息的处理者的自定义和消息队列。在其头文件Looper.h中,定义了消息结构体Message,它只有一个类型成员,Message的定义如下(见文件Looper.h,下同): 消息的处理者可由MessageHandler进行处理: 使用者可通过派生出子类来扩展消息。对消息的处理,需要在MessageHan...
阅读(1608) 评论(0)

《深入剖析Android系统》第9章RIL补充配图

《深入剖析Android系统》第9章RIL补充配图 《深入剖析Android系统》一书中第9章的RIL部分的函数层层调用,可以用插图的方式标示出主要的调用关系。由于插图较大,不适合16开的书籍尺寸大小,故未将相关插图放到《深入剖析Android系统》一书中。读者在阅读该章内容时,可以在电脑上放大插图来查看函数的调用关系。注:这些插图绘制于2009年,基于Android的Cupcake版本,但...
阅读(1162) 评论(0)

Looper中的睡眠等待与唤醒机制

Looper中的睡眠等待与唤醒机制 C++类Looper中的睡眠和唤醒机制是通过pollOnce和wake函数提供的,它们又是利用操作系统(Linux内核)的epoll机制来完成的。当被监控的文件(通过epoll_ctl的EPOLL_CTL_ADD添加进去)可I/O时,epoll_wait调用会从睡眠中醒来,这时,可以检查是哪个(或哪些)文件描述符对应的文件可以进行I/O读写了,从而做出进一步处...
阅读(4134) 评论(0)

Looper对文件描述符的监控与处理

Looper对文件描述符的监控与处理 上面提到的管道的读端是一种文件描述符,那么其他的文件描述符,如普通的文件、设备文件和套接字(包括套接字对)等的描述符,都可以被Looper用来监控,实现类似于上面的消息队列的唤醒和处理机制。通常,消息是通过消息队列发送的,也可以通过套接字(比如已建立好连接的套接字)、设备文件来发送;当然,也包括管道。对一个文件描述符进行监控后,只要有可I/O事件发生,那么调...
阅读(1551) 评论(0)

EventThread线程对VSync的接收

EventThread线程对VSync的接收 EventThread被设计用来接收VSync事件通知,并分发VSync通知给系统中的每一个感兴趣的注册者。VSync来源自底层硬件驱动程序的上报,对于Android能看到的接口来说,它是来自HAL层的hwc_composer_device的抽象硬件设备。若硬件不支持,则HWComposer会创建一个线程去模拟产生VSync事件通知。一旦工作起来,V...
阅读(3524) 评论(0)

EventThread线程对VSync的分发

EventThread线程对VSync的分发 前面提到,EventThread在接收到VSync后再将它们分发给感兴趣的注册者,分发的过程是在其线程循环threadLoop函数中完成的。读者也可以先阅读后面一节内容,先了解感兴趣的注册者如何得到VSync通知以及系统中可能存在哪些感兴趣的注册者后,再回来阅读本小节。 感兴趣的注册者首先需要创建到EventThread的连接,这个到EventTh...
阅读(2509) 评论(0)

深入剖析Android系统

深入剖析Android系统(基于Google发布的JellyBean原始代码,讲述Android系统的内部静态结构关系和内部运行机制,为你呈现原汁原味的Android代码分析大餐!) 杨长刚 著 ISBN 978-7-121-19374-3 2013年1月出版 定价:59.00元 464页 16开 编辑推荐 基于Google发布的Jelly Bean原始代码,讲述Android系统...
阅读(1439) 评论(0)

#云端对话——云的那些事#《云计算:大数据时代的系统工程》作者在中关村图书大厦和你面对面

“云端”对话——云的那些事 近些年,只要是技术会议,都少不了“云计算”这个主题,听众却听得“云里雾里”。到底什么是云计算?云计算给业界和我们的生活带来什么翻天覆地的变换?云时代,请听北京“云基地”创始人田溯宁、友友系统CEO姚宏宇和我们分享他们所钟爱的“云”。 讲座主题:云的那些事 时间:2013年1月26日下午13:10—15:00 地点:中关村图书大厦五层多功能厅(北四环西路68号...
阅读(2129) 评论(0)

演讲达人成长记作者1月26日在西单图书大厦做讲座

演讲达人成长记——用身体提升演讲感染力 你是否想自信满满地站在讲台上?你是否想滔滔不绝地发表自己的观点?《演讲达人成长记》,助你早日在讲台上叱咤风云! 讲座主题: 时间:2013年1月26日上午9:45—11:30 地点:西单图书大厦一层东厅 主讲人:程龙 讲座内容: 1、  主要内容: 演讲能力并非与生俱来的,通过锻炼可以不断熟练。一场成功的演讲,除了好的内容之外,还需要哪...
阅读(1719) 评论(0)

谁动了我的琴弦——会话劫持

谁动了我的琴弦——会话劫持 让我们看一个最常见的例子——会话劫持,如图10-2所示。 图10-2 会话劫持说明 如图10-2所示,受害者Alice正常的登录网站为www.buybook.com,此时她的Session ID是1234567,攻击者Bob通过网络嗅探获得了Alice的Session ID和Cookie中的用户登录信息,这样他就可以模仿Alice进行登录和操作了,而此...
阅读(1455) 评论(0)

身份认证设计的基本准则

身份认证设计的基本准则 密码长度和复杂性策略 密码认证作为当前最流行的身份验证方式,在安全方面最值得考虑的因素就是密码的长度。一个强度高的密码使得人工猜测或者暴力破解密码的难度增加。下面定义了高强度密码的一些特性。 (1)密码长度 对于重要的应用,密码长度最少为6;对于关键的应用,密码长度最少为8;对于那些最关键的应用,应该考虑多因子认证系统。 (2)密码的复杂度 有的时候仅有长度...
阅读(1195) 评论(1)

保护你的会话令牌

保护你的会话令牌 通常我们会采取以下的措施来保护会话。 1.采用强算法生成Session ID 正如我们前面用Web Scrab分析的那样,会话ID必须具有随机性和不可预测性。一般来说,会话ID的长度至少为128位。下面我们就拿常见的应用服务器Tomcat来说明如何配置会话ID的长度和生成算法。 首先我们找到{TOMCAT_HOME}\conf\context.xml,然后加入下面一段设置...
阅读(2629) 评论(0)
    个人资料
    • 访问:3642150次
    • 积分:53985
    • 等级:
    • 排名:第57名
    • 原创:1449篇
    • 转载:83篇
    • 译文:1篇
    • 评论:3623条
    博客专栏
    最新评论