Android中单APK应用多进程
本人博客原文
Android中,默认一个APK包就对应一个进程,其进程名就为AndroidManifest.xml文件中 指定的package名。我们可以通过Activity, Service, BroadCastReceiver, ContentProvider的android:process属性来实现单APK多进程
package...;import..Bundle;import..Activity;import..Intent;import..Log;import..Menu;import..MenuItem;import....NavUtils;publicclassMainActivityextendsActivity{staticboolean=false;finalstaticString="robin";@Overridepublicvoid(Bundle){super.();(..);=true;Log.(,"on create() in MainActivity");this.(newIntent(this,MyService.class));}}文件2 MyService.java
package...;import..Service;import..Intent;import..IBinder;import..Log;publicclassMyServiceextendsService{String="robin";@Overridepublicvoid(){Log.(,"MyService is oncreate");}@Overridepublicint(Intent,int,int){Log.(,"MainActivity is created: "+MainActivity.);return;}@Overridepublicvoid(){Log.(,"OnDestory");}@OverridepublicIBinder(Intent){returnnull;}}文件3 layout\activity_main.xml
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_centerVertical="true"android:text="@string/hello_world"tools:context=".MainActivity"/></RelativeLayout>文件4 AndroidManifest.xml
<manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.lenovo.robin.test"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="15"/><applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme"><activityandroid:name=".MainActivity"android:label="@string/title_activity_main"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity><serviceandroid:name=".MyService"android:label="@string/title_activity_main"></service></application></manifest>文件5 values\strings.xml
<resources><stringname="app_name"></string><stringname="hello_world"></string><stringname="menu_settings"></string><stringname="title_activity_main"></string></resources>运行该应用程序DDMS截图显示的进程如下:
<manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.lenovo.robin.test"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="15"/><applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme"><activityandroid:name=".MainActivity"android:label="@string/title_activity_main"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity><serviceandroid:name=".MyService"android:label="@string/title_activity_main"android:process="com.lenove.robin.test.service"></service></application></manifest>DDMS截图显示的进程如下: