android平台支持多進程通信,也支持應用內實現多進程
那么多進程應該能為我們帶來什么呢
我們都知道,android平台對應用都有內存限制,其實這個理解有點問題,應該是說android平台對每個進程有內存限制,比如某機型對對進程限制是24m,如果應用有兩個進程,則該應該的總內存限制是2*24m。使用多進程就可以使得我們一個apk所使用的內存限制加大幾倍。
所以可以借此圖片平台對應用的內存限制,比如一些要對圖片、視頻、大文件進程處理的好內存的應用可以考慮用多進程來解決應用操作不流暢問題。
實現多進程可以通過設置service、broadcast、activity的標簽android:process來實現。
一般情況下啟動這些組件默認是在同一個進程里運行的,如果設置了android:process標簽,則會運行在其他進程里。
如果android:process的value不是":"開頭,則系統里有同樣名字的進程的話,會放到已存在的同名進程里運行,這樣能減小消耗。
如果android:process的value是以":"開頭,則啟動一個名字為value的進程。
實現應用多進程之后,就是進程間通信啦
進程間通信有兩種實現方式:
1,用系統框架實現
2,自己實現AIDL
系統框架實現進程通信有用過Service,Broadcast,Activity,ContentProvider
轉自:http://www.eoeandroid.com/thread-320076-1-1.html
Android中,默認一個APK包就對應一個進程,其進程名就為AndroidManifest.xml文件中 指定的package名。我們可以通過Activity, Service, BroadCastReceiver, ContentProvider的android:process屬性來實現單APK多進程,但是需要注意進程間內存的不可見性。
舉例見:http://blog.csdn.net/hudashi/article/details/7858125