- 博客(43)
- 资源 (1)
- 收藏
- 关注
原创 C++ 返回值优化
1, 示例代码如下:2, GCC默认编译, 结果如下: 可以看到只有一次调用构造函数。3, 为GCC添加-fno-elide-constructors 选项, 这次就出现构造函数被调用了3次。
2016-02-16 17:29:25
590
转载 Android:使用wpa_supplicant和dhcpd简单测试wifi
原文: http://blog.youkuaiyun.com/laojing123/article/details/7719132 Android系统中对于WIFI的设置集成到了“设置”中,其实跟手动设置差不多。这里介绍下如何手动连接WIFI,以方便以后调试WIFI。 第一步要做的就是要加载WIFI模块驱动了。当然如果你的WIFI是编译到内核里面的,就不需要的。我
2015-05-26 14:40:21
4143
转载 Linux PPP实现源码分析
原文链接请参考: http://blog.youkuaiyun.com/osnetdev/article/details/8958058作者:kwest exboy@163.com> 版本:v0.7©所有版权保留转载请保留作者署名,严禁用于商业用途 。 前言:PPP(Point to Point Protocol)协议是一种广泛使用的数据链路层协议
2015-05-21 15:16:11
3011
原创 Android: 3G上网的基本原理及RILD进程的流程分析
简单介绍Android中3G上网的基本框架分析,并描述了RILD进程的时序及流程等。
2015-05-20 17:09:30
2377
原创 设计模式: 命令(command)模式
1,定义:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。此模式也方便实现undo / redo之类的功能。2,类图
2015-05-20 16:52:08
500
原创 设计模式: 单件(singleton)模式(2015-04-29 11:46)
1, 定义:确保一个类只有一个实例,并提供一个全局访问点2,类图3,优点: 提供全局的一个实例; 延迟实例化;(当然也可以在static变量定义的同时创建Singleton的实例)
2015-05-19 15:12:38
583
转载 iptables的相关概念和数据包的流程
原文链接:http://selboo.com/post/721/iptables 相关概念 匹配(match):符合指定的条件,比如指定的 IP 地址和端口。 丢弃(drop):当一个包到达时,简单地丢弃,不做其它任何处理。 接受(accept):和丢弃相反,接受这个包,让这个包通过。 拒绝(reject):和丢弃相似,但它还会向发送这个包的源主机发送错误消息。这个
2015-05-14 11:52:09
616
原创 Android: netd中MDnSdListener的简单介绍
1, 类图2,简介: MDnSdListener与上层NsdService.java 通过socket (名字为"mdns")交互, NsdService会给MDnSdListener发送如下的命令:startMDnsDaemonstopMDnsDaemonregisterServiceunregisterServiceupdateServicediscov
2015-05-14 10:59:21
2323
原创 Android: AudioFlinger中AudioPolicy的简单介绍
1, AudioFlinger的类图2, AudioPolicy相关的序列图
2015-05-13 17:46:58
1681
原创 Android: netd中DnsProxyListener的简单介绍
1,类图2,功能介绍 2.1 DnsProxyListener创建的监听socket名字为 dnsproxyd 2.2 DnsProxyListener负责监听客户端的请求,并经过FrameworkListener的机制,转给对应的Command对象处理(此处只有2种). 而在Command的处理中,其会创建一个新的handler线程,在线程里去完成具体的操作。
2015-05-13 16:44:45
2965
原创 Android: netd中NetlinkManager的简单介绍
1, 类图2,作用NetlinkManager: 接收来自kernel的3中UEVENT消息,并通过command listener转发给Java层的NetworkManagementServiceCommandListener: 向FrameworkListener注册多种command, 接收到java层发送的消息后,派发给对应的command处理。
2015-05-13 16:06:04
2450
原创 Android:wpa_supplicant决定选择哪种驱动
1, main 函数的入口:external/wpa_supplicant_8/wpa_supplicant/main.c2, init.rc中通过参数指定要加载哪个驱动3, wpa_supplicant中加载驱动的原理main.c: main()--> wpa_supplicant.c: wpa_supplicant_add_iface()
2015-05-12 16:13:08
1904
转载 Android WiFi--系统架构
原文链接请参考:http://blog.youkuaiyun.com/myarrow/article/details/8129607/1. 系统架构 Android WiFi系统引入了wpa_supplicant,它的整个WiFi系统以wpa_supplicant为核心来定义上层用户接口和下层驱动接口。整个WiFi系统架构如下图所示: 一切尽在
2015-05-12 15:33:54
625
原创 设计模式:工厂(factory)模式 与 抽象工厂(abstract factory)模式
工厂模式的定义: 定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。 工厂方法让类把实例化推迟到子类。抽象工厂模式的定义:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。工厂模式的类图:抽象工厂模式的类图:说明:此模式很好的说明了OO中的一个原则:“依赖倒置原则”。(这个倒置,
2015-04-30 14:13:25
498
原创 设计模式: 装饰者(decorator)模式
设计原则: 类应该对扩张开发,对修改关闭。定义: 动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。别名: Wrapper注意点:装饰者在所委托被装饰者的行为之前或之后,加上自己的行为,以达到特定的目的。类图:例子: starbuzz中咖啡和饮料的使用。缺点: 可能会造成很多小类。
2015-04-29 11:46:38
458
原创 设计模式:观察者(observer)模式
观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。类图:推模式的类图:拉模式的类图:(推荐:因为无法预测每个观察者到底需要何种数据,也方便增加新数据时,改动最小)注意:有多个观察者时,不可以依赖特定的通知次序。
2015-04-28 13:48:19
488
原创 设计模式: 策略(strategy)模式
策略模式:定义了算法族, 分别封装起来,让它们之间可以互相替换。此模式让算法的变化独立于使用算法的客户。类图:与工厂模式的区别:策略模式相当于测试中的白盒工程模式相当于测试中的黑盒
2015-04-27 16:56:07
398
原创 解决“使用google test做单元测试(unit test)中访问类的私有成员”的几种方法
在使用google test做单元测试(unit test)中,有时候会碰到访问类的私有成员, 本文 只给出了两个常用的方法。
2015-04-10 17:30:26
3609
原创 Android中Framework层条件变量(condition)的使用方法
简单介绍在Android的Framework层, 如何使用条件变量去实现一些等待的操作
2015-04-03 17:31:30
2030
转载 浅析alsa声卡驱动snd_pcm_start函数-将音频数据真实的发送到外部音频接口硬件
转载自链接:浅析alsa声卡驱动snd_pcm_start函数-将音频数据真实的发送到外部音频接口硬件-gliethttp-ChinaUnix博客 http://blog.chinaunix.net/uid-20564848-id-74236.html将音频数据真实的发送到外部音频接口硬件/** * snd_pcm_start - start all linked stre
2015-03-19 17:27:02
4520
原创 Makefile中的几个调试方法
1,使用info/warning/error增加调试信息方法1: $(info, "here add the debug info") 但是此不能打印出.mk的行号方法2: $(warning, "here add the debug info") 方法3: $(error "error: this will stop the compile
2015-03-19 16:22:52
40880
3
原创 解决 repo init时, “gpg: 无法检查签名:找不到公钥”
此问题是由于repo 版本发生变化导致的。只要执行以下操作,再重新repo init就可以了。(此问题与ssh public key没有关系)rm -rf ~/.repoconfig/
2015-03-19 10:33:48
3783
原创 PulseAudio中插件module-loopback的latency延迟的计算方法
module-loopback播放时 ,pulse audio基本的插件连接情况
2015-03-10 15:37:50
2580
原创 PulseAudio 中插件module-loopback的基本分析
1, module-loopback中的类(struct)关系图2, module-loopback中基本的数据流向 sequence diagram
2015-03-10 15:05:36
2528
原创 WireShark 网络封包分析软件
吐槽下PSET公司的网络安全今天偶然使用wireshark(原先似乎叫ethereal), 想看一下底层的协议。竟然发现公司的邮箱访问中需要的用户名和密码都是明文发送的,可悲啊。见下文:
2015-03-04 15:11:52
609
原创 ALSA 中asound.conf 验证采集设备的内容
方法:alsa_aplay -C -D hw:3,0 -c 2 -f S16_LE -r 44100 /data/test.pcm缺陷: 有时候会碰到读取数据为空的情况,比如设备MIC 没有接入 或者其他驱动bug. 这时只能查看文件的大小以确认。而cat 文件内容的方式不太明显。
2015-03-02 16:45:26
497
原创 ALSA 中asound.conf 验证送入播放设备中的数据内容
目的:验证送入alsa 播放设备中的数据的有效性.具体有以下两个case:1, 验证alsa 采集设备的数据内容2, 验证送给alsa播放设备的数据内容方法: 配置 alsa的/etc/asound.conf,并使用alsa util工具测试。例子:asound.conf的例子如下所示:pcm.wqw { type file
2015-03-02 16:06:27
704
原创 C++ Template中的“替换失败并非错误”
在模板中,为了支持函数模板的重载功能,有个特性,叫做 “替换失败并非错误”。英文翻译为 substiutation failure is not an error. 写了以下程序,编译,链接,运行均正常。
2015-02-28 12:02:55
645
原创 Android中AudioFlinger:将AudioTrack从一个device切到另一个device输出的实现逻辑
简单介绍Android AudioFlinger中,如何实现将一个Audio Track数据在不同device设备间的切换。
2015-02-28 10:20:12
2306
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人