自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 wifi---wpa_supplicant相关的博客

http://blog.chinaunix.net/uid-20514606-id-3260320.htmlhttp://blog.csdn.net/gjsisi/article/details/7671182http://blog.csdn.net/zoe6553/article/details/6640330http://w1.fi/wpa_supplicant/w

2012-09-14 18:29:21 663

转载 蓝牙通过obex发送文件的思路

1、实现原理1、1OBEX 协议说明在层次结构的蓝牙协议栈中,对象交换协议OBEX(Object Exchange)是一种面向应用的会话层协议(图1),它运行于蓝牙协议栈的顶部,支持文件传输(File Transfer),对象“推”操作(Object Push Profile),同步(Synchronization)等多种应用,提供了设备间简单易行的对象交换手段。可交换的对象可是文件、图像

2012-08-07 15:57:26 2093

原创 蓝牙开发的一些网站和博客文章地址

http://www.bluez.org/http://www.cnblogs.com/leaven/category/227407.htmlhttps://www.bluetooth.org/Building/HowTechnologyWorks/ProfilesAndProtocols/OBEX.htmhttp://www.eefocus.com/majianhui

2012-08-02 21:13:14 1239

转载 Linux下Bluez的编程实现

Linux下Bluez的编程实现1、蓝牙的各个协议栈的简介.......................................................................................21.1、蓝牙技术.....................................................................

2012-07-16 14:29:51 26330 3

转载 Bluetooth编程(二) BlueZ简介

Linux下Bluetooth协议栈的实现. Linux下开放的蓝牙协议栈主要包括IBM公司的BlueDrekar,Nokia公司的Affix, Axis公司的OpenBT和官方协议栈BlueZ。我们主要面对Bluez来探讨。 BlueZ基础代码均是由Maxim Krasnyansky完成的。包括:HCI,L2CAP,RFCOMM和基本socket的实现。他就职于Qualcomm(

2012-07-13 17:51:24 1904

转载 Bluetooth编程(一) 协议栈概述

一:Bluetooth基本概念: Bluetooth是爱立信、诺基亚、东芝、IBM和Intel 5家公司在1998年联合推出的一项无线网络技术。其宗旨是提供一种短距离、低成本的无线传输应用技术。在行业协会筹备阶段,需要一个极具有表现力的名字来命名这项高新技术。行业组织人员,在经过一夜关于欧洲历史和未来无限技术发展的讨论后,有些人认为用Blatand国王的名字命名再合适不过了。Bla

2012-07-13 17:50:20 1532

转载 Android Obex 规范

Android Bluetooth IntroductionAgenda● Android Bluetooth architecture● Related source code● Init Bluetooth● Connect with other BT devices (dbus)● RFCOMM● OBEX (socket)Android architec

2012-07-06 20:00:45 1776

转载 DBUS基础知识

DBUS基础知识1.  进程间使用D-Bus通信 D-Bus是一种高级的进程间通信机制,它由freedesktop.org项目提供,使用GPL许可证发行。D-Bus最主要的用途是在Linux桌面环境为进程提供通信,同时能将Linux桌面环境和Linux内核事件作为消息传递到进程。D-Bus的主要概率为总线,注册后的进程可通过总线接收或传递消息,进程也可注册后等待内核事件响应,例如等

2012-06-09 17:12:33 672

转载 static的使用

static的使用:用来控制变量的存储方式和可见性 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义一个全局的变量,但定义为一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定

2012-04-20 17:39:32 353

转载 C++标准转换运算符const_cast

C++标准转换运算符const_cast前面讲了C++继承并扩展C语言的传统类型转换方式,最后留下了一些关于指针和引用上的转换问题,没有做详细地讲述。C++相比于C是一门面向对象的语言,面向对象最大的特点之一就是具有“多态性(Polymorphism)”。要想很好的使用多态性,就免不了要使用指针和引用,也免不了会碰到转换的问题,所以在这一篇,就把导师讲的

2012-04-19 15:09:10 409

转载 C++中的位拷贝和值拷贝

C++中的位拷贝和值拷贝说明我们以String类为例:首先定义String类,而并不实现其成员函数。Class String{public:    String(const char *ch=NULL);//默认构造函数    String(const String &str);//拷贝构造函数   ~String(void);   String &

2012-04-11 10:40:57 383

转载 C/C++中volatile关键字详解

C/C++中volatile关键字详解 1. 为什么用volatile?    C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明:A volatile specifier

2012-04-10 15:56:43 576

转载 深层揭密extern "C"

深层揭密extern "C"1. 深层揭密extern "C"    extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的;其次,被它修饰的目标是“C”的。让我们来详细解读这两重含义。(1)被extern "C"限定的函数或变量是extern 类型的;    extern 是C/C++语言中表明函数和全局变量作用范围(可见性)的

2012-04-10 15:54:03 425

转载 C/C++中static关键字详解

C/C++中static关键字详解    静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。    静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对象间的一种通信机制    如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象

2012-04-10 15:50:37 350

转载 C/C++中作用域详解

C/C++中作用域详解    作用域规则告诉我们一个变量的有效范围,它在哪儿创建,在哪儿销毁(也就是说超出了作用域)。变量的有效作用域从它的定义点开始,到和定义变量之前最邻近的开括号配对的第一个闭括号。也就是说,作用域由变量所在的最近一对括号确定。(1) 全局变量:   全局变量是在所有函数体的外部定义的,程序的所在部分(甚至其它文件中的代码)都可以使用。全局变量不受作

2012-04-10 15:49:55 440

转载 C/C++中extern关键字详解

C/C++中extern关键字详解1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。      也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译

2012-04-10 15:48:40 413

转载 _IO, _IOR, _IOW, _IOWR 宏的用法与解析

IOCTL _IO,_IOW,_IOWR  _IO, _IOR, _IOW, _IOWR 宏的用法与解析在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:bit31~bit30 2位为 “区别读写” 区,作用是

2012-04-10 11:04:57 350

转载 堆栈及静态数据区

堆栈及静态数据区转载▼五大内存分区    在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。    栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。    堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要

2012-04-10 09:02:07 492

转载 Workqueue机制的实现

Workqueue机制的实现  Workqueue机制中定义了两个重要的数据结构,分析如下:cpu_workqueue_struct结构。该结构将CPU和内核线程进行了绑定。在创建workqueue的过程中,Linux根据当前系统CPU的个数创建cpu_workqueue_struct。在该结构主要维护了一个任务队列,以及内核线程需要睡眠的等待队列,另外还维护了一个任务上下文,即tas

2012-04-06 21:10:07 437

转载 Linux中等待队列的实现

Linux中等待队列的实现   在软件开发中任务经常由于某种条件没有得到满足而不得不进入睡眠状态,然后等待条件得到满足的时候再继续运行,进入运行状态。这种需求需要等待队列机制的支持。Linux中提供了等待队列的机制,该机制在内核中应用很广泛。       在Linux内核中使用等待队列的过程很简单,首先定义一个wait_queue_head,然后如果一个task想等待某种事

2012-04-06 21:08:51 356

转载 Linux的软中断处理实现

Linux的软中断处理实现 一、概念  首先我们要知道为什么中断需要下半部 。我们可以想象一下,如果没有下半部的概念,一个网卡中断过来了以后会是什么样的情况。首先,我们会从网卡硬件buffer中把网卡收到的packet拷贝到系统内存中,然后对这个packet进行TCP/IP协议栈的处理。我们知道TCP/IP协议栈是一个比较复杂的软件模块,里面对packet的处理会经过非常多的步

2012-04-06 21:07:52 445

转载 Android-binder

Server获得了Service Manager远程接口之后,就要把自己的Service添加到Service Manager中去,然后把自己启动起来,等待Client的请求。MediaPlayerService  继承了--> BnMediaPlayerService类(一个Binder Native类,用来处理Client请求) --> BnInterface类

2012-04-06 15:32:38 1015

转载 游戏动画中欧拉角与万向锁的理解

《3D数学基础:图形与游戏开发 》  1,什么是欧拉角?2,万向锁是一种什么现象?3,游戏动画中遇到万向锁时会发生什么?4,怎样解决万向锁这个问题? 一,什么是欧拉角?     用一句话说,欧拉角就是物体绕坐标系三个坐标轴(x,y,z轴)的旋转角度。在这里,坐标系可以是世界坐标系,也可以是物体坐标系,旋转顺序也是任意的,可以是xyz,xzy,yxz,zxy,

2012-03-29 22:51:07 7285

转载 Android RefBase类(sp,wp)

Android RefBase类(sp,wp)个人觉得sp和wp实际上就是android为其c++实现的垃圾自动回收机制,具体到内部实现,sp和wp实际上只是一个实现垃圾回收功能的接口而已,比如说对*,->的重载,是为了其看起来跟真正的指针一样,而真正实现垃圾回收的是RefBase这个基类。这部分代码的目录在:/frameworks/base/include/utils/RefBase.h

2012-03-28 10:41:49 728

转载 android IPC通信中的UID和PID识别

android IPC通信中的UID和PID识别    IPCThreadState对象维护了2个变量            pid_t               mCallingPid;            uid_t               mCallingUid;    从变量名称来看,这2个变量保存了进程的PID和UID,并且由于这两个变量由IPCThrea

2012-03-28 09:51:18 448

转载 Android锁Wake Lock

Wake Lock是一种锁的机制, 只要有人拿着这个锁,系统就无法进入休眠,可以被用户态程序和内核获得. 这个锁可以是有超时的或者是没有超时的,超时的锁会在时间过去以后自动解锁. 如果没有锁了或者超时了, 内核就会启动休眠的那套机制来进入休眠.(一).内核维护了:1).两个链表,active_wake_locks[WAKE_LOCK_TYPE_COUNT]   active

2012-03-27 10:46:36 576

转载 传感器选用原则

传感器选用原则  现代传感器在原理与结构上千差万别,如何根据具体的测量目的、测量对象以及测量环境合理地选用传感器,是在进行某个量的测量时首先要解决的问题。当传感器确定之后,与之相配套的测量方法和测量设备也就可以确定了。测量结果的成败,在很大程度上取决于传感器的选用是否合理。  1、根据测量对象与测量环境确定传感器的类型  要进行—个具体的测量工作,首先要考虑采用何种原理

2012-03-27 10:32:21 1001

转载 Linux中brk()系统调用,sbrk(),mmap(),malloc(),calloc()的异同

Linux中brk(),sbrk(),mmap(),malloc(),calloc()的异同  brk和sbrk主要的工作是实现虚拟内存到内存的映射.在GNUC中,内存分配是这样的:       每个进程可访问的虚拟内存空间为3G,但在程序编译时,不可能也没必要为程序分配这么大的空间,只分配并不大的数据段空间,程序中动态分配的空间就是从这一块分配的。如果

2012-03-26 22:38:26 18871

转载 加速度计和陀螺仪的区别

加速度计和陀螺仪的区别  这是一篇 diydrones.com 网站上的文章,介绍为什么在无人机自主导航中需要用到加速度计、陀螺仪、磁罗盘计和GPS等传感器(原文地址)。http://www.diydrones.com是个开源的讨论UAV(无人机自主飞行导航器)的社区网站。An accelerometer measures acceleration. A 3-axis accele

2012-03-26 17:33:03 5321

转载 Android Binder IPC分析(精简版)

Android Binder IPC分析1 . binder 通信概述 binder 通信是一种 client-server 的通信结构, 1. 从表面上来看,是 client 通过获得一个 server 的代理接口,对 server 进行直接调用; 2. 实际上,代理接口中定义的方法与 server 中定义的方法是一一对应的; 3.client 调用某个代理接口中

2012-03-26 16:29:10 711

转载 Android-Gsensor屏幕旋转

关于Rotate的实现: 系统启动windowManger.java时,它会启动phoneWindowManager.java,该类有一个内部类myOrientationListener扩展自windowOrientationListener.java。 windowOrientationListener.java是一个辅助类,当device的方向发生变化时,供windowManger

2012-03-26 15:35:13 7073

转载 Android IPC 机制详解:IBinder

http://www.linuxgraphics.cn/android/ipc_ibinder.html  IBinder 接口IBinder接口是对跨进程的对象的抽象。普通对象在当前进程可以访问,如果希望对象能被其它进程访问,那就必须实现IBinder接口。IBinder接口可以指向本地对象,也可以指向远程对象,调用者不需要关心指向的对象是本地的还是远程。

2012-03-26 09:10:51 1330

转载 Quaternion(四元数)和旋转

本文介绍了四元数以及如何在OpenGL中使用四元数表示旋转。Quaternion 的定义四元数一般定义如下: q=w+xi+yj+zk其中 w,x,y,z是实数。同时,有: i*i=-1 j*j=-1 k*k=-1四元数也可以表示为: q=[w,v]其中v=(x,y

2012-03-24 09:39:38 1306

转载 Android深入浅出之Binder机制

Android深入浅出之Binder机制一 说明 Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。我们这里将以MediaService的例子来分析Binder的使用:l         ServiceManager,这是Androi

2012-03-24 09:37:59 632

转载 陀螺仪、加速计、磁力计等传感器汇总

陀螺仪就是内部有一个陀螺,它的轴由于陀螺效应始终与初始方向平行,这样就可以通过与初始方向的偏差计算出实际方向。手机里陀螺仪实际上是一个结构非常精密的芯片,内部包含超微小的陀螺。加速计是用来检测手机受到的加速度的大小和方向的,而手机静置的时候是只受到重力加速度(这个高中学过)的.所以很多人把加速计功能又叫做重力感应功能。磁力计是测试磁场强度和方向的。陀螺仪测量是参考标准是内部中间

2012-03-24 09:29:32 1445

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除