自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (16)
  • 收藏
  • 关注

原创 Android key 派发机制笔记

昨天在公司遇到bug,Activity如法接受到触屏点击消息和按键消息。粗略的看了下Android的keyevent的派发机制,发现是被IME拦截处理了,所以不会在给Activity callback。先把简单流程图保存在此,以后有时间在深入学习。

2016-05-19 16:03:09 744

原创 ZeroMQ笔记

Request-Reply模式对于client来说必须严格按照先调用zmq_send()函数,然后调用zmq_recv()函数的顺序来执行对于server来说,执行时序相反如果不按照这个时序来,可能会发生错误,或者信息丢失可以有多个client同时连接到serverPublish-Subscribe模式SUB so

2015-03-18 15:11:32 1064

原创 Android Audio Policy小记

Android的Audio系统分为两大块,一块是audio的策略管理,即Audio Policy模块;一块是AudioFlinger模块,负责和Audio Hardware Module直接交互。本文主要讲解Audio Policy模块的以下知识点:1. audio policy策略文件的加载;2. 创建AudioRecord的时候,如何根据intput source选择合适的devi

2015-03-06 12:30:41 4418

原创 动态库运行时符号解析

现在有如下代码:main.c:#includevoid print() { printf("print in main.c \n");}int main() { func(); return 0;}temp.c:#includevoid print() { printf("print in temp.c \n");}void f

2015-03-03 15:12:35 1989

转载 How to compile/build QEMU 1.4.0 on Ubuntu 12.04

Download QEMUThe sources can be found here: http://wiki.qemu-project.org/download/qemu-1.4.0.tar.bz2wget http://wiki.qemu-project.org/download/qemu-1.4.0.tar.bz2Install dependenciesThis is

2015-02-12 16:02:48 786

原创 MediaPlayer UML图

2014-12-22 10:51:01 3253 3

原创 Android init.rc

1.init.rc中Service启动的几种方式

2014-10-21 17:13:08 744

原创 Android JNI局部引用表

1.什么是JNI局部引用表?JNI局

2014-08-22 08:44:21 1269

翻译 理解got和plt

理解elf的got和plt

2014-06-18 20:55:12 2860

原创 Android native层动态库注射

Android native 动态库注射,钩子函数的实现。

2014-06-18 09:08:37 2370

翻译 Tasks and Back Stack

Android Tasks and Back Stack

2014-06-12 11:51:26 924

翻译 Styles and Themes

Styles and Themes

2014-06-11 17:10:12 1223

翻译 Activity属性

Android Activity属性

2014-06-11 16:16:44 1474 1

翻译 OpenMax 初始化和数据流调用时序

OpenMax初始化和数据流的调用时序

2014-06-06 10:37:06 2442

翻译 OpenMax的数据类型

OpenMax的数据类型描述。

2014-06-05 17:37:20 2692 1

原创 Android Cursor浅析

Android Cursor分析

2014-06-05 12:58:10 5355 2

翻译 JNI设计概述

JNI设计翻译

2014-06-04 17:07:40 1227

原创 Android native CursorWindow数据保存原理

Android SQLite数据集buffer实现原理

2014-06-04 10:35:15 5981 1

原创 跟着Android学设计模式:代理(proxy)

Android Context所使用的代理设计模式UML图

2014-06-03 16:52:58 1819

原创 Android SQLiteDatabase分析

SQLiteDatabse UML类图

2014-05-30 17:16:58 1363

原创 Android MTP 文件浏览Demo

Android MTP文件浏览Demo

2014-05-29 15:09:03 2131

原创 MediaProvider 数据库Audio相关表格对应关系

MediaProvider Audio Uri与表格对应关系

2014-05-29 14:42:48 1454

翻译 OpenMAX IL介绍与其体系

OpenMax IL规范翻译

2014-05-26 09:42:16 3858 2

原创 Android MediaPlayer 框架UML图

Android MediaPlayer UML类图

2014-05-20 18:56:29 4377

