synchronized关键字

在java中每一个对象都可以作为锁:

阅读更多

Android Content Provider实现原理

ContentProvider(内容提供者)用于提供数据的统一访问格式,封装底层的具体实现。对于数据的使用者来说,无需知晓数据的来源是数据库、文件,或者网络,只需简单地使用ContentProvider提供的数据操作接口,也就是增(insert)、删(delete)、改(update)、查(query)四个过程。

阅读更多

Volatile关键字

Java语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独的获取这个变量。如果有一个字段被声明为Volatile,Java线程内存模型确保所有线程看到这个变量的值是一致的。

阅读更多

Service组件启动过程

Service有两种启动方式startService()和bindService()

阅读更多

Android广播机制

在Android系统中,广播是一种在组件之间进行消息传递的方式。广播机制是一种基于消息发布和订阅的事件驱动模型,即广播发送着负责发布消息,而接受着需要先订阅消息,然后才能接到消息。

阅读更多

Activity组件启动过程

Activity是Android应用程序的四大组件之一,它负责管理Android应用程序的用户界面。

阅读更多

ActivityRecord

每一个ActivityRecord都会有一个Activity与之对应,一个Activity可能会有多个ActivityRecord,因为Activity可以被多次实例化,取决于其launchmode。一系列相关的ActivityRecord组成了一个TaskRecord,TaskRecord是存在于ActivityStack中,ActivityStackSupervisor是用来管理这些ActivityStack的。

阅读更多

Android中的进程ProcessRecord

Android系统中用于描述进程的数据结构是ProcessRecord对象,AMS便是管理进程的核心模块。四大组件 (Activity,Service, BroadcastReceiver, ContentProvider)定义在AndroidManifest.xml文件, 每一项都可以用属性android:process指定所运行的进程。同一个app可以运行在通过一个进程,也可以运行在多个进程, 甚至多个app可以共享同一个进程。

阅读更多

Reactor高性能服务器模型

Reactor模型的中心思想是将所有要处理的IO事件及其处理器注册到一个中心的IO多路复用器上,并将主线程阻塞在多路复用器上;当有相应的IO事件到达时,多路复用器将IO事件分发给相应的处理器进行处理。

阅读更多

Linux进程调度

进程调度程序是确保进程能有效工作的一个内核子系统。它将决定将哪个进程投入运行,何时运行以及运行多长时间。调度程序没有太复杂的原理,它的原则就是只要有可以执行的进程,那么就总会有程序正在执行。

阅读更多