原创 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.