下文,不求博友懂,只求自己以后能看懂~呵呵~因为这只是个人笔记~
APK ->java(jar包) ->jni(so库)->hal
(so库)->内核 ->硬件
2. 进程间通信,最常用是binder,socket,pipe等。
对于binder,在java空间,还是c/c++空间,通用。原理一句话,在内核中有个binder驱动,开辟共享内存区,各程序,都是通过open,read,write,ioctl去访问共享内存,至少上层实现那就复杂到恶心~~
3. 不管java空间的程序,还是c/c++空间的程序,在内核里,都是以进程存在。
4. 在java,c++中,在类文件有全局变量,即只是对一个进程的全局变量,要与内核的全局变量有所区别。
5. 内核:此空间类如一个大进程,以模块为单位,各模块全局变量,
可以用适当方式在各模块间共享,即又是每个进程共享空间。
6. android源码文件位置放置,一直令我很纠结,不过慢慢了解了android一个模块的框架就明白了,它文件放置的“习性”,在这不易贴出,留给大家感受纠结吧~呵~
至此~