91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是插件化技術

發布時間:2021-10-12 11:10:36 來源:億速云 閱讀:162 作者:iii 欄目:編程語言

本篇內容主要講解“什么是插件化技術”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“什么是插件化技術”吧!

什么是插件,一般指一個apk、dex、jar文件。插件化技術是指通過classloader將插件加載然后可以被宿主系統去使用。插件文件一般指從網絡獲取存放在sdcard上。當然已安裝到手機data/app目錄下的apk也可以叫插件。

插件化技術主要難點是在如何用classloader加載插件。classloader加載分單classloader和多classloader,多classloader優勢明顯,每個插件的類處在不同classloader隔離性非常好,對于同一個庫不同版本問題不會有問題。但是對于Android來說,多classloader hook系統api的點太多,(主要得hook LoadedApk里的classloader,將classloader替換為自定義classloader,這個過程比較曲折)單classloader hook要簡單一些(只需在宿主APP內獲得當前classloader,一般是PathClassloader,拿到父類BaseDexClassLoader#pathList,它存放了插件文件生成的Element 對象,所以把我們的插件生成一個Element放進去即可)

插件化思想比較簡單,但是實現比較復雜,因為需要反射hook很多系統apk,最終對于系統的穩定性不是很好。而且隨著Android系統升級需要不斷維護,所以開發一個這樣的插件得需要專門的一個團隊維護成本比較高。

virtual APP

virtual APP實現是直接對系統主要的服務進行了一個虛擬化代替,當然實現過程也是通過反射系統api,然后將自己實現的替換達到APP運行過程的攔截。

virtual app 應用 安裝系統已存在的應用并展示,點擊啟動目標應用先啟動virtual APP LeadingActivity,此時運行在APP進程。

然后通過VAMS啟動activity,此時運行在VAMS進程,在這里做了目標intent的替換操作,替換為StubAcitivy。然后啟動StubActivity此時運行在StubAcitity進程:p,此時以下就運行在:p進程作為啟動APP的進程

然后通過反射調用ActivityManagerNative 再跨進程調用系統AMS啟動activity,走系統startActivity流程。之后因為hook了HCallbackHandler。在callback中又將原真實目標intent替換回來。然后callback返回false,繼續交給ActivityThread#handlerLauncherAcitivty處理

到此,相信大家對“什么是插件化技術”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

齐齐哈尔市| 望都县| 连山| 泰和县| 紫金县| 大竹县| 晴隆县| 岳阳县| 灌南县| 华坪县| 龙海市| 蒙自县| 康平县| 建瓯市| 上思县| 舒兰市| 张家界市| 仲巴县| 武强县| 南汇区| 青州市| 会理县| 松原市| 搜索| 花莲市| 正蓝旗| 禄劝| 韩城市| 綦江县| 清远市| 洪洞县| 元氏县| 武山县| 婺源县| 奉化市| 盐亭县| 阿城市| 泰来县| 普定县| 武城县| 潼关县|