Android 多進(jìn)程

一般情況下,一個apk啟動后只會運(yùn)行在一個進(jìn)程中梯皿,其進(jìn)程名為AndroidManifest.xml文件中指定的應(yīng)用包名暑诸,所有的基本組件都會在這個進(jìn)程中運(yùn)行。但是如果需要將某些組件(如Service峰搪、Activity等)運(yùn)行在單獨(dú)的進(jìn)程中岔冀,就需要用到Android:process屬性了。我們可以為Android的基礎(chǔ)組件指定process屬性來指定它們運(yùn)行在指定進(jìn)程中概耻。

實(shí)現(xiàn)方法

都是在AndroidManifest.xml中設(shè)置process實(shí)現(xiàn)使套,也有兩種形式

  • 第一種形式如 android:process=":remote"罐呼,以冒號開頭,冒號后面的字符串原則上是可以隨意指定的侦高。如果我們的包名為“com.example.processtest”嫉柴,則實(shí)際的進(jìn)程名為“com.example.processtest:remote”。這種設(shè)置形式表示該進(jìn)程為當(dāng)前應(yīng)用的私有進(jìn)程奉呛,其他應(yīng)用的組件不可以和它跑在同一個進(jìn)程中差凹。
  • 第二種情況如android:process="com.example.processtest.remote",以小寫字母開頭侧馅,表示運(yùn)行在一個以這個名字命名的全局進(jìn)程中,其他應(yīng)用通過設(shè)置相同的ShareUID可以和它跑在同一個進(jìn)程呐萌。
<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
package="com.example.processtest"  
android:versionCode="1"  
android:versionName="1.0" >  

<uses-sdk  
    android:minSdkVersion="8"  
    android:targetSdkVersion="19" />  

<application  
    android:name="com.example.processtest.MyApplication"  
    android:icon="@drawable/ic_launcher"  
    android:label="@string/app_name">  
    <activity  
        android:name=".ProcessTestActivity"  
        android:label="@string/app_name" >  
        <intent-filter>  
            <action android:name="android.intent.action.MAIN" />  

            <category android:name="android.intent.category.LAUNCHER" />  
        </intent-filter>  
    </activity>  
      
    <service  
        android:name=".ProcessTestService"  
        android:process=":remote">  
    </service>  
</application>  

</manifest>

潛在問題

開啟多進(jìn)程很簡單馁痴,但是這樣卻存在很多問題

  • 多進(jìn)程間內(nèi)存不可見
  • Application被多次執(zhí)行
  • 靜態(tài)成員的失效
  • 文件共享問題
  • 斷電調(diào)試問題

總結(jié)

其實(shí),Android實(shí)現(xiàn)應(yīng)用內(nèi)多進(jìn)程并不是簡單的設(shè)置屬性process就可以了肺孤,而是會產(chǎn)生很多特殊的問題罗晕。像前面提到的,Android啟動多進(jìn)程模式后赠堵,不僅靜態(tài)變量會失效小渊,而且類似的如同步鎖機(jī)制、單例模式也會存在同樣的問題茫叭。這就需要我們在使用的時候多加注意酬屉。而且設(shè)置多進(jìn)程之后,各個進(jìn)程間就無法直接相互訪問數(shù)據(jù)揍愁,只能通過AIDL等進(jìn)程間通信方式來交換數(shù)據(jù)呐萨。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市莽囤,隨后出現(xiàn)的幾起案子谬擦,更是在濱河造成了極大的恐慌,老刑警劉巖朽缎,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惨远,死亡現(xiàn)場離奇詭異,居然都是意外死亡话肖,警方通過查閱死者的電腦和手機(jī)北秽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狼牺,“玉大人羡儿,你說我怎么就攤上這事∈窃浚” “怎么了掠归?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵缅叠,是天一觀的道長。 經(jīng)常有香客問我虏冻,道長肤粱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任厨相,我火速辦了婚禮领曼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛮穿。我一直安慰自己庶骄,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布践磅。 她就那樣靜靜地躺著单刁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪府适。 梳的紋絲不亂的頭發(fā)上羔飞,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天,我揣著相機(jī)與錄音檐春,去河邊找鬼逻淌。 笑死,一個胖子當(dāng)著我的面吹牛疟暖,可吹牛的內(nèi)容都是我干的卡儒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼誓篱,長吁一口氣:“原來是場噩夢啊……” “哼朋贬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起窜骄,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤锦募,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后邻遏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體糠亩,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年准验,在試婚紗的時候發(fā)現(xiàn)自己被綠了赎线。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡糊饱,死狀恐怖垂寥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤滞项,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布狭归,位于F島的核電站,受9級特大地震影響文判,放射性物質(zhì)發(fā)生泄漏过椎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一戏仓、第九天 我趴在偏房一處隱蔽的房頂上張望疚宇。 院中可真熱鬧,春花似錦赏殃、人聲如沸敷待。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽讼撒。三九已至,卻和暖如春股耽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钳幅。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工物蝙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人敢艰。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓诬乞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親钠导。 傳聞我的和親對象是個殘疾皇子震嫉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Jianwei's blog 首頁 分類 關(guān)于 歸檔 標(biāo)簽 巧用Android多進(jìn)程,微信牡属,微博等主流App都在用...
    justCode_閱讀 5,915評論 1 23
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,085評論 25 707
  • 1.為什么要使用多進(jìn)程票堵? 相信很多同學(xué)在實(shí)際開發(fā)中,基本都不會去給app劃分進(jìn)程逮栅,而且悴势,在Android中使用多進(jìn)...
    一分耕耘一分收獲閱讀 2,989評論 1 5
  • 你的孩子是不是愛亂涂亂畫特纤,你的孩子是不是喜歡在外打鬧,但是你又怕有什么危險……總之侥加,我們對孩子那是操碎了心捧存,想找個...
    喵梓閱讀 268評論 0 0
  • 1.同事說我說話很急躁,讓我有點(diǎn)驚訝,因?yàn)槲矣X得自己說得比較平靜昔穴。下次注意一下說話的語速放慢一半镰官,聲音放大一倍,表...
    幻影旅團(tuán)閱讀 195評論 0 0