原创 跟着Android学设计模式:命令模式(command)

首先看看什么是命令模式:1.意图:将一个请求封装成对象,从而使你

2014-05-20 14:28:35 1608

原创 c++类型转换

1.类型准换c++是强

2014-05-19 13:10:58 735

原创 Android sp,wp,RefBase浅析

对于native层new出来的c++对象的生命周期的管理,Android提供了

2014-05-18 19:45:38 1607

原创 Android MediaPlayer 客户端框架以及消息传递

当application需要播放音频或者视频

2014-05-16 17:32:40 1128

翻译 MediaPlayer状态机

Android在SDK中提供了MediaPlayer class用于控制Audio/video/stream的播放。对于Audio的整个控制

2014-05-16 16:16:55 1831

原创 跟着Android学设计模式:工厂方法(Factory method)

阅读Android的优秀源码,能够提高自己的设计能力和

2014-05-15 15:52:18 1257

原创 Android 应用编程基础

1.Android系统是一个多用户的Linux系统,默认情况下,Android系统给每一个app分配一个唯一的

2014-05-15 11:39:05 656

原创 Android AsyncTask 原理浅析

一张图说明AsyncTask的机制原理

2014-05-13 10:14:40 989

原创 Android 进程的重要程度等级划分

1.Foreground process   a.有一个A

2014-05-12 15:50:50 2025

原创 Android Binder 框架

图解Binder架构

2014-05-09 21:37:50 1050

原创 SQLiteDatabase资源释放

SQLiteDatabse是android SDK提供的一个sqlite管理类。用于

2014-05-04 10:01:05 3489

翻译 进程内存布局

每一个进程的虚拟内存空间采取了相似的布局。见下图:High AddressArgs and env vars Stack|V  Unused memory  ^|Heap  Uninitialized Data Segment (bss)exec. Initi

2014-04-16 17:44:40 741

翻译 处理器栈帧布局

函数的调用会导致隐式的内存分配,栈帧就是在

2014-04-16 16:38:46 1031

原创 c++基础知识

1.访问控制C++访问控制符有三个private、protected、public。一个类友元(包含友元函数或者友元类的成员函数或者友元类的所有成员函数)可以访问该类的任何成员(包括成员变量及成员方法)。除去友元外,private成员只有该类自身的成员函数可以访问,protected成员只有该类及其派生类的成员函数可以访问,public成员则该类及其派生类的成员

2013-01-31 17:37:13 667

转载 在笔记本安装Ubuntu11.04增强功能

sudo apt-get install dkms build-essential linux-headers-$(uname -r)sudo /etc/init.d/vboxadd setup

2012-09-29 00:06:19 698

转载 Ubuntu12.04 root用户登录设置

vi /etc/lightdm/lightdm.conf.  修改完的整个配置文件是 [SeatDefaults]greeter-session=unity-greeteruser-session=ubuntugreeter-show-manual-login=true #手工输入登陆系统的用户名和密码allow-guest=false   #不允许guest登

2012-09-28 23:47:43 762

MTP 文件浏览Demo

Android MTP文件浏览。简单的Demo,可以浏览连接到当前设备上的MTP设备文件。

2014-05-29

51单片机TCP/IP源代码

//--------------------------------------------------------------------------- // Net MAIN.C // // 8051 Web Server project // See Makefile for build notes // Written for Keil C51 V5.1 compiler, notes: // It uses big endian order, which is the same as the // network byte order, unlike x86 systems. // Use OPTIMIZE(2)or higher so that automatic variables get shared // between functions, to stay within the 256 bytes idata space //--------------------------------------------------------------------------- #include #include #include "89E564RD.H" #include "net.h" #include "eth.h" #include "serial.h" #include "timer.h" #include "arp.h" #include "tcp.h" #include "http.h" #include "ip.h" // Global variables unsigned int volatile event_word; unsigned char idata debug; unsigned char idata rcve_buf_allocated; char xdata text[20]; // This sets my hardware address to 00:01:02:03:04:05 unsigned char code my_hwaddr[6] = {0x52, 0x54, 0x4c, 0xbb, 0x50, 0xd8}; // Hardware addr to send a broadcast unsigned char code broadcast_hwaddr[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; // This sets my IP address to 192.168.0.168 unsigned long code my_ipaddr = 0xC0A800A8L; // This sets my subnet mask to 255.255.255.0 unsigned long code my_subnet = 0xFFFFFF00L; // Set to 0 if no gateway is present on network // unsigned long code gateway_ipaddr = 0; // This sets my gateway address to 192.168.0.1 unsigned long code gateway_ipaddr = 0xC0A80001L; //-------------------------------------------------------------------------- // Initialize the memory management routines // Initialize variables declared in main //-------------------------------------------------------------------------- unsigned int Count1msInc; unsigned char Count1ms,Count10ms,Count1s; unsigned char TimeSecond,TimeMinute; /***************************************************************************************** ** 函数名称: init_main(void) ** 功能描述: 主函数初始化 ** 调用参数: 无 ** 返回参数: 无 ** 调用模块: init_mempool((vo

2012-07-28

串行E2P ROM读写(24c02)

24c02驱动源代码 I2C总线驱动程序(用两个普通IO模拟I2C总线包括100Khz(T=10us)的标准模式(慢速模式)和400Khz(T=2.5us)的快速模式选择,默认11.0592Mhz的晶振。

2012-07-28

TCP/IP教程

学习TCP/IP的学习教程 很全面的入门教程

2012-07-28

riff文件格式分析软件

RIFF格式分析工具 做音视频分析的良好工具

2012-07-28

mp4info.exe

mp4 格式解析工具 可以分析出mp4的文件结构

2012-07-28

AtomicBrowser(AVI).exe

avi atom查看器 分析avi结构的利器 可以分析avi container的文件结构

2012-07-28

Asfview.exe

asf container分析工具 可以分析出asf的组成结构 stream信息 查看asf文件结构的利器

2012-07-28

Mp3解码流程

Mp3解码过程了解 Mp3 的解码总体上可分为9 个过程:比特流分解,霍夫曼解码,逆量化处理,立体声处 理,频谱重排列,抗锯齿处理,IMDCT 变换,子带合成,pcm 输出。 为了解上述9 个过程的由来,简要描述mp3 的压缩流程。声音是一个模拟信号,对声音 进行采样,量化,编码将得到PCM 数据。PCM 又称为脉冲编码调制数据,是电脑可以播放的 最原始的数据,也是MP3 压缩的源。为了达到更大的数据压缩率,MPEG 标准采用子带编码 技术将PCM 数据分成32 个子带,每个子带都是独立编码的(参考《数字音频原理与应用》 221 页)。然后将数据变换到频域下分析,MPEG 采用的是改进的离散余弦变换,也可以使用 傅利叶变换(参考《数字音频原理与应用》225)。再下来为了重建立体声进行了频谱按特定 规则的排列,随后立体声处理,处理后的数据按照协议定义进行量化。为了达到更大的压缩, 再进行霍夫曼编码。最后将一些系数与主信息融合形成mp3 文件。

2012-07-06

深入理解计算机系统

深入理解计算机系统pdf文档。不是特别的清晰,可以看看。如果书不错,还是购买正版的吧。

2012-07-01

WinHex WinHex_14.2_SR-3_SC

WinHex_14.2_SR-3_SC WinHex是一个专门用来对付各种日常紧急情况的小工具。它可以用来检查和修复各种文件、恢复删除文件、硬盘损坏造成的数据丢失等。同时它还可以让你看到其他程序隐藏起来的文件和数据。总体来说是一款非常不错的 16 进制编辑器。得到 ZDNetSoftwareLibrary 五星级最高评价,拥有强大的系统效用。

2012-07-01

itron操作系统资料

基于 ITRON 标准的 RTOS 的原理和应用 详细讲解itron的基础原理和应用

2012-07-01

空空如也

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

TA关注的人

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