Android开启多进程

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);    }}
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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" ><
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信