暂无搜索历史
下面的代码主要控制手机摇晃的程度,在摇晃到一定成的时候,才会触发摇一摇回调,重点在于如何保证摇一摇的触发既不能太灵敏,也不能太迟钝。
半双工,单向的 (一个管道要么只能读,要么只能写,数据的读/写是单向的,要想实现既能读又能写,就需要使用两个管道来完成)
上图是一次binder调用的通信流程,Client是应用进程,Server是系统服务,应用进程通过binder调用请求系统服务,Client向binder驱动发...
在运行时替换掉底层有Bug的方法的地址,将他们的指针指向修复之后的方法的内存地址,从而实现热修复的功能。
我们定义一个CustomClassLoader加载器,去加载String.class文件的流程如下:
Activity是一个组件,组件的启动是要通过AMS的,和Application的启动一样,Activity的启动也会涉及到AMS、Zygote以及应用进程之间...
线程启动之后,进入main()方法,在main()方法中进行线程的一些初始化,初始化工作完成之后,会调用Looper.loop()进行消息监听,而loop()方...
我们在线程中使用Handler之前,需要调用Looper的prepare方法进行Looper初始化,否则会抛出异常,说Looper不存在,其实我们在调用prep...
Activity承载了应用和用户交互的任务,在Activity中有大量的资源引用和上下文Context这样占用内存较大的资源对象,因为Activity一旦因为外...
1. 将图片保存在固定的位置,将存储位置信息跨进程发送给其他进程,其他的进程读取图片文件
ViewGroup是一组View的组合,在其内部会包含多个子View,当用户点击屏幕的时候,点击的位置可能在ViewGroup上,也可能在其内部View控件上。
首先看一下IdleHandler接口的定义,从上面的定义可以看到,IdleHandler的触发时机是当前线程的消息队列中没有消息,或消息队列中的消息尚未到处理的...
首先是防劫持,我们可以使用HttpDns,它与传统的DNS解析相比,HttpDns会绕开运营商的DNS服务器,直接与DNS服务器的80端口进行交互,可以有效的防...
Handler中的消息队列如上图所示,是一个单链表,各个消息按照执行时间先后排列,消息类型分为三种:普通消息(normal)、屏障消息(barrier)、异步消...
使用二分查找,需要注意的是因为只保留整数部分,我们找到平方根的平方结果只可能小于target,基于以上的分析,在二分查找的时候,在缩小范围的时候,要是结果小于t...
NAT虽然带来了不少的好处,但是也增加了端对端直接通信的难度,NAT使得端对端的通信方式在某些场景下只能通过中转服务器进行交互。
上图是消息循环的过程,当线程进入Looper.loop()循环之后,会从MessageQueue中阻塞的读取Message,要是MessageQueue中没有消...
DVM大多数实现和传统的JVM相似,但是为了满足Android在手机端内存的限制,Dalvik对JVM做了一些独有的优化。
通常我们使用Handler的消息延时都是调用sendMessageDelayed函数实现的,其中delayMillis是需要延时的毫秒。
「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 ...
暂未填写公司和职称
暂未填写学校和专业
暂未填写个人网址
暂未填写所在城市