Android processes and threads

一些理解: 通常的讲,Android app开始运行时,系统都会为其建立一个process,里面包含一个main thread. html

App有机会改变其要运行的process,和其余app 共享一个process。方法是在AndroidManifest.xml里指定,有个属性android:process就是这个用处,定义的粒度能够是app级,也能够是四大组件级(activity,service,receiver,content provider) android

Process的生命周期 安全

因app运行而建立,消亡的缘由能够是本身终止,也能够是系统安排,系统的安排会看其等级来决定,出发点就是倾向于用户的优良体验。Process 分几个等级,等级越高则由于内存的问题最后被干掉的机会就越低。1.foreground process > 2.visible process >3.service process>4.Background process>5.Empty process app

 

Threads ide

系统老是会为你建立main thread(UI thread),不要block main thread(不然会获得ANR),也不要从其余thread去作UI操做。 你能够建立其余worker thread去作其余费时的事情(好比load big bitmap),以避免block main thread.另外从其余worker thread要处理UI操做,能够用下列Android其余的方式,来保证线程安全(thread-safe): post

Activity.runOnUiThread(Runnable)
View.post(Runnable)
View.postDelayed(Runnable, long) ui

也可用Async task来作上述事情, 出发点都是为了线程安全。 线程

问题:一个App最多同时有四个Async task? component

IPC(InterProcessCommunication) xml

Android里,简单的讲就是,这个process 调用的代码其实真正是在另外一个process里作的。 调用方只要指定调用的方法以及数据,Android负责透明传输以及返回结果。

 

 

参考:/docs/guide/components/processes-and-threads.html

相关文章
相关标签/搜索