Android是如何感知进程死亡,又是如何处理的呢?基于AppExitInfoTracker,本文将梳理进程的各种原因死亡流程,包括:自杀、被杀、Native Crash、Java Crash。
你是否思考过,我们在java 看到的OomAdj是什么?其实来源于 kernel中的oom_killer,oom_adj 全称为 Out of Memory Adjustment
。所以,adj就是Adjustment的缩写。那么,用户空间的adj与内核空间的adj又是什么关系呢?
Kernel 的 oom_kill 主要解决内核内存紧张的问题,当系统内存不足时,内核会触发 oom_kill 机制,选择性杀掉进程,并利用 reaper 快速清理匿名页。
本文介绍lmkd的查杀方式,如果快速清理内存,与传统的像 pid 发送 signal -9 相比,如何保证查杀行为的稳定性。
分享一次向AOSP提交patch的经验,个人开发者可能很难被merge,但重在参与。
Android native app 的工作方式,主要包括Activity创建、Java与Native的关系等,Android native app的核心思想是通过JNI来管理Native对象,上下联动管理Activity生命周期事件并传递用户输入事件等。