外掛化開發整體流程
<一> 四大元件(Activity)
1.將宿主APk的dex和外掛APK的dex數組合並
2.將啟動的Activity(Intent) 替換成佔坑的Activity,繞過檢測。反射獲取AMS的代理的startActivity方法
3.將佔坑的Activity替換成目標Activity,通過Handler的CallBack,在ActivityThread裡面的傳送訊息的Handler沒有設定CallBack。通過它可以攔截訊息處理髮送過來的訊息。
<二>資源的整合
1.建立外掛資源的Resource
2.給外掛apk設定資源的回撥,在宿主的Application中重寫getResource和getAssert,getTheme
3.在外掛資源的activity中,呼叫宿主apk 的資源回撥,重寫Activity的getResources和getAssets,getTheme
相關推薦
外掛化開發整體流程
<一> 四大元件(Activity) 1.將宿主APk的dex和外掛APK的dex數組合並 2.將啟動的Activity(Intent) 替換成佔坑的Activity,繞過檢測。反射獲取AMS的代理的startActivity方法 3.將佔坑的Activity替
[Songqw.Net 基礎]WPF實現簡單的外掛化開發
原文: [Songqw.Net 基礎]WPF實現簡單的外掛化開發 接著上一篇部落格, 那裡實現了簡單的控制檯載入外掛,在這裡通過WPF實現,做個備份. WPF控制元件空間經常會與WinFrom混淆,要記得WPF控制元件是引用 using System.Windows.Co
外掛化開發---DroidPlugin對廣播的管理
回想一下我們日常開發的時候是如何使用BroadcastReceiver的:註冊, 傳送和接收;因此,要實現BroadcastReceiver的外掛化就這三種操作提供支援;接下來我們將一步步完成這個過程。 我們可以註冊一個BroadcastReceiver然後接
Android外掛化開發過程中遇到的問題總結
最近接手的一個專案,是在外掛分支裡開發一個功能。但是寫過demo之後,發現同樣的程式碼在專案中執行不起來。在此過程中遇到的問題總結一下,以便以後遇到同樣的問題直到問題出在哪。 一、四大元件的註冊 四大元件的使用是一定要宣告的,尤其是要在主站中宣告。並且在外掛化開發的過程中
Android外掛化開發之AMS與應用程式(客戶端ActivityThread、Instrumentation、Activity)通訊模型分析
今天主要分析下ActivityManagerService(服務端) 與應用程式(客戶端)之間的通訊模型,在介紹這個通訊模型的基礎上,再 簡單介紹實現這個模型所需要資料型別。 本文所介紹內容基於android2.2版本。由於Android版本的不同
iOS開發------Widget(Today Extension)外掛化開發
iOS10.0釋出啦(貌似過去有點時間了吧 - -),在巨集觀帶給我們使用體驗的提升之外,更多的是帶給iOS開發者一定的欣喜。 因為我們又要學習新東西來適配10啦。 博文所說的Widget(以下稱之為拓展應用)並不是iOS10系統新推出的外掛化應用(其實
Android外掛化開發教程(一)
1.什麼是外掛化開發首先我們要對外掛化的概念有一個認識:外掛化開發是將整個app拆分成很多模組,這些模組包括一個宿主和多個外掛,每個模組都是一個apk(元件化的每個模組是個lib),最終打包的時候將宿主apk和外掛apk分開或者聯合打包。外掛式開發通俗的講就是把一個很大的app分成n多個
微信服務號開發整體流程
1、微信的各個平臺微信開放平臺,面向開發人員,為網站、App 提供微信第三方登入功能,為 App 提供支付功能(通過客戶端 sdk 拉起微信客戶端);微信公眾平臺,對應的是公眾號,包括訂閱號、服務號、企業號,面向運營人員和開發人員,運營可以直接登入公眾號管理後臺檢視公眾號的各
《Android外掛化開發指南》勘誤
一些常識: 1)全書70個程式碼例子中,涉及到外掛的例子,請先assemble外掛的專案,這會在HostApp專案中生成assets目錄,並在該目錄下plugin1.apk。這樣,HostApp才能正常執行。 2)本書基於Android6.0(API level 23)的原始碼進行分析,本書的程式碼在
《Android外掛化開發指南》面世
本書Q群:389329264 (一)這是一本什麼書 如果只把本書當作純粹介紹Android外掛化技術的書籍,那就大錯特錯了。 本書在研究Android外掛化之餘,還詳細介紹了Android系統的底層知識,包括Binder和AIDL的原理、四大元件的原理、Ap
安卓之外掛化開發使用DexClassLoader&AssetManager來更換面板
這篇文章主要使用DexClassLoader來實現外掛化更換面板,即將面板獨立出來做成一個面板外掛apk,當用戶想使用該面板時需下載(不需要安裝)對應的面板外掛apk 效果圖 【為方便測試,主要通過改變背景圖來簡單地展示面板更換】 一、
Android外掛化開發 第三篇 [載入外掛資源]
引言 本文講解宿主如何從外掛apk中獲取到資源,為啥要從外掛中獲取資源呢?這種需求可能來自於顯示外掛的名字啊,圖示之類的。比如宿主的一個按鍵上顯示“掃一掃”或者"搖一搖"之類的,這個字串是外掛提供的。 Demo建立 引入外掛的AssetManager private sta
詳解Android外掛化開發-資源訪問
動態載入技術(也叫外掛化技術),當專案越來越龐大的時候,我們通過外掛化開發不僅可以減輕應用的記憶體和CPU佔用,還可以實現熱插拔,即在不釋出新版本的情況下更新某些模組。 通常我們把安卓資原始檔製作成外掛的形式,無外乎有一下幾種: zip
外掛化開發系列之三---Android外掛化從入門到放棄-最強合集
本人最近研究外掛化, 偶然發現此合集, 按照部分連結的文章實際簡單寫了些demo,受益良多, 覺得確實不錯,特轉載過來,給需要的人。 外掛化涉及的東西很多,所以我們需要多個維度去學習。大概分為5個部分:預備知識、入門、進階、系列、類庫。一步一步深入瞭解外掛的原理。 基礎1.Java 類載入器 類載入
Android Plugin插樁式實現外掛化開發(一)-實現原理及Activity外掛化實現
1. 前言在現在一些大型的Android應用中都採用了外掛化的開發方式,比如美團,支付寶及我們常用的微信等採用了插修的化的開發方式來進行開發的,既然國內一流的網際網路公司都採用這樣的方式來開發那它一定能帶給開發部署大型應用帶來很大的便捷,那麼外掛化的優勢在哪裡呢?1.1 外掛
安卓之外掛化開發使用PathClassLoader來動態更換面板
這篇文章主要使用PathClassLoader來實現外掛化更換面板 (將面板獨立出來做成一個面板外掛apk,當用戶想使用該面板時需下載對應的面板外掛) 效果圖: 【主要通過改變
外掛化開發---Hook之動態代理方式
今天自己來了解下Hook原理,以及在安卓開發中佔有的意義,我們先來理解下什麼是hook呢? hook就是對安卓原始碼、其他apk原始碼,在相應位置找hook點,然後通過反射等操作,來執行自己程式碼,進而達到需要的功能 以下2個截圖就是之前我公司進行的微信
[外掛化開發] 1. 初識OSGI
初識 OSGI 背景 當前product是以solution的方式進行售賣,但是隨著公司業務規模的快速誇張,隨之而來的是新客戶的產品開發,老客戶的產品維護,升級以及修改bug,團隊的效能明顯下降,為了解決此類問題,必須站在公司戰略的統一高度來重構系統。 榮幸的是,本人在此時加入團隊並負責系統架構的升級與重構工
[外掛化開發] Poc之後,我選擇放棄OSGI
Poc之後,我選擇放棄OSGI TIPS: 如貴司允許重構老系統或者允許使用OSGI的第三方框架改造所帶來的投入成本,並且評估之後ROI樂觀,那麼還是可以使用的。 Runtime Version 以下問題全部基於Equinox框架 & 使用BluePrint 整合Spring框架 OSGI
外掛化開發筆記(一)代理模式
前言 外掛化開發所涉及到的技術點非常多,比如程式的啟動流程、四大元件啟動流程、ClassLoader原理、上下文Context、AMS原理、反射、代理等。本篇主要簡單介紹代理模式(實際上只是一篇學習筆記),為後面介紹外掛化實現做知識鋪墊。 一、定義 &n