- 博客(8)
- 资源 (6)
- 收藏
- 关注
原创 一、Bluetooth Native层与协议栈的接口及其初始化过程
首先看一下Native层与协议栈的架构图:Bluetooth模块的Native代码位于packages/apps/Bluetooth/jni文件夹下,编译时生成libbluetooth_jni.so动态库文件,最终在image中的位置是/system/lib/libbluetooth_jni.so。1 Bluetooth Native层与协议栈的接口及其初始化过程1.1 B
2013-08-19 17:02:05
2826
原创 FM RDS 简介
听的收音,有主要的两种发射方式,分别是FM和AM,其中又以FM的音质为好,并且是立体声,但它的弱点,就是传输的距离太短,而这恰是AM的优势。RDS结合了两者的优势。AF功能根据信号水平,自动在不同频点切换,保证了更好的收听效果和更大的收听范围。通常一个广播电台想扩
2011-10-14 15:50:05
9706
1
转载 android 开机log的制作过程
用图片工具编辑好想要的png之后,保存为logo.png在logo.png所在命令下执行命令:使用ImageMagick自带的convert命令,进行raw格式转换convert -depth 8 logo.png rgb:logo.raw android自带的rgb2565工具,对raw文件进行rle565格式转换$(SRC_HOME)/out/host/linux-x8
2011-06-09 09:38:00
855
原创 线程与内核对象的同步
虽然用户方式的线程同步机制具有速度快的优点,但是它也有其局限性。对于许多应用程序来说,这种机制是不适用的。例如,互锁函数家族只能在单值上运行,根本无法使线程进入等待状态。可以使用关键代码段使线程进入等待状态,但是只能用这些代码段对单个进程中的线程实施同步。还有,使用关键代码段时,很容易陷入死锁状态,因为在等待进入关键代码段时无法设定超时值。 内核对象机制的适应性远远优于用户方式机
2008-07-24 15:30:00
669
原创 线程同步
用户方式中的线程同步一、原子访问:互锁的函数家族原子访问:线程在访问资源时能够确保所有其他线程都不在同一时间内访问相同的资源。使一个变量的值递增,返回初始值:LONG InterlockedExchangeAdd(PLONG plAddend, LONG lIncrement);注意:第二个参数传递一个负值将减去一个值。用第二个参数中传递的值来取代第一个参数中传递
2008-07-24 15:28:00
455
原创 线程调度
一、暂停计数在线程内核对象的内部有一个值,用于指明线程的暂停计数。当调用CreateProcess或CreateThread函数时,就创建了线程的内核对象,并将暂停计数初始化为1,防止被CPU调度。在线程初始化好之后,如果有CREATE_SUSPENDED标志,就退出创建函数。否则,将暂停计数递减为0.二、恢复运行 DWORD ResumeThread(HANDL
2008-07-24 15:25:00
761
原创 线程基础知识
一、进程由两部分组成,一个是进程内核对象,另一个是地址空间。同样线程也是由两部分组成的:一个是线程的内核对象,另一个是线程堆栈。二、线程的进入点函数每个线程必须拥有一个进入点函数,线程从这个进入点开始运行。主线程的进入点函数:即main、wmain、WinMain或wWinMain。辅助线程的进入点函数的原型: DWORD WINAPI ThreadFunc(PVOID pvPa
2008-07-24 15:16:00
434
原创 Linux 时间和日期专题
时间通过一个预定义的类型time_t来处理,以秒来计算日期和时间的长整型。与处理时间的函数一起定义在time.h中。 time_t time(time_t *tloc); 得到底层的时间值,如果tloc不为空,同时会把返回值写入tloc指针指向的位置。 double difftime(time_t time1, time_
2008-07-23 10:15:00
561
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