android精髓
litefish
never stop,never give up
展开
-
android IPC总结
bundle,简单有效,适合四大组件之间传递数据socker 适合网络传输binder三大类aidl 适合RPCmessenger aidl的简化,服务端串行执行,不支持并发contentProvider 更偏向于数据读写,增删改查原创 2016-01-22 10:39:16 · 495 阅读 · 0 评论 -
滑动冲突
在有多个滚动控件的时候常常提到滑动冲突,那什么是滑动冲突,又如何解决呢?为什么原生的控件一般都不存在滑动冲突的问题?这就是本文要说的故事滑动冲突概念什么是滑动冲突,比如我有一个listview,还有一个viewpager,listview可以纵向滑动,viewpager可以横向滑动,我在viewpager上横向滑了一大段,在这个滑动过程中,很可能我们的手不仅仅横向滑了,纵向也滑了,谁也无法原创 2016-06-28 23:35:47 · 993 阅读 · 0 评论 -
输入法键盘和编辑框焦点
软键盘原理软件盘的本质是什么?软键盘其实是一个Dialog! InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Window的某些参数(如Gravity)进行了设置,使之能够在底部或者全屏显示。当我们点击输入框时,系统对活动主窗口进行调整,从而为输入法腾出相应的空间,然后将该Dialog显示在底部,或者全屏显示。windowSof原创 2015-06-01 18:26:49 · 1926 阅读 · 0 评论 -
android点击事件(View)
1. onTouch和onTouchEvent有什么区别,又该如何使用?从源码中可以看出,这两个方法都是在View的dispatchTouchEvent中调用的,onTouch优先于onTouchEvent执行。如果在onTouch方法中通过返回true将事件消费掉,onTouchEvent将不会再执行。另外需要注意的是,onTouch能够得到执行需要两个前提条件,第一mO原创 2015-03-10 11:00:12 · 3385 阅读 · 1 评论 -
android事件分发(三)重要的函数requestDisallowInterceptTouchEvent
前面我们说过,儿子吃到肉了,父亲还可能抢那么儿子有没有办法不让父亲抢呢,有?可以通过调用mParent.requestDisallowInterceptTouchEvent(true),之后parent就默认不拦截事件了。这个故事就是,儿子吃到好吃的了,说,爸爸不许抢,然后爸爸就不会再抢了。这是怎么实现的呢?儿子掉mParent.requestDisallowInterceptTo原创 2016-06-28 23:03:47 · 2128 阅读 · 0 评论 -
android事件分发(二)源码源码
上一节做了个事件分发的各种情况总结,今天我们再从源码角度看一下这一系列过程,对其中的一些问题,从代码(源码6.0.0)角度给予答案。各种情况总结首先定义down,move,move....,up为一组事件,或者一个recycle(官方说法),从手按下到手放开。我们从一个viewgroup的角度来分析下一组事件到来,会发生什么事?我是viewgroup,没有onTouch原创 2016-06-27 16:28:57 · 824 阅读 · 0 评论 -
android性能优化
1、SparseArray替代HashMap<Integer, Object>更加节省内存,某些情况下更高效,参考http://liuzhichao.com/p/832.html2、用一维数组代替多维数组多维数组占的内存空间会多很多,效率也低关于数组的内存空间可以参考http://www.javamex.com/tutorials/memory/object_mem原创 2015-03-04 20:59:08 · 1107 阅读 · 0 评论 -
android屏幕刷新显示机制
android屏幕刷新显示机制前言本文是通过阅读各种文章及代码,总结出来的,其中难免有些地方理解得不对,欢迎大家批评指正。显示系统基础知识定义在一个典型的显示系统中,一般包括CPU、GPU、display三个部分, CPU负责计算数据,把计算好数据交给GPU,GPU会对图形数据进行渲染,渲染好后放到buffer里存起来,然后display(有的文章也叫屏幕或者显示器原创 2016-12-30 10:15:18 · 18078 阅读 · 4 评论