在前面的文章中我們介紹了DroidPlugin的Hook機制,也就是代理方式和Binder Hook;插件框架通過AOP實現了插件使用和開發的透明性。在講述DroidPlugin如何實現四大組件的插件化之前,有必要說明一下它對ActivityManagerServiche ...
使用代理機制進行API Hook進而達到方法增強是框架的常用手段,比如J EE框架Spring通過動態代理優雅地實現了AOP編程,極大地提升了Web開發效率 同樣,插件框架也廣泛使用了代理機制來增強系統API從而達到插件化的目的。本文將帶你了解基於動態代理的Hook機制。 閱讀本文之前,可以先clone一份understand plugin framework,參考此項目的dynamic prox ...
2016-04-12 16:04 0 6384 推薦指數:
在前面的文章中我們介紹了DroidPlugin的Hook機制,也就是代理方式和Binder Hook;插件框架通過AOP實現了插件使用和開發的透明性。在講述DroidPlugin如何實現四大組件的插件化之前,有必要說明一下它對ActivityManagerServiche ...
上文 Activity生命周期管理 中我們地完成了『啟動沒有在AndroidManifest.xml中顯式聲明的Activity』的任務;通過Hook AMS和攔截ActivityThread中H類對於組件調度我們成功地繞過了AndroidMAnifest.xml的限制。 但是我們啟動 ...
前言:插件化在Android開發中的優點不言而喻,也有很多文章介紹插件化的優勢,所以在此不再贅述。前一陣子在項目中用到 DroidPlugin 插件框架 ,近期准備投入生產環境時出現了一些小問題,所以決心花些時間研究了一下 DroidPlugin 插件框架的原理,以便再出現問題時也能從 ...
前言:在上一篇博文《小白也能看懂的插件化DroidPlugin原理(一)-- 動態代理》中詳細介紹了 DroidPlugin 原理中涉及到的動態代理模式,看完上篇博文后你就會發現原來動態代理真的非常簡單,只不過就是實現一個 InvocationHandler 接口重寫一下 invoke 方法 ...
前言 做過 Android 開發的童鞋都知道,不能在非主線程修改 UI 控件,因為 Android 規定只能在主線程中訪問 UI ,如果在子線程中訪問 UI ,那么程序就會拋出異常 並且,Android 也不建議在 UI 線程既主線程中做一些耗時操作,否則會導致程序 ANR 。如果我們需要 ...
Java 有兩種代理方式,一種是靜態代理,另一種是動態代理。對於靜態代理,其實就是通過依賴注入,對對象進行封裝,不讓外部知道實現的細節。很多 API 就是通過這種形式來封裝的。 代理模式結構圖(圖片來自《大話設計模式》) 下面看下兩者在概念上的解釋: 靜態代理 靜態代理類 ...
WordPress 的插件機制實際上只的就是這個 Hook 了,它中文被翻譯成鈎子,允許你參與 WordPress 核心的運行,是一個非常棒的東西,下面我們來詳細了解一下它。 PS:本文只是簡單的總結一下,更多用法還是要參考文中給出的函數。 鈎子分類 鈎子分為兩種,一種叫做動作(action ...
定義 用於Android開發的一種特殊的圖片格式,好處在於可以定義圖片中哪些區域可以拉伸,哪些區域不可以拉伸,同時可以把顯示內容區域的位置標示清楚。 下面是普通的png資源與.9.png的資源區別: 觀察可以看到,.9圖片的外圍有一些黑色的線條,放大的圖像如下所示: 可以比較明顯的看到 ...