由于本人对这部分知识的学习还不深入,但是愿意拿出仅有的一点了解来分享,希望大家能给点好的建议。
众所周知,Android平台是Java、C、C++等多种混合语言写成的,我们在使用Android SDK提供的framework层的API来进行应用开发时通常调用的是java方法,而实际上这些java API很多时候只是一个入口,方法功能的真正实现是通过JNI调用到framework层的native方法来实现的。
Android在开机启动后,经过一系列的加载流程,将进入frameworks/base/cmds/app_process/app_main.cpp。进而执行main()方法。
此处应该有掌声.哈哈 应该有代码的。但是放上来的方法不是很懂哎……
最终会调用frameworks/base./core/jni/AndroidRuntime.cpp的start方法。事实上,Android API与本地方法的注册关联就是在AndroidRuntime.cpp模块里完成。编译完成之后会在输出目录out的system/lib目录下形成libandroid_runtime.so动态链接库。
有空的时候再把这部分补上吧……