Not all memory allocated in the virtual memory space is the same. We can classify it through two axis: the first axis is whether memory is private (specific t...
Starting in Android O, the Android framework and HALs now communicate with each other using binder. As this communication dramatically increases binder traffic,...
Proper locking can be tough—real tough. Improper locking can result in random crashes and other oddities. Poorly designed locking can result in code that is har...
IntroductionFUSE (Filesystem in Userspace) is a very useful mechanism in many applications. The thing is, those applications should not be focused on performa...
SCHED_FIFO in Android (today)● Used for some latency sensitive tasks○ SurfaceFlinger (3-8ms every 16ms, RT priority 98)○ Audio (<1ms every 3-5ms, low RT pri...
For Android M and earlier, the mediaserver process in Android was responsible for most media-related tasks. This meant that it required access to all permission...
Android is based on Linux and uses the Linux kernel’s scheduling mechanisms for determining scheduling policies. This is also true for Java code and threads....