Android單應用開多程序與單程序跑多應用

2021-07-12 07:41:19 字數 1849 閱讀 6201

一、android應用多程序

正常情況下,乙個apk啟動後只會執行在乙個程序中,其程序名為androidmanifest.xml檔案中指定的應用包名,所有的基本元件都會在這個程序中執行。但是如果需要將某些元件(如service、activity等)執行在單獨的程序中,就需要用到android:process屬性了。我們可以為android的基礎元件指定process屬性來指定它們執行在指定程序中。多程序能突破單程序記憶體大小的控制,防止oom。

對process屬性的設定有兩種形式:        第一種形式如android:process=":remote",以冒號開頭,冒號後面的字串原則上是可以隨意指定的。如果我們的包名為「com.example.processtest」,則實際的程序名為「com.example.processtest:remote」。

這種設定形式表示該程序為當前應用的私有程序,其他應用的元件不可以和它跑在同乙個程序中。

第二種情況如 android:process="com.example.processtest.remote",以小寫字母開頭,表示執行在乙個以這個名字命名的全域性程序中,其他應用通過設定相同的shareuid可以和它跑在同乙個程序。

由於新開啟程序,所以需注意下面兩點:

2)靜態成員的失效。

//舉例

......

二、多應用程式跑同一程序

供參考使用方法

1、首先在兩個程式的manifest檔案中的manifest節點下面設定相同的shareduserid,比如: android:shareduserid="com.test"

2、在需要獲取資料的程式中建立另外乙個程式的上下文引用context,

context context = createpackagecontext("com.excellence.weather", context.context_ignore_security);其中的第乙個引數是另外乙個程式的包名,這樣就可以利用這個context像訪問自己程式的資源一樣訪問被共享的程式的資源,例如:

sharedpreferences sharedpreferences = context.getsharedpreferences(sharedpreferences_userinfo, context.mode_world_readable);

3、匯出成apk的時候使用相同的簽名

resourceid 共享方法

1、使用sharedpreferences傳遞

2、使用相同的資源名

三、獲取應用程式開啟程序個數及程序名

activitymanager mactivitymanager = (activitymanager) getsystemservice(context.activity_service);

說明: 封裝了正在執行的程序資訊

常用字段 :

int   pid    程序id

int   uid    程序所在的使用者id

string   processname 程序名,預設是包名或者由android:process=」」屬性指定

string [ ]    pkglist       執行在該程序下的所有應用程式包名

常用字段方法 :

string   packagename

應用名  string   packagename

應用包名

string   loadlabel()

獲取應用標籤

string   loadicon()

獲取應用圖示

獲取當前執行的應用程式開啟的程序列表:

1、獲得系統裡正在執行的所有程序

2、根據程序的pkglist列表裡所有包名,在安裝的應用目錄下查詢

3、根據查詢到的應用,得到標籤圖示等

Android 應用實現多程序

android service 跨程序實現 同乙個應用程式中實現多個程序通訊 通訊機制 使用aidl通訊 具體步驟 1 新建aidl檔案 例 iclickaidlinte ce.aidl inte ce iclickaidlinte ce 以上步驟,如果沒有差錯,重新編譯,會自動生成乙個 iclic...

android 多程序程式設計 必看!

關於程序的基礎概念不再贅述 首先討論如果乙個程式內存在多個程序時建立順序 看如下 public static int test 0 override public void oncreate servicea在配置檔案裡標明了使用單獨程序 大家是不是覺得步驟是這樣,現實比想像嚴峻的多啊,先看看log...

程序與多程序概念

程序 process 是計算機中程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統機結構基礎。狹義定義 程序是正在執行的程式的例項。在同一時間,同一作業系統中有兩個或兩個以上的程式處於執行狀態。php 提供了程序控制的擴充套件 pcntl。pcntl 實現了unix ...