对android的一些了解(续)

1. 从电话模块的实现了解android

android电话模块实现细节已经在另外一篇文档中描述,在此就不多做阐述了。

以电话模块作为入手,主要是他在android系统中相对独立,同时电话是手机的重要功能,在整个android系统中所占的比重应该比较大,同时他给了你一张从硬件到应用的地图,其他的模块可以根据这张主线地图再进行稍微的修改,应该就可以得到了。

具体的通信过程如下图:

clip_image002

图8-1

hardware与kernel之间通过系统总线进行通信,目前使用的串口都是在SOC中。

Kernel与user space的rild通信是通过kernel提供的串口驱动,该驱动分为两部分,一部分是tty子系统提供的驱动,提供了一个用户空间数据与内核空间数据交互的接口;一部分则是与硬件和tty子系统交互的驱动,该驱动为tty子系统与硬件寄存器之间建立了桥梁。

rild与framework则是通过socket进行沟通,此种通信是在不同的进程中进行的。socket并不是android所特有的,不过他确实提供了一种进程通信很好的解决方案。

framework与app之间的通信方式与其他就存在些区别了,他包含了两种情况,一种是在同一个进程空间内,此种情况是线程间的通信,他包含了Message、Handler、Looper,这是android中java提供的一种特性;另一种则是针对不同进程间的通信,主要采用AIDL的方式和Intent的方式,具体的描述见参考资料,或者更好的资料应该是你自己找到的。

Continue reading

Posted in 开发 | Leave a comment

对android的一些理解

第一次接触android

接触android已经有两年左右的时间,在这期间没做过比较完整的关于android系统的总结,借此机会顺便整理一下自己对android理解上的一些想法。仅供大家参考,有问题的地方望不吝赐教,在此先表示感谢。

第一次接触的代码来自一个1G多的压缩包,另外加上一些三方的patch。在这之前没接触如此庞大的工程,一下蒙了,该从何开始看啊,每个目录都不知道什么意思,框架又是什么东西,一头雾水。还是淡定一下从搜索引擎那里找突破口吧,这个应该是每个软件开发人员对陌生事物的第一反应。

参看了官方文档对android的描述,以及一些blogandroid的讲解,对android依然处于迷茫状态,因为他确实是一个大工程。好吧,到此看看最直观的一张图(第一次看到的那张没有HAL):

Continue reading

Posted in linux应用 | Leave a comment

暂时不“上班”了

最终还是决定辞职了,第一份工作也就这么随着告一段落。

最近一直在考虑一些问题,我为什么要在公司上班?工作内容为你所嗜好的好,还是……。从最终的决定whans选择了“还是……”。

对于为何要“上班”?下面做些简单的分析,当然这些只代表个人的观点,同时欢迎交流。从自身的角度看,原因很简单只是为了“混口饭吃”,如果再有好点的追求,就混个好点的房子住住,不过代价就是你得拿出自己的自由来换取这些。这时就产生了矛盾:你希望物质还是希望精神,能不能两者兼有。当然绝大多数人都希望两者兼得,但往往希望越大失望也越大。因为在此你是没办法得出这么一个公式:物质<自由,所以就没必要做过多的挣扎和无望的抱怨了,好好做贡献吧。或许whans可以隐居而自给自足,那就不需要“混口饭吃”了,哈哈!看看老祖宗比我们过的多悠哉,他们创造的很多东西自今我们还没弄明白,我们是在进步还是在退步?

Continue reading

Posted in 其他 | 11 Comments

真实的一幕

事情原于昨天晚上,同学的钱包不见了。他自己也不知道是怎么丢的,汗!钱包里装了一堆的卡,有的麻烦了。

今天晚上本想去贴寻物启事,到了一打印店,老板便透露最近这边有几个嫌疑犯在此,四处张望、游荡。看来贴寻物启事以是自我安慰了。没想到这事就这么被遇到了,刚出店门,便有两混混一前一后明目张胆的就在你眼皮地下作案──一个望风+掩护,一个手伸向了前面女士的包。实在看不下去,也尝过丢东西的痛楚,拍掌叫了一声,阻止了一桩案件的发生。不过自己胸前也被击了一下,汗!看来我得努力增加自己的体形了!

明目张胆,当街、当着众人,可以说是在众目睽睽之下,就这么干起了偷盗。这让我想起了一个同学的可怕遭遇──房门被撬,东西被偷,好在人安全。

这世道如此混乱,原因何在?当然有识之士应该都有所耳闻,现实就是现实,很难改变,我们能做的只是尽自己的一点责任!

在此提醒大家保管好自己的随身物品,注意防盗、防身!!!

我先定定神!

Posted in 其他 | 9 Comments

薄雾浓云愁永昼门一天行

现在终于明天手机摄像还是有点用处的,这不就没图可贴了,就不能证明遇到了些“奇妙”的事。

