详细分析Android中实现Zygote的源码

2020-01-06 13:36:52丽君

通过源码,我们可以看到,register_jni_procs只是对array数组的mProc函数的封装,而array数组指向的是gRegJNI数组,我们来看一下这个数组的实现:

 

 
  1. static const RegJNIRec gRegJNI[] = {  REG_JNI(register_android_debug_JNITest), 
  2. REG_JNI(register_com_android_internal_os_RuntimeInit),  REG_JNI(register_android_os_SystemClock), 
  3. REG_JNI(register_android_util_EventLog),  REG_JNI(register_android_util_Log), 
  4. REG_JNI(register_android_util_FloatMath),  REG_JNI(register_android_text_format_Time), 
  5. REG_JNI(register_android_content_AssetManager),  REG_JNI(register_android_content_StringBlock), 
  6. REG_JNI(register_android_content_XmlBlock),  REG_JNI(register_android_emoji_EmojiFactory), 
  7. REG_JNI(register_android_text_AndroidCharacter),  REG_JNI(register_android_text_AndroidBidi), 
  8. REG_JNI(register_android_view_InputDevice),  REG_JNI(register_android_view_KeyCharacterMap), 
  9. REG_JNI(register_android_os_Process),  REG_JNI(register_android_os_SystemProperties), 
  10. REG_JNI(register_android_os_Binder),  REG_JNI(register_android_os_Parcel), 
  11. REG_JNI(register_android_view_DisplayEventReceiver),  REG_JNI(register_android_nio_utils), 
  12. REG_JNI(register_android_graphics_Graphics),  REG_JNI(register_android_view_GraphicBuffer), 
  13. REG_JNI(register_android_view_GLES20DisplayList),  REG_JNI(register_android_view_GLES20Canvas), 
  14. REG_JNI(register_android_view_HardwareRenderer),  REG_JNI(register_android_view_Surface), 
  15. REG_JNI(register_android_view_SurfaceControl),  REG_JNI(register_android_view_SurfaceSession), 
  16. REG_JNI(register_android_view_TextureView),  REG_JNI(register_com_google_android_gles_jni_EGLImpl), 
  17. REG_JNI(register_com_google_android_gles_jni_GLImpl),  REG_JNI(register_android_opengl_jni_EGL14), 
  18. REG_JNI(register_android_opengl_jni_EGLExt),  REG_JNI(register_android_opengl_jni_GLES10), 
  19. REG_JNI(register_android_opengl_jni_GLES10Ext),  REG_JNI(register_android_opengl_jni_GLES11), 
  20. REG_JNI(register_android_opengl_jni_GLES11Ext),  REG_JNI(register_android_opengl_jni_GLES20), 
  21. REG_JNI(register_android_opengl_jni_GLES30),   
  22. REG_JNI(register_android_graphics_Bitmap),  REG_JNI(register_android_graphics_BitmapFactory),