- 博客(17)
- 资源 (11)
- 收藏
- 关注
转载 深入浅出sip协议
传统电话是电磁波的通信,当电话技术发展到IP技术时代,SIP协议成为了电话通信标准协议,不仅可以通电话、还可以收发信息、视频、开会、放PPT。事实上,今天的通信业已全面采用SIP协议作为通信标准,无论是固定电话、还是移动电话,其后台都是以SIP协议完成通话、交换的。 很多软件也采用SIP协议进行通信,如:Windows Messenger。学习多天,记录如下:一、从打电话的
2017-03-30 12:23:45
1963
1
原创 android sip通话实现流程分析
sip协议的核心是SipService,它的注册与一般服务的注册不同,绝大多数Service都是之间在SysetmServer中进行注册,而SipService是在TeleService apk中注册,具体代码在PhoneGlobals.java中.Handler mHandler = new Handler() { @Override public
2017-03-29 16:03:23
7179
1
原创 android sip协议通话代码实现
android里面的voip通话基于sip协议,关于voip和sip协议的了解,请大家去参考相关文档,本文不做解释.sip协议的核心是SipService,它的注册与一般服务的注册不同,绝大多数Service都是之间在SysetmServer中进行注册,而SipService是在TeleService apk中注册,具体代码在PhoneGlobals.java中.Handler mHa
2017-03-29 14:28:28
9406
3
原创 搭建sip服务器方法
在基于sip协议进行voip通话时,首先需要搭建sip服务器,本文以ubuntu 14.04平台为例进行说明搭建sip服务器的过程:1.首先安装如下软件apt-get install perl libdbi-perl libdbd-MySQL-perl libdbd-pg-perl libfrontier-rpc-perl libterm-readline-gnu-perl libbe
2017-03-29 11:48:24
18583
原创 MediaPlayer接收通知消息的处理流程
在使用java层MediaPlayer去播放一个音视频文件时,经常需要获取各种通知.具体体现在代码中就是注册各种监听器来获取事件通知.例如:MediaPlayer player = new MediaPlayer();player.setDataSource("rtsp://10.0.149.217:554/stream1");player.prepareAsync();pla
2017-03-27 14:02:33
2235
原创 MediaPlayer播放视频与AudioFlinger交互流程
status_t MediaPlayerService::Client::setDataSource( const char *url, const KeyedVector *headers) {player_type playerType = MediaPlayerFactory::getPlayerType(this, url); sp p = setD
2017-03-24 17:41:00
800
原创 android MediaPlayer播放音视频流程
在播放一个本地音视频文件或网络传输的音视频流时,apk中一般会调用类似如下代码:MediaPlayer mp = new MediaPlayer();(1) //创建一个播放器mp.setDataSource(...); (2)//参数指定路径或url mp.prepare(); (3) mp.start(); (4)上面的代码中总共有4条语句
2017-03-23 18:09:02
6520
1
原创 android播放视频显示字幕
我们看到市场上视频播放应用在播放视频时,可以在视频上面显示滚动字幕信息,或者其它提示图片信息等.那么它们是如何实现的呢,首先播放视频一般是用SurfaceView,VideoView等,那么我们如何在SurfaceView上显示字幕呢,根据我前面一篇文章所述SurfaceView的工作原理,SurfaceView的生命周期虽然受到它的宿主窗口限制,但是它是工作于不同的窗口,且位于宿主窗口之下.我们
2017-03-23 14:25:37
5091
原创 SurfaceView的工作原理
大家在做android游戏和视频播放器的apk开发时,会经常用到SurfaceView这个类,以及它的子类VideoView,GLSurfaceView等.它与普通的View视图有本质的区别,本文就对SurfaceView的工作原理做个详细介绍.SurfaceView不与它的宿主窗口共享同一个绘图表面,它拥有自己独立的绘图表面,也就是说拥有独立的Surface本地窗口,它可以在一个独立的子线程
2017-03-22 17:30:07
3897
转载 linux高端内存
高端内存是指物理地址大于 896M 的内存。对于这样的内存,无法在“内核直接映射空间”进行映射。为什么? 因为“内核直接映射空间”最多只能从 3G 到 4G,只能直接映射 1G 物理内存,对于大于 1G 的物理内存,无能为力。 实际上,“内核直接映射空间”也达不到 1G, 还得留点线性空间给“内核动态映射空间” 呢。 因此,Linux 规定“内核直接映射空
2017-03-21 15:20:19
494
原创 linux内核kmalloc与vmalloc的区别.
一.kmalloc():用于申请较小的、连续的物理内存.1. 以字节为单位进行分配,在中2. void *kmalloc(size_t size, int flags):分配的内存物理地址上连续,虚拟地址上自然连续3. void kfree(const void *ptr):释放由kmalloc()分配出来的内存块二.vmalloc():用于申请较大的内存空间,虚拟
2017-03-21 11:49:12
3564
1
原创 linux内核中直接读写文件
我们在调试linux内核驱动程序时或者某些特殊场景下,需要直接读写文件,但是我们不适合直接使用系统调用sys_open(),sys_read(),sys_write()等.我们可以利用其它内核函数来实现,filp_open() ,filp_close(), vfs_read()vfs_write()等,这些函数在linux/fs.h和asm/uaccess.h头文件中声明。1.
2017-03-20 15:37:28
6607
原创 linux内核file_operations的赋值流程跟踪
我们知道linux系统中文件有很多种,包括普通文件,目录文件,设备文件,管道文件,套接字文件等.文件在内核中用file结构体表示,file对象中有个重要成员 f_op指针,它指向file_operations,该结构体定义了一系列文件操作的函数指针集合,例如open,read,write,ioctl,mmap等.当对文件进行操作时,最终是调用对应的函数指针进行操作.linux中支持很多种文件系
2017-03-17 11:46:23
1154
1
转载 linux下内存的统计和内存泄露类问题的定位
在产品的开发中,通过对当前系统消耗内存总量的统计,可以对产品所需内存总量进行精确的评估,从而选择合适的内存芯片与大小,降低产品的成本。在遇到内存泄露类问题时,经常会对此束手无策,本文通过对proc下进程相关的文件进行分析,精确评估系统消耗内存的大小,还可以对内存泄露类问题的解决提供一种定位手段。 Linux在内存使用上的原则是:如果内存充足,不用白不用,尽量使用内存来缓存一些文
2016-11-03 17:21:03
341
转载 linux内核符号表
System.map是内核符号表文件,是由“nm vmlinux”命令产生的,位于源码根目录。所谓“符号”就是函数名,全局变量名等东东,这个表就记录的这些“符号”在内核中的运行地址。(这个地址是Effective Address,虚地址)下面是文件的一个片段:c032ee18 t genl_initc032ef18 T netfilter_initc032efc
2016-11-03 15:44:26
936
转载 linux如何使用kprobes查看内核内部信息
使用printk打印变量等方法,是调试内核的有效方法之一,但是这种方法必须重新构建并用新内核启动,调试效率比较低。以内核模块的方式使用kprobes、jprobes,就可以在任意地址插入侦测器,执行包括printk在内的各种调试工作,而无须重新构建内核,也无须重启。一、首先内核必须支持kprobes、jprobes:#make menuconfigGeneral s
2016-11-03 14:29:48
1553
高焕堂android课堂讲义
2013-07-13
nucleus系统内核源代码
2013-07-13
anroid智能指针(wp,sp)学习总结
2013-07-13
oracle的入门心得
2010-07-14
VC++开发必备插件
2010-07-14
vc6.0与vs2005的编码区别
2008-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人