自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (8)
  • 收藏
  • 关注

原创 #########

BluetoothService.java

2014-04-14 13:48:32 874

转载 ubuntu挂载网络共享

比如:假定您的网络连接已经正确设定好网络主机的 IP: 192.168.0.1网络主机的使用者名称: myusername网络主机的登录密码: mypassword分享中的目录名称: linux主机上要挂载的目录: /media/sharenameTo mount network folder要挂载网络共享目录时 sudo mkdir /media/shar

2013-08-05 22:01:34 1117

转载 实战Linux Bluetooth编程(三) HCI层编程

实战Linux Bluetooth编程(三) HCI层编程(2009-06-19 12:59:37)转载▼http://blog.sina.com.cn/s/blog_645b74b90101e74f.html标签:it分类: Bluetooth作者:Sam (甄峰) [email protected](HC

2013-07-05 16:49:33 1047

转载 android framework audiofocus机制

android framework audiofocus机制(2012-11-23 21:18:11)转载▼http://blog.sina.com.cn/s/blog_645b74b90101e74f.html数据结构AudioService中维护了一个栈:Stack mFocusStack栈里面的记录FocusStackEntry定义如下:   

2013-07-05 16:47:00 1213

转载 移动开发:Android Media (Audio) Framework Analyse

移动开发:Android Media (Audio) Framework Analyse[ 来源:CSDN | 作者:CSDN | 时间:2013-1-5 | 去论坛]Copyright:http://blog.csdn.net/myzhzygh/article/details/74296871 Android多媒体框架结构And

2013-07-05 16:45:13 751

转载 Android开发:关于Android Settings中的八个问题

Android开发:关于Android Settings中的八个问题2013年05月17日 11:05    供稿中心: 互联网运营部摘要: Android开发:关于Android Settings中的八个问题 - Lefter本问将回答以下八个问题,如有错误,敬请批评指正,不胜感激!(注:本文中的Settings解析基于andr

2013-07-05 16:43:15 835

转载 字符设驱动

从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。提醒一点,udev是应用层的,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用device_create创建对应的设备。大致用法如下:struct class *m

2013-07-01 16:21:01 583

转载 spink_lock

spink_lock各个变种的区别:1.有些情况下需要在访问共享资源时必须中断失效,而访问完后必须中断使能,这样的情形使用spin_lock_irq和spin_unlock_irq最好;2.spin_lock_irqsave保存访问共享资源前的中断标志,然后失效中断;spin_unlock_irqrestore将恢复访问共享资源前的中断标志而不是直接使能中断;3.如果被保护

2013-07-01 15:53:54 788

原创 BT 协议调用流程

android 4.2后的BT协议由原来的bluze更换成了brodcom的协议,代码路径:external/bluetooth/bluedroid/ 该协议与android framework层是通过JNI来相互调用    android的大部份BT协议或功能都在Bluetooth.apk中实现    源码路径:packages/apps/Bluetooth    JNI

2013-06-25 14:05:52 2047

原创 C调用C++接口

在android系统中C++层可通过以下接口输出调用栈:android::CallStack stack;stack.update();stack.dump(""); 但是如果在调用C层(linux用户空间)代码,如果也想使用C++层CallStack类的接口来输出调用栈,则需要做出以下修改:1:修改CallStack源文件     主要是将相关接口封装成一个C程序可调

2013-06-25 13:35:28 1796

转载 右左法则

规则中符号:  *  读作“指向...的指针”    []   读作“...的数组”    ()  读作“返回...的函数” 1. 起始点 : 找到声明中的标识符,它就是你分析的起始点,读作:“$(Identifier)是...”; 2. 看你的标识符右边: a)发现“()”,这是一个函数声明,这时你可以说“是返回...的函数”;  b)发现“[]”,这是一个数组声明,

2013-06-10 21:58:36 618

转载 JAVA

域域就是范围的意思 例{}之间,称为一块域,用来描述变量适用范围,全局变量的域是整个类,局部变量只适用于他所在的{}之间。 接口中的域是指: 显式声明的 public final static String NAME;//变量 隐式声明的 String NAME;//变量 接口中的变量默认是public final static 的,因此在interface中声明的变量

2013-06-05 20:46:48 543

