Linux手机打电话代码分析
Android源代码分析之电话功能 RIL
根据:《Android 源码分析-打电话和发短信》一文(时间:2008-12-24 00:28来源:Android 开发者 作者:wsshy 点击: 2275次)
得知,智能手机的打电话功能是由RIL部分来实现的,见下图:
开始分析Android源代码中的RIL部分。
又上图,以及其他相关资料,我得知在Android中有一个叫rild的守护进程。我猜测此进程与电话的拨打接听有莫大关系。
而且在Android系统中存在这么一个rild的可执行文件,源代码中的"hardware/ril/rild"目录下有rild.c的文件 ,且在rild.c中,我们找到了main函数,即我们已经找到了rild守护进程的程序入口啦~
自赞一个先~
开始分析rild守护进程的代码。
在代码开始部分,有一些关于参数解析的片段,暂时先撇开一边,先讲一下rild守护进程的关于RIL的一些重要流程:
main()
{//省略n行
RIL_startEventLoop();
//省略n行
}
从名字上看就应该觉得这应该是一个起点——"startEventLoop"——一个开始进入时间循环的一点,让我们跟踪进去看看^_^
在"rild.c"中有这么一行:extern void RIL_startEventLoop();
说明RIL_startEventLoop函数的代码还在别处,经查找,发现是在这里:
"hardware\ril\libril"目录下的Ril.cpp文件中。
Get it~
在Ril.cpp中的RIL_startEventLoop中有这么一行:
ret = pthread_create(&s_tid_dispatch, &attr, eventLoop, NULL);
看来Android是在这里开辟一个线程来执行eventLoop循环,
这个eventLoop函数也在这个文件里(Ril.cpp)。
eventLoop中,主要执行了:
ril_event_init();
ril_event_set (&s_wakeupfd_event, s_fdWakeupRead, true,
processWakeupCallback, NULL);
ril_event_add (&s_wakeupfd_event);
ril_event_loop();
由函数名可猜测:
ril_event_set使用了新建一个ril事件的,
而ril_event_add 将该新事件添加进某执行队列中。
最后,在循环ril_event_loop中进行一个轮询,捕获事件,进而完成事件处理。
经过对ril_event_set和ril_event_add的代码阅读,证实了之前的两点猜测,
(ril_event_set和ril_event_add以及ril_event_loop函数代码在"ha
相关文档:
在 Ubuntu Linux 中用源码文件安装软件
时经常都会用到chmod
命令来更改文件的权限使其在安装时有执行的权限。由于 Ubuntu Linux 默认不能用root账户来登录所以在用chmod命令来更改文件的权限时往往需要结合sudo命令来使用,如果你对sudo命令还不太了解,请先看看本站的《sudo命令详解》
chmod
Linux/Ubuntu
系统中文 ......
在找GTK的开发文档,发现在 /usr/share/doc/libgtk2.0-doc/里有个 tutorial的目录,里边有个gtk-tutorial.devhelp的文件,于是试试有没有devhelp这个工具,原来真的有,而且已经安装过了!
于是用它来打开这个开发文档,非常好用。而且里边还有其他库的帮助文档呢! ......
一、概要
详细介绍:http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html
信号是UNIX和Linux系统响应结条件而产生的一个事件。接收到信号的进程会相应地采取一些行动。
(1) 在系统 ......
本不想写这些玩意儿,其实我并不喜欢它们,只不过没办法,谁叫我是靠这些家伙糊口的呢!
若干年前,我自认为很喜欢Linux;若干年后,我发现我当初是何等的天真。
恩,一分钱,一分货!我坚信这一点!所以我现在坚持用MS的Vista,正版的哦!
言归正传,前段时间因为工作,需要在Linux下操作鼠标,当然啦,肯定不会是在X-w ......
Unix基础
登录和退出
登陆:可以用Neterm、SecureCRT等终端登陆工具〔192.168.25.12 常用软件下有〕或者
telnet、ftp命令。
1. telnet 远程终端访问
命令格式:telnet [hostname|IP address]
退出:ctrl+d or logout or exit
2. ftp 远程文件传输
......