一般来说,一个APP默认只有一个进程,进程名称就是它的包名,我们可以通过DDMS里面的Devices视图中看到手机运行的进程,如下图所示:
[Android开发]多进程访问数据库SQLite问题
当然,在一些项目中,可能存在着一个APP有多个进程的情况。如上面的“com.instagram.android”和“com.instragram.android.mqtt”其实就是Instragram的两个不同的进程。两者之间的通讯就属于跨进程通讯了。
多进程的有很多好处,
1)可以获得更多内存。进程是系统分配资源和调度的基本单位,进程越多得到的资源就越多。
2)一个Service如果处于一个独立的进程中,那么即使这个Service崩溃掉,主进程都不受影响。如果主进程崩溃掉,Service进程也不受影响。http://stackoverflow.com/questions/4658511/android-how-to-decide-whether-to-run-a-service-in-a-separate-process
多进程的实现方式,一般是在AndroidManefest.xml中声明组件的时候,通过“android:process”标签来指定组件在哪个进程中运行,如下:
[Android开发]多进程访问数据库SQLite问题
如果“android:process”的值不是“:”开头,则系统里有同样名字的进程的话,会放到已存在的同名进程里运行,这样能减小消耗。
如果“android:process”的值是以“:”开头,则启动一个指定名字的进程。
[Android开发]多进程访问数据库SQLite问题
当然,在一些项目中,可能存在着一个APP有多个进程的情况。如上面的“com.instagram.android”和“com.instragram.android.mqtt”其实就是Instragram的两个不同的进程。两者之间的通讯就属于跨进程通讯了。
多进程的有很多好处,
1)可以获得更多内存。进程是系统分配资源和调度的基本单位,进程越多得到的资源就越多。
2)一个Service如果处于一个独立的进程中,那么即使这个Service崩溃掉,主进程都不受影响。如果主进程崩溃掉,Service进程也不受影响。http://stackoverflow.com/questions/4658511/android-how-to-decide-whether-to-run-a-service-in-a-separate-process
多进程的实现方式,一般是在AndroidManefest.xml中声明组件的时候,通过“android:process”标签来指定组件在哪个进程中运行,如下:
[Android开发]多进程访问数据库SQLite问题
如果“android:process”的值不是“:”开头,则系统里有同样名字的进程的话,会放到已存在的同名进程里运行,这样能减小消耗。
如果“android:process”的值是以“:”开头,则启动一个指定名字的进程。