(一)Alarm的设置 这里简单画了一下,从framework到native再到kernel的大概流程。 1. 应用层 我们先看一下应用层设置alarm的方法。1. OnAl...
IP属地:广东
(一)Alarm的设置 这里简单画了一下,从framework到native再到kernel的大概流程。 1. 应用层 我们先看一下应用层设置alarm的方法。1. OnAl...
常见的几种内存泄漏场景 1.静态实例我们使用静态实例的时候需要警惕它的生命周期,因为它跟应用程序的生命周期一样长,比如在Activity中使用静态实例,就算Activity已...
上一次介绍了HashMap的原理,HashMap采用一维数组+单链表+二叉树的数据结构。今天看下android对map类型的优化,SparseArray的原理。在没有hash...
Activity的View加载 创建一个Hello World,Android Studio会帮我们自动生成MainActivity。 进入OnCreate代码,看到调用su...
传统Linux的IPC通信 传统的IPC通信,由于不同进程间的隔离,用户空间的数据是不能共享的,需要通过内核空间实现数据交换。比如进程A和进程B想要通信,首先进程A将数据通过...
Socket是什么 socket起源于Unix,可以理解成一个文件,可以执行“读,写,打开,关闭”等操作,实际上是对TCP/IP协议的封装,太复杂,这篇简单看下Java层的实...
Java线程池基本用法 Java提供了一些通用接口来创建线程池: 但是通常不推荐使用这些简易接口,因为这些接口可能会使用无界的任务队列,理论上可以无限添加任务到线程池,并且对...
线程生命周期 NEW:创建了一个线程对象,但是还没有调用start()方法。此时称为初始状态NEWRUNNABLE:调用了start()方法后,进入就绪状态,此时已经进入ru...