App files

Tools:

  • dex2oat :
  • dalvikvm :
  • app_process :

Zygote startup

Init runs /system/bin/app_process (a c++ program), and name this process as zygote.
As in init.rc:

service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server

Usage of app_process is:

Usage: app_process [java-options] cmd-dir start-class-name [options]

app_process does runtime.start("com.android.internal.os.ZygoteInit", startSystemServer)

JNI API signature

JavaVM and JNIEnv

https://developer.android.com/training/articles/perf-jni

  • JavaVM
  • JNIEnv: JNI Apis/functions as first argument. Used for thread local storage. Can't be shared b/w threads.

Thread pool in Java and C++