- 博客(7)
- 收藏
- 关注

原创 Android Binder通信机制学习
最近又跟着罗升阳的一书学习了一下binder这块的知识,本篇博客就做个学习总结,后面会给出一个binder通信的示例代码做为结束。 binder驱动和通信库是binder的核心,驱动是用c语言编写的,通信库是c++写的,应用程序通过jni和底层的库产生联系,建议研究binder的读者先读完和这两本书做好研究准备,有时间的也可以学学。本文不打算详细分析binder的代码,老罗的书写的最详细
2013-12-29 21:00:20
6015
4

原创 Android Touch事件的分发过程
不知道你是否在涉及到Android触屏事件的时候有过如下的疑问: 1.View的onTouchEvent()方法返回true和false有什么区别? SDK给出的解释很简单:"返回true代表该事件已经被处理过了,返回false则相反",这句话完全没有解释清楚问题。 2.View的onTouchEvent()方法在处理ACTION_DOWN的时候返回true,在处理ACTION
2013-12-01 16:52:58
4032
1

原创 Linux信号相关笔记
最近又温习了一遍Linux中的信号知识,发现有很多东西以前没有注意到,就通过这篇博客记录一下,巩固一下知识点。 信号基础: 信号是什么?为了回答这个问题,首先要从异常说起,这里的异常不是指c++/java中的Exception,而是指控制流的一种突变。 控制流指一个程序的指令序列,它在最简单的情况是平滑的,意味着上一条指令地址和下一条指令地址在存储器中是相邻的,但是程
2013-11-17 20:15:00
2697
2
原创 C/C++启动java虚拟机
Android系统基于Linux,它在用户空间的第一个进程是init进程,是属于native性质的进程,但是每个android应用都是跑在虚拟机下边的,第一个虚拟机进程zygote就是被init进程给fork出来的,这就涉及到了如何用native的c/c++代码启动jvm,本文就是做一个小示例来演示一下。 新建一个目录,添加main.cpp,代码如下: #include #include
2013-01-15 10:13:33
4211
1
原创 Linux Qt 环境以及基础
搞了几天Qt,从搭配环境开始就遇到一坨坨的问题啊,很多东西又搜索不到,只能自己尝试了,在博客中记录一下,希望能帮助到有同样问题的人。 1.Qt Linux下运行环境的配置: 我这里配置环境是下载源码库下来自己编译一个SDK,这样有个好处是能看到源码方便学习. 到http://qt-project.org/downloads这里下载东东,我的是ubuntu 10.04,下载了这两个:
2013-01-14 11:58:36
1224
原创 Linux JNI入门
最近关注于android的framework层,都是一堆堆的native,jni搞不定就没法看下去,就小研究了一下. 为什么要使用jni?有如下理由: java标准库不支持与特定平台相关的一些功能,需要c/c++层给予支持可能已存在一个功能良好的库,并不想再用java重写,可以用jni调用它在某个功能点效率至关重要,用底层的语言实现更好(如c内嵌汇编) 废话不多说,直接上个能跑的例子
2012-06-08 11:49:56
3949
原创 Java读写锁的代码
public final class ReadWriteLock{ private int readingReaders = 0; //实际正在读取的线程数量 private int waitingWriters = 0;//正在等待写入的线程数量 private int writingWriters = 0;//实际正在写入的线程数量 private bo
2011-08-03 11:00:45
1069
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人