2011年1月20日星期四

Android 分析杂记

1. If system server process crashed, the zgnote would be killed and restart. And then, the system server will be restart in init process.
1. Service Died
void do_add_service    (server_manager.c)
void binder_link_to_death(struct binder_state *bs, void *ptr, struct binder_death *death) (binder.c)

2. Problem opening device files - Is your kernel compatible?
status_t AudioHardware::AudioStreamOutTegra::set    AudioHardware.cpp

3. FATAL EXCEPTION IN SYSTEM PROCESS: ActivityManager
private static class UncaughtHandler    RuntimeInit.java

4.
public static void main        ZygoteInit.java
VMRuntime.getRuntime().setMinimumHeapSize(5 * 1024 * 1024);
preloadClasses();
preloadResources();
startSystemServer();
Zygote.forkSystemServer
handleSystemServerProcess [For Child Process]
RuntimeInit.zygoteInit(parsedArgs.remainingArgs);

5.
void android_os_Process_sendSignal(JNIEnv* env, jobject clazz, jint pid, jint sig)    android_util_Process.cpp
android/os/Process.sendSignal