3、 设定IPC通信
-- 使用AndroidManifest.xml文件
- 在Android框架里,一个应用(程序)套件(Application Package)通常含有多个Java类(Class),这些类可以在同一个进程(Process)里执行;也可以在不同的进程里执行 。
- 通常,一个进程只会摆一支App。但是一支App可占用多个进程。
- 例如有一个App的AndroidManifest.xml文件内容如下:
//…….. <activity android:name=".FirstActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name ="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".LoadActivity"> </activity> <service android:name=".LoadService" android:process=":remote" > <intent-filter> <action android:name ="com.misoo.pkm.REMOTE_SERVICE" /> </intent-filter></service> </manifest>
-
其中, FirstActivity和LoadActivity两个类别会加载预设的进程里。而LoadService则会加载于名为“remote” 的独立进程里。并且,由进程#1的主线程去执行FirstActivity和LoadActivity(的函数)。而由进程#2的主线程去执行LoadService。
-
上图也可简化而表达如下图:
-
在Android的各进程里,都有一个VM对象,执行Java代码,也引导JNI本地程序的执行,实现Java与C/C++程序之间的沟通。