早上冒着大太阳,驱公车到厦大白城,沙滩不错,可居然穿着鞋在沙滩上逛,当然还有一大片人把鞋脱了在狂奔。看来夏天还是很美好,大太阳不算什么,只要有了海滩。早上起的晚,白城就呆那么几十分钟就闪人了,吃饭去。

下午开始小巷游。话说中山街的小巷可真是丰富,不过你想迷路也没那么容易。大部分时间是在兜圈,一不留神可能就从进去的地方出来了。
不过在小巷里面吃的场面还是值得一看的,即使你不吃。小吃满巷子都是,这便造就了一个问题,人群扎堆现象是平平发生,就如一个3M左右宽的店面居然有被挤爆的趋势,遗憾的是在其中没看到男的。

因为没图可贴,也就没什么可说的了!不过自己的表达能力貌似已经到了小学水平了,糟糕!

Posted in 其他 | 9 Comments

android ril CDMA EVDO SMS移植

话说ril这东西,whans也是刚刚开始接触,当初谁也没想到目前会从事这个事。不过从事什么都差不多,至少还算是技术活。
下面就对RIL 中SMS 的移植做个小结吧,如果有什么不到位的地方,望不吝赐教,谢谢!

先提供一些官方的文档手册,作为了解。

如何获取android 某个分支一份拷贝,你最好为其准备5G的空间:

http://source.android.com/download

Continue reading

Posted in 开发 | 12 Comments

哈哈!继续学习

自从找工作到现在貌似都没更新过了,汗!

找找最近都在忙些啥了?
毕业后到厦薄雾浓云愁永昼门的一家公司,从事android手机开发,主要负责系统部分,暂时还没涉及到应用层的东西。
android一个开放式手机平台,具体whans在此就不多介绍了!

第一个内容,串口调试。
在嵌入式开发中,串口是何等的重要,能利用串口终端打印一些信息是件多么美好的,什么都不打印那才叫闷!
首先需要一个串口调试工具,因为资源限制只能自己写一个了(发了一天时间写了一个“及其简陋的”串口调试程序),之后通过该调试程序,外加驱动中的打印信息开始debug。啊呀妈呀!跟到寄存器,示波器都用上了还没找到问题所在──寄存器操作显示一切正常。搞不懂问题在哪,因为毕竟不是自己的代码,调试起来确实比较棘手。
最终找到问题是出在GPIO口没始能起来,即使你再怎么把数据发到芯片上,它就是到不了串口的接口。
就这么耗了一周多的时间,结论:调试很大一部分是靠经验!

Continue reading

Posted in 开发 | 17 Comments

我依然存在

最近因为某些原因,导致无法舒适连接到博客,导致博客几乎处于废弃状态,更改个主题,以示whans依然存在,哈哈!俺还没消失啊!

7 Comments

openssl中的BIO(Abstract Input/Output)

将近两个月后的断网,终于又回来了。

Openssl官方:http://www.openssl.org(当然这个很容易找到)
简单介绍一下Openssl:“ssl”来源于安全套接层(Secure Sockets Layer,SSL)及其继任者传输层安全(Transport Layer Security,TLS)是在互联网上提供安全保密的通讯协议,为诸如网站、电子邮件、网上传真等等数据传输进行保密。SSL 3.0和TLS
1.0有轻微差别,但两种规范其实大致相同(来自wikipedia)。目前的Openssl版本实现了SSL2.0,SSL3.0与TLS1.0。同时提供了兼容SSL2.0与SSL3.0的接口.0的接口。是不是Openssl就是这几个协议的实现呢?非也。Openssl是一个强大的网络安全基础库(与GPL协议有些冲突,当并不影响使用,毕竟问题都是可以解决的),它不仅实现上面提到的几个协议,同时还实现了很多种加密算法(包含了两大派,对称与非对称加密,采用AES标准,同时对较早的DES、DES3也是兼容的),及一些网络安全机制,如数字签名,PKI(Public Key
Infrastructure,公钥基础设施),信息哈希等。

Continue reading

Posted in 开发 | 3 Comments

linux notification chains

linux内核由各个不同的子系统构成,比如网络子系统、存储管理子系统等,当然这种设计是为了使内核便于组织,有点类似于ISO/OSI参考模型。各个子系统相对独立,但它们之间又存在联系。本问将谈谈内核中,各个子系统之间为了实现信息共享而提供的一种机制──notification chain。
从字面解释,它是条链表,而且它要完成通知这项工作。如何通知?靠的是在通知链中的回调例程(callback routine);通知什么?通知某个子系统中某个事件的发生;发送通知的是谁?当然是事件发生的子系统;通知何人?对该事件关注的其它子系统。下面就对这些问题做进一步展开。

Continue reading

Posted in 开发 | 10 Comments