原创 alarm

alarm type : /** * Alarm time in {@link System#currentTimeMillis System.currentTimeMillis()} * (wall clock t

原创 system_server native庫的啓動過程

先看system_server對應native代碼位置, frameworks\base\services\jni Android.mk 裏有包含所有jni cpp,對應會編譯成libandroid_servers.so LO

原创 libpcap/tcpdump filter 語法

libpcap/tcpdump filter syntax 語法: type type qualifiers say what kind of thing the id name or number refers to.

原创 libandroid_server.so Android.mk

frameworks/base/services/Android.mk native library ============================================================= includ

原创 android 6.0 activitymanagerservice keyword

在AMS中service默認處理timeout時間, 如果超過就會引發ANR。 @ActiveServices.java // How long we wait for a service to finish executin

原创 ActivityManagerService native crash處理流程

在@AMS中會註冊接收native crash的監聽器, 以便在native進程crash時清理恢復app的生命週期等事項。 開機AMS在啓動時註冊監聽: mActivityManagerService.systemReady(new

原创 alarm 鬧鐘開機時判斷

/device/qcom/common/init/init_msm.c: { char *alarm_file = "/proc/sys/kernel/boot_reason"; char buf[BUF_SIZE];

原创 Android kswapd-->lowmemorykiller啓動和掃描過程

註冊kswapd module,kernel啓動時調用@kernel/mm: module_init(kswapd_init) static int __init kswapd_init(void) { int nid;

原创 android source code download from tsinghua

https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b an

原创 Android cgroup 節點

root@l:/ # cat proc/cgroups subsys_name hierarchy num_cgroups enabled c

原创 Integer.valueOf 返回對象的差別

System.out.println(Integer.valueOf("127")==Integer.valueOf("127")); --> **TRUE** System.out.println(Integer.val

原创 Activity manager service :activity 啓動流程中process的切換過程

launcher 等把對應startActivity的請求發送到AMS後, 最終進入startProcessLocked @AMS, Process.ProcessStartResult startResult = Process.