转载 关于android性能,内存优化

关于android性能,内存优化 转自(http://www.starming.com/index.php?action=plugin&v=wave&tpl=union&ac=viewgrouppost&gid=74&tid=20713&pg=1)  随着技术的发展,智能手机硬件配置越来越高,可是它和现在的PC相比,其运算能力,续航能力,存储空间等都还是受到很大的限制,同时用户

2013-06-04 21:32:35 706

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

http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777441.html 静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对象间的一种通信机制

2013-05-26 16:10:42 535

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

C/C++中const关键字详解为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下:常变量: const 类型说明符 变量名常引用: const 类型说明符 &引用名常对象: 类名 const 对象名常成员函数:

2013-05-26 15:53:57 966

转载 android SD卡自动挂载

http://www.cnblogs.com/jqyp/archive/2012/01/02/2310077.htmlSD card porting一、进程启动和配置文件的分析  vold的全称是volume daemon。实际上是负责完成系统的CDROM, USB大容量存储,MMC卡等扩展存储的  挂载任务自动完成的守护进程。它提供的主要特点是支持这些存储外设的热插拔。在An

2013-05-08 10:29:07 888

原创 知识点

P帧:http://baike.baidu.com/view/189575.htmandroid surfaceflinger研究----显示系统  http://www.cnblogs.com/armlinux/archive/2012/02/29/2396756.html

2013-05-03 14:57:39 592

原创 MediaPlayerService

MediaPlayerService\frameworks\av\include\media\IMediaPlayerService.h\frameworks\av\media\libmedia\IMediaPlayerService.cpp

2013-04-16 20:07:51 837

原创 a2dp

dfsdfsd\external\bluetooth\bluedroid\audio_a2dp_hw\audio_a2dp_hw.cpp编译生成audio.a2dp.default.so,主要实现a2dp做为设备的功能struct audio_module HAL_MODULE_INFO_SYM = { .common = { .tag = HARDWARE_M

2013-04-16 12:37:04 6074 1

原创 audio

Android4.1 中出现了一个新的类,BinderService,所有的Native Service 都会继承这个类。class BinderService{public: static status_t publish(bool allowIsolated = false) { sp sm(defaultServiceManager());

2013-04-16 10:04:29 1353

转载 binder

Binder        在 linux 中,进程间的通讯机制有很多种,例如管道(pipe)、消息队列(message queue)、信号(signal)、共享内存(share memory)、套接字(socket)等方式,他们都是可以实现进程间通讯。但是,在 Android 终端上的应用软件的通信几乎看不到这些 IPC 通信方式,取而代之的是 Binder。Android 同时为

2012-12-03 16:24:22 628

转载 linux 内核引用计数

Linux内核里的“智能指针”2010-12-02 22:22 by wwang, 11973 阅读, 14 评论, 收藏,编辑众所周知,C/C++语言本身并不支持垃圾回收机制,虽然语言本身具有极高的灵活性,但是当遇到大型的项目时,繁琐的内存管理往往让人痛苦异常。现代的C/C++类库一般会提供智能指针来作为内存管理的折中方案,比如STL的auto_ptr,Boost的Smart

2012-12-03 14:18:07 2539

转载 linux异步信号handle浅析

在初学linux编程的时候,一直觉得异步信号handle是个很神奇的东西,用户程序可以使用singal之类的系统调用为某某信号注册一个信号处理函数(handle函数)。程序的二进制代码在内存中都有着确定的执行流程,为什么收到异步信号以后,程序会被“中断”,然后跳转到这个handle函数里面去运行呢?内核怎么有能力让程序做这样的跳转呢,总不可能临时修改程序的可执行代码吧?后来学习了一些内核知

2012-12-03 13:19:22 601

转载 linux API

stat函数讲解表头文件:    #include              #include 定义函数:    int stat(const char *file_name, struct stat *buf);函数说明:    通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值:      执行成功则返回0,失败返回-1,错误代码存于er

2012-12-03 11:28:35 600

转载 Linux中link,unlink,close,fclose详解

每一个文件,都可以通过一个struct stat的结构体来获得文件信息,其中一个成员st_nlink代表文件的链接数。       当通过shell的touch命令或者在程序中open一个带有O_CREAT的不存在的文件时,文件的链接数为1。       通常open一个已存在的文件不会影响文件的链接数。open的作用只是使调用进程与文件之间建立一种访问关系,即open之后返回fd,调

2012-12-03 10:34:55 645

原创 android EVENT

linux/input.h中有定义,这个文件还定义了标准按键的编码等  struct input_event {  struct timeval time; //按键时间  __u16 type; //类型,在下面有定义  __u16 code; //要模拟成什么按键  __s32 value;//是按下还是释放  };type: EV_SYN:同步EV_KEY

2012-11-29 12:51:57 940

原创 Android 增加LOG

Android.mk中 增加include $(CLEAR_VARS)LOCAL_LDLIBS := -lm -llog注意:LOCAL_LDLIBS := -lm -llog要放在include $(CLEAR_VARS)之后 C++或C文件中增加 #define LOG_TAG "Mfgbridge:"#include #define BLUZ_LOGW(.

2012-10-26 10:42:27 479

转载 DOS

DOS集锦 2012-03-26 11:34:22标签:字母学习 特殊符号 解释器 字符串 dos  进来学习批出理积累了一些经验,与大家共同分享!!希望游客在发现错误的时候及时提醒!!谢谢!! 1、REM 和 ::或:+REM为注释命令,一般用来给程序加上注解,该命令后的内容不被执行,但能回显。注意:第一, 任何以冒号:开头的字符行, 在批

2012-10-17 10:41:22 1522

原创 内核代码网站

http://www.oschina.net/code/explore/pf-kernel/drivers/mmc/core/bus.h

2012-09-07 09:52:51 548

转载 Android USB VID PID 及 ADB

在 android 设备的 Linux 内核中把 USB 驱动的 PID VID 修改以后,也许之前的 adb 工具就不能识别设备了,会打印出 "device not found" 的提示,特别是 windows ,adb 驱动也不能用了。这个时候该怎么办呢?一,先搞清现在的 PID ,VID 为多少,例如分别为 aaaa、bbbb(十六进制)      对于 linux 如 ubun

2012-07-25 15:57:39 6531

转载 USB之枚举

一,概述现在很多的主控上都带有USB的功能,但是对于初学者来说,这方面应用还是比较棘手,因为usb的不但固件程序需要编写,PC端的驱动也要编写,而且驱动写好了还要写个上位机才能看出效果。这样调试起来十分困难,建议从USB的键盘,鼠标开始做,了解清楚了,再做自己的协议就比较简单了。USB的概念历史啥的这里就不说了。我们先不管具体的数据包格式,这一节先从整个包的层面上简单的说,过程是这样的,

2012-07-17 09:19:58 1509

原创 驱动笔记

FIQ和IRQ区别  向量中断控制器VIC具有32个中断请求输入,可将其编程分为3类,FIQ,向量IRQ和非向量IRQ。FIQ快速中断请求要求具有最高优先级。如果分配给FIQ的请求多于一个,VIC将中断请求相或后向ARM处理器产生FIQ信号。当只有一个中断被分配为FIQ时可实现最短的FIQ等待,但如果分配给FIQ级的中断多于1个,FIQ服务程序需要读取FIQ状态寄存器来识别产生中断请求

2012-06-07 21:00:24 870

转载 Linux知识点

1) Linux中主要有哪几种内核锁?2) Linux中的用户模式和内核模式是什么含意?3) 怎样申请大块内核内存?4) 用户进程间通信主要哪几种方式?5) 通过伙伴系统申请内核内存的函数有哪些?6) 通过slab分配器申请内核内存的函数有?7) Linux的内核空间和用户空间是如何划分的(以32位系统为例)?8) vmalloc()申请的内存有什么特点?9) 用户

