1. 为何要开启多进程
为何开启android应用要开启多进程,主要有以下几点:
单进程所分配的内存不够,需要更多的内存。在早期android系统只为一个单进程的应用分配了16M的可用内存,随着手机的硬件的提升和android系统的改进,虽然可分配内存越来越多,但仍旧可以通过开启多进程来获取更多的内存来处理自己App的业务
独立运行的组件,比如个推,它的服务会另开一个进程。
进行一些“不可告人”的操作的处理,比如双守护进程,来尽力使自己的应用不被系统杀死,或者获取用户的个人信息等其他信息。
2. 开启多进程
首先我们写一个Activity并启动一个service
publicclassMyProcessActivityextendsAppCompatActivity {@OverrideprotectedvoidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_process); Intent myServiceIntent=new Intent(MyProcessActivity.this,MyService.class); this.startService(myServiceIntent); }}
service的代码:
publicclassMyServiceextendsService {privatestaticfinal String TAG = "wangshu"; @OverridepublicvoidonCreate() { Log.i(TAG,"MyService is oncreate"); } @OverridepublicintonStartCommand(Intent intent, int flags, int startId) { Log.i(TAG, "MyProcessActivity is created: "); return START_STICKY; } @OverridepublicvoidonDestroy() { Log.i(TAG,"OnDestory"); } @Overridepublic IBinder onBind(Intent arg0) { returnnull; }}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
最后我们只需要在AndroidManifest.xml中的配置 android:process就可以了
<?xml version="1.0" encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.example.liuwangshu.myprogress" ><applicationandroid:allowBackup="true"android:name=".MyApplication"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme" ><
关键字: