移动设计

移动设计(淘宝移动应用先驱团队,数年交互设计经验和盘托出,全新解读移动设备用户体验!) 傅小贞胡甲超郑元拢著 ISBN 978-7-121-20486-9 2013年7月出版 定价:69.00元 340页 16开 编辑推荐     淘宝移动设计专家潜心力作,倾情分享数年交互设计经验。     作者结合大量实际项目案例,从特征、原则、框架、细节、动效、适配、创新、工具几个角...
阅读(1285) 评论(0)

爱上我的“手机女友”( 教你全面认识智能手机)

爱上我的“手机女友”( 教你全面认识智能手机) 孟瑶等 编著 ISBN 978-7-121-20179-0 2013年6月出版 定价:49.00元 232页 16开 编辑推荐 智能手机的万千应用整合了我们的碎片时间,让我们在小屏幕上享受大生活。一部称心如意的手机就想一位合适伴侣,不但在生活上能为你嘘寒问暖、关爱体贴,在感情上与你敞开心扉、奉献青春...
阅读(1500) 评论(0)

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

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

Looper中的消息队列处理机制

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

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

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

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

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

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

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

EventThread线程对VSync的接收

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

EventThread线程对VSync的分发

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

深入剖析Android系统

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

用于处理分数的Objective-C类

现在,我们将用Objective-C定义一个实际的类,并学习如何使用类的实例。 同样,我们将先学习过程。因此,实际的程序范例可能不是特别实用,那些更加实际的内容将在稍后讨论。 假设要编写一个用于处理分数的程序,可能需要处理加、减、乘、除等运算。如果你还不知道什么是类,那么可以从一个简单的程序开始,代码如下: 代码清单3-1 // 采用分数的简单程序   #import...
阅读(972) 评论(0)

数据类型和常量

你已经遇到过Objective-C的基本数据类型int。回顾一下,声明为int类型的变量只能用于保存整型值,也就是不包含小数位数的值。 Objective-C还提供了另外3种基本数据类型:float、double和char。声明为float类型的变量可以存储浮点数(即包含小数位数的值)。double类型和float类型一样,通常,前者表示的范围大约是后者的两倍。char数据类型可存储单个字符,例...
阅读(1327) 评论(0)

实例变量的访问及数据封装

你已经看到处理分数的方法如何通过名称直接访问两个实例变量numerator和denominator。事实上,实例方法总是可以直接访问它的实例变量的。然而,类方法则不能,因为它只处理本身,并不处理任何类实例(仔细想想)。但是,如果要从其他位置访问实例变量,例如,从main函数内部来访问,该如何实现?在这种情况下,不能直接访问这些实例变量,因为它们是隐藏的。将实例变量隐藏起来的这种做法实际上涉及一个关...
阅读(1063) 评论(0)

Objective-C的算术表达式

在Objective-C中,事实上与所有的程序设计语言一样,在两个数相加时使用加号(+),在两个数相减时使用减号(-),在两个数相乘时使用乘号(*),在两个数相除时使用除号(/)。这些运算符称为二元算术运算符,因为它们运算两个值或项。 运算符的优先级 你已经看到如何在Objective-C中执行简单的运算,例如,加法。下面的程序进一步说明了减法、乘法和除法运算。在程序中执行的最后两个运算引入了...
阅读(2412) 评论(0)

Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划

前面我们从Android应用程序与SurfaceFlinger服务的关系出发,从侧面简单学习了SurfaceFlinger服务。有了这些预备知识之后,我们就可以从正面来分析SurfaceFlinger服务的实现原理了。SurfaceFlinger服务负责管理系统的帧缓冲区设备,并且负责渲染系统的UI,即各个应用程序的UI。在本文中,我们就简要介绍SurfaceFlinger服务,并且制定学习计划。...
阅读(912) 评论(0)
45条 共3页首页 上一页 1 2 3 下一页 尾页
    个人资料
    • 访问:3731031次
    • 积分:54808
    • 等级:
    • 排名:第57名
    • 原创:1454篇
    • 转载:83篇
    • 译文:1篇
    • 评论:3719条
    博客专栏
    最新评论