2012-06-05 21:56:00 1753 1

转载 驱动习题

1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)    #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL  我在这想看到几件事情:  1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)  2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有

2012-06-05 21:55:16 609

转载 Linux内核2.6的进程调度系统介绍

Linux是多任务抢占操作系统,多任务就是指多个进程间通过分时切换来并发执行。非抢占的系统是对每个进程而言,除非时间片用完或主动放弃否则不会被剥夺CPU,主动放弃包括调用一些调度的系统调用(比如sched_yield)或者调用IO等阻塞操作。 Linux是多任务抢占操作系统,多任务就是指多个进程间通过分时切换来并发执行。非抢占的系统是对每个进程而言,除非时间片用完或主动放弃否则不会被剥夺C

2012-06-01 21:21:50 511

转载 Linux内核的同步机制

摘要:本文详细的介绍了Linux内核中的同步机制:原子操作、信号量、读写信号量和自旋锁的API,使用要求以及一些典型示例。标签:Linux一、引言在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上,更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问。

2012-06-01 21:19:01 351

转载 Linux driver编写思考

如果是先有 device ,那么匹配就是通过遍历 bus 上的 driver 来进行的,反之就是通过遍历 bus 上的设备进行的,而匹配的前提就是设备已经注册,并且符合这个家族的族规,而族规通常是由 bus 的 match 函数来控制......AD: linux 下面对 driver 的定义:struct device_driver {cons

2012-06-01 21:14:25 889

转载 从开发者的角度学习Linux内存管理

在Linux开发的过程中对于内存的开发是有很多技巧可以掌握的。下文中就从开发者的角度去看如何进行Linux内核的管理。下文结合实例向大家介绍系统进程与内存之间的微妙关系。 内存管理一向是所有操作系统书籍不惜笔墨重点讨论的内容,无论市面上或是网上都充斥着大量涉及内存管理的教材和资料。因此,我们这里所要写的Linux内存管理采取避重就轻的策略,从理论层面就不去班门弄斧,贻笑大方了。我们最想做的

2012-06-01 21:09:44 524

转载 LINUX总结

发表于 2011-02-09 10:33:32 |只看该作者|倒序浏览<!--.pcb {margin-right:0}-->·linux设备驱动归纳总结(一):内核的相关基础概念·linux设备驱动归纳总结(二):模块的相关基础概念·linux设备驱动归纳总结(三):1字符型设备之设备申请·linux设备驱动归纳总结(三):

2012-05-31 21:15:50 514

转载 SD卡操作

初始化:1、初始化读写SD卡的硬件条件(spi接口和其他有用的管腿,如写保护)2、上电延时过程3、复位卡CMD04、激活卡,内部初始化并获取存储卡的类型     CMD1,CMD55,ACMD415、查询OCR,获取卡供电情况CMD586、是否使用CRC    CMD597、设置读、写块数据长度,512B,CMD168、读取CSD,获取存储卡的其他参数信息。

2012-05-30 21:23:19 1834

驱动笔记总结

C语言相关经典试题,C语言知识总结,LINUX驱动相关知识点说明.

2012-06-19

C语言知识点

C语言常用算法总结,C语言编程规约,C语言编程技巧,C语言中数组与指针的使用技巧

2012-06-06

SD卡插拔卡检测过程的代码分析

SD卡插拔卡检测过程的代码分析,SD驱动注册流程。

2012-05-28

Android驱动例子(LED灯控制)

本例子,讲述在Android2.1上完全自已开发一个驱动去控制硬件口并写应用测试该驱动,通过这样一个例子,解析android下的驱动开发流程的应用调用流程,可以说是很好的入门引导 要达到的效果:通过Android的应用,调用驱动程序,在开发板上控制4个LED的亮灭。

2011-12-11

android hal层GPS研究总结 -2011

timestamp时间戳是一个64位的无符号的整数。它原本的定义是,UTC时间从1970年01月01日00:00:00至现在的秒数。但是在android的Java语言中Date的构造函数必须输入毫秒值,但得到的十进制是秒,所以要乘以1000。

2011-12-08

Android驱动开发实例

1:Android通过JNI调用驱动程序(完全解析实例) 2:Android驱动开发入门及手机案例开发分析.pdf 3:android_hal.pdf 4:Android通过JNI调用驱动程序(完全解析实例)

2011-12-08

android hal层GPS研究总结

android hal层GPS研究总结 timestamp时间戳 是一个64位的无符号的整数。它原本的定义是,UTC时间从1970年01月01日00:00:00至现在的秒数。但是在android的Java语言中Date的构造函数必须输入毫秒值,但得到的十进制是秒,所以要乘以1000。

2011-12-08

空空如也

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

TA关注的人

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