摘要:大 家有或经常碰到OOM的问题,对吧?很多这样的问题只要一出现相信大家的想法跟小马的一样,就是自己的应用:优化、优化、再优化!而且如果出现类似于 OOM这样级别的问题,根本就不好处理,LogCat日志中显示的信息仅仅是OOM,并不会给你提示如何解决的方法或思路,因为引起OOM的原因是你应用 的问题,不是系统问题!应该想下,在优化之前找到需要优化的地方,再去做优化操作不是更直接吗?相信大多数朋友应该经常听过或使用Jnuit调试吧,好 了,废话不多说,今天小马就跟大家一起来学习总结下OOM的调试方法,来找到需要优化的地方,要知道OOM也是可以一步步调试的:首先,先一起来做些小小的知识铺垫: An. 阅读全文
(转)linux下bluetooth编程(八)SDP层编程
2012-10-16 18:53 by ...平..淡..., 619 阅读, 0 推荐, 收藏, 编辑
摘要:BlueZ提供的SDP API,常见的如下:1.sdp_session_t *sdp_create(int sk, uint32_t flags)参数1:sk: socket参数2:SDP flags. 取值如下:#define SDP_RETRY_IF_BUSY0x01#define SDP_WAIT_ON_CLOSE0x02#define SDP_NON_BLOCKING0x04创建一个新的Session为了异步查找。Session结构如下:typedef struct {int sock;int state;int local;int flags;uint16_t tid;// Curr 阅读全文
(转)linux下bluetooth编程(七)SDP协议
2012-10-16 18:50 by ...平..淡..., 604 阅读, 0 推荐, 收藏, 编辑
摘要:Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。这个协议定义了客户如何能够寻找基于特定属性的服务而不让客户知道可用服务的任何知识。SDP提供发现新服务的方法,在当客户登录到正在操作的蓝牙服务器的一个区域时是可用的。Service discovery机制提供client应 阅读全文
(转)linux下bluetooth编程(六)L2CAP层编程实例
2012-10-16 18:49 by ...平..淡..., 893 阅读, 0 推荐, 收藏, 编辑
摘要:例一:发送Signaling Packet:Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.多个Command可以在一个C-frame(control frame)中发送。如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identifier等。以下是一个发送signaling Command以及接收Response的简单例子:int main(int argc, char** arg 阅读全文
(转)linux下bluetooth编程(五)bluetooth与socket
2012-10-16 18:47 by ...平..淡..., 461 阅读, 0 推荐, 收藏, 编辑
摘要:一:理解Socket:在使用手机与女朋友联系时,必须用手机拨她的号码,然后心情坎坷的等待她的应答。当双方通话时,就建立了一个具有两个端点的通信线路。Linux中的Socket与电话非常相似。具体问题,稍后再分析。二:Socket域(domain),类型(type),协议(protoclo)以及Bluetooth中的具体使用:Berkeley小组在构思BSD Socket时,TCP/IP协议也还处在发展之中,其他一些很有竞争力的协议如X.25等也在发展,其它很多协议还在构思与研究阶段(Bluetooth还没出生)。为了使Socket可以应用于各种不同协议,domain的作用就在于此。domain 阅读全文
(转)linux下bluetooth编程(四)L2CAP层编程
2012-10-16 18:46 by ...平..淡..., 679 阅读, 0 推荐, 收藏, 编辑
摘要:一:L2CAP协议简介:Logical Link Control and Adaptation Protocol(L2CAP)逻辑连接控制和适配协议(L2CAP)为上层协议提供面向连接和无连接的数据服务,并提供多协议功能和分割重组操作。L2CAP充许上层协议和应用软件传输和接收最大长度为64K的L2CAP数据包。 L2CAP基于通道(channel)的概念。通道(Channel)是位于基带(baseband)连接之上的逻辑连接。每个通道以多对一的方式绑定一个单一协议(single protocol)。多个通道可以绑定同一个协议,但一个通道不可以绑定多个协议。每个在通道里接收到的L2CAP数据. 阅读全文
(转)linux下bluetooth编程(三)HCI层编程
2012-10-16 18:45 by ...平..淡..., 1068 阅读, 0 推荐, 收藏, 编辑
摘要:1. HCI层协议概述:HCI提供一套统一的方法来访问Bluetooth底层。如图所示:从图上可以看出,Host Controller Interface(HCI)就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。在Host这一端:application,SDP,L2cap等协议都是软件形式提出的(Bluez中是以kernel层程序)。在Module这一端:Link Manager, BB, 等协议都是硬件中firmware提供的。而HCI则比较特殊,它一部分在 阅读全文
(转)linux下bluetooth编程(二)blueZ协议栈
2012-10-16 18:44 by ...平..淡..., 1048 阅读, 0 推荐, 收藏, 编辑
摘要:Linux下开放的蓝牙协议栈主要包括IBM公司的BlueDrekar,Nokia公司的Affix, Axis公司的OpenBT和官方协议栈BlueZ。我们主要对Bluez进行探讨。 BlueZ基础代码均是由Maxim Krasnyansky完成的。包括:HCI,L2CAP,RFCOMM和基本socket的实现。他就职于Qualcomm(高通)。Marcel Holtmann开发层的协议和应用,包括:BNEP, CMTP等。当然,这些中也有Maxim Krasnyansky的参预。有部分代码由Nokia提供的。Bluez是如何实现Bluetooth协议栈的呢? 它分2部分实现: 1.Kernel 阅读全文
(转)linux下bluetooth编程(一)基础概念
2012-10-16 18:42 by ...平..淡..., 1624 阅读, 0 推荐, 收藏, 编辑
摘要:一:Bluetooth基本概念: Bluetooth是爱立信、诺基亚、东芝、IBM和Intel 5家公司在1998年联合推出的一项无线网络技术。其宗旨是提供一种短距离、低成本的无线传输应用技术。在行业协会筹备阶段,需要一个极具有表现力的名字来命名这项高新技术。行业组织人员,在经过一夜关于欧洲历史和未来无限技术发展的讨论后,有些人认为用Blatand国王的名字命名再合适不过了。Blatand国王将现在的挪威,瑞典和丹麦统一起来;就如同这项即将面世的技术,将标准不一的短距离无线传输技术统一起来。Intel负责半导体芯片和传输软件的开发,爱立信负责无线射频和移动电话软件的开发,IBM和东芝负责笔记本 阅读全文
(转)Linux下Bluez的编程实现
2012-10-16 18:40 by ...平..淡..., 3613 阅读, 0 推荐, 收藏, 编辑
摘要:蓝牙的各个协议栈的简介21.1、蓝牙技术21.1、蓝牙协议栈21.2、蓝牙技术的特点41.2.1、蓝牙协议栈体系结构41.2.2、蓝牙协议栈低层模块51.2.3、软件模块51.3、蓝牙的一些Profile 62、Bluez和D-Bus 82.1、Bluez和D-Bus体系结构82.2、D-Bus介绍102.3、Bluez的安全接口142.4、Bluez适配器接口192.5、Bluez配对192.6、Bluez绑定203、Bluez编程实现213.1、蓝牙开发关键技术剖析213.1.1、连接机制分析213.1.2、自动连接213.1.3、时钟设计223.1.4、配对列表管理233.1.5、蓝牙文 阅读全文