將安卓的兩個APk打包在乙個pak中

2021-08-14 11:36:40 字數 1297 閱讀 8749

在開發的過程中,遇到安卓應用的保活問題,解決的辦法是安裝兩個apk,使用aidl通訊方式互相保持聯絡,發現一方死亡立即拉起,從而打到保活的效果,但是問題來了,你給客戶安裝也不能讓他一下安裝兩個apk吧。

最後在網上找到了乙個合理的解決辦法是,講乙個apk更名為.***格式放到以資源檔案的形式放到第二個專案中,放在assets目錄下,然後安裝啟動apk,將.***轉換為apk安裝到手機上。

注意:必須知道要轉換成.***格式的apk包名才可使用安裝,例:com.example.live1。核心**如下

//將live1安裝在手機上

private void install(context context)

//獲取本地的live1.***,***只是將live1的副檔名修改了一下,原來是以.apk結尾的。

inputstream is=context.getclass().getclassloader().getresourceasstream("assets/live1.***");

//將live.***的內容寫入到live1.apk中。

inputstreamtofile(is, file);

//提公升路徑

string cmd = "chmod 777 " + file.getabsolutepath();

runtime.getruntime().exec(cmd);

cmd="chmod 777 " +file.getparent();

runtime.getruntime().exec(cmd);

cmd="chmod 777"+new file(file.getparent()).getparent();

runtime.getruntime().exec(cmd);

//開始安裝

intent intent=new intent();

intent.addflags(intent.flag_activity_new_task);

intent.setaction(android.content.intent.action_view);

/* 設定intent的file與mimetype */

intent.setdataandtype(uri.fromfile(file), type);

context.startactivity(intent);

}catch (exception e)

}

安卓的乙個程序等級

1 active process 正處於activity resume 狀態 正處於與bound服務互動的狀態 正處於服務在前台執行的狀態 startforeground 被呼叫 service生命週期函式正在被執行 broadcastreceiver 正在執行onreceive 方法oncreat...

python將兩個list合併成乙個dict的方法

python將兩個list合併成乙個dict的方法 不使用內建函式,直接用 def run list2 1 2,3 4,5 list3 a b c d e dict i 0 length len list2 while i dict list2 i list3 i 這種方法也可以 dit dict ...

兩個網域名稱同時訪問乙個tomcat下的兩個專案

兩個網域名稱,分別對映乙個tomcat底下,兩個應用。分三個步驟完成。1 網域名稱與ip的解析,此步驟在萬網等機構完成。2 apache的httpd.conf的配置 serveradmin deqiang guo yeah.net servername www.yichaoart.com error...