圖標(biāo)庫(kù)找不見(jiàn)了,插入,形狀,也沒(méi)有(圖標(biāo)不見(jiàn)了在哪里找)">圖標(biāo)庫(kù)找不見(jiàn)了,插入,形狀,也沒(méi)有(圖標(biāo)不見(jiàn)了在哪里找)
990
2025-04-01
Android 里面的兩個(gè)APK通信的方式有哪些?
自己網(wǎng)上查了查,總結(jié)了一下:
1. 廣播,最簡(jiǎn)單的方法,這個(gè)實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單
2. AIDL,功能強(qiáng)大,支持一對(duì)多并發(fā)通信,支持實(shí)時(shí)通信。
3. 網(wǎng)上一個(gè)人寫(xiě)的:
思路
通過(guò)apk1調(diào)用apk2的services,
在onServiceConnected的時(shí)候返回apk2中的自定義IBinder對(duì)象,
通過(guò)反射調(diào)用apk2中自定義IBinder對(duì)象中的方法getView(Handler handler),把a(bǔ)pk1中的handler對(duì)象傳入apk2中
可把a(bǔ)pk2中的view對(duì)象通過(guò)handler.obtainMessage(1, view).sendToTarget();返回到apk1中
這樣子apk1就能調(diào)用apk2中view對(duì)象了
附上下載包:源碼包
4.和第三種類似,有一個(gè)可以獲取另一個(gè)APK的context的方法,createPackageContext(String, int),獲取到context方法之后就可以調(diào)用另一個(gè)apk的方法了,但是要保證另一個(gè)apk是安裝過(guò)的,具體是使用sharedUserId來(lái)解決的
參考資料:http://www.cnblogs.com/mythou/p/3258715.html
5.如果另一個(gè)apk沒(méi)有被安裝過(guò)呢?
4和5兩種方式,可以參考網(wǎng)上的兩片大牛的博文
點(diǎn)我
6.文件共享,簡(jiǎn)單易用,適用于不是高并發(fā)并且不需要實(shí)時(shí)性的進(jìn)程間實(shí)時(shí)通信
7.Messenger,功能一般,支持一對(duì)多串行通信,支持實(shí)時(shí)通信,缺點(diǎn)是不能很好處理高并發(fā)情形,不支持RPC,數(shù)據(jù)通過(guò)Message進(jìn)行傳輸,因此只能傳輸Bundle支持的數(shù)據(jù)類型。適用場(chǎng)景是低并發(fā)的一對(duì)多即時(shí)通信,無(wú)RPC需求,或者無(wú)須要返回結(jié)果的RPC需求。
8.ContentProvider,優(yōu)點(diǎn)是在數(shù)據(jù)源處理方面功能強(qiáng)大,支持一對(duì)多并發(fā)數(shù)據(jù)共享,可通過(guò)call方法擴(kuò)展其他操作,適用與一對(duì)多的進(jìn)程間數(shù)據(jù)共享。
9.Socket,功能強(qiáng)大,可以通過(guò)網(wǎng)絡(luò)傳輸字節(jié)流,支持一對(duì)多并發(fā)實(shí)時(shí)通信,適用于網(wǎng)絡(luò)數(shù)據(jù)傳輸
Android
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。