Android中設(shè)置組件多進(jìn)程

MultiProcessComponent

源碼地址

  • <a >github源碼下載地址https://github.com/onlynight/MultiProcessComponent</a>

概述

這個(gè)demo中將會(huì)向你展示如果將不同的組件分配到不同的進(jìn)程中。這里我們只演示android原生提供的多進(jìn)程方式,通過(guò)jni fork的進(jìn)程我們不做演示。

  • android原生為我們提供的多進(jìn)程方式只有一種就是在AndroidManifest.xml中申明組件的時(shí)候加上 android:process 屬性。
  • 默認(rèn)情況下我們不申明這個(gè)屬性的時(shí)候所有的組件都在同一個(gè)進(jìn)程中。
  • android:processs值有以下兩種書(shū)寫(xiě)方式:

這樣android:process=":remote"前面帶有引號(hào)切不包含包名的寫(xiě)法表示該組件為應(yīng)用的私有組件,外部無(wú)法通過(guò)任何形式訪問(wèn)組件。實(shí)際上該組件所在進(jìn)程的名稱為<package>:remote,例如我的組件名稱就是com.github.onlynight:remote

這種android:process="com.github.onlynight.remote"不帶引號(hào)的寫(xiě)法就表示該組件可被其他應(yīng)用訪問(wèn),且該組件所在進(jìn)程的名稱為com.github.onlynight.remote

demo 如下

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
    
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity android:name=".SecondActivity"
              android:process=":remote"/>
    
    <service
        android:name=".ThirdService"
        android:enabled="true"
        android:exported="true"
        android:process="org.github.lion.multiprocesscomponent.remote"/>
</application>

輸出日志截圖如下:

這里寫(xiě)圖片描述

這里寫(xiě)圖片描述

這里寫(xiě)圖片描述
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容