外掛程式化程式設計技術
動態匯入
執行時,根據使用者需求(提供字串),找到模組的資源動態載入起來
內建函式__import __() 動態匯入
# testa
classa:
defshow
(self)
:print
('cls a ==>'
,__name__)
# testb.py
mod =
__import__
('testa'
)# 等價於 import testa as mod
cls =
getattr
(mod,
'a')
#獲取模組中的類,a
cls(
).show(
)#例項呼叫show方法--
----
----
----
----
----
----
----
----
----
----
----
----
----
----
cls a ==
> testa
importlib.import_module() 動態匯入importlib. import_module(name,package=
none
)
支援絕對匯入和相對匯入,如果是相對匯入,package必須設定
# testa
classa:
defshow
(self)
:print
('cls a ==>'
,__name__)
# testb.py
import importlib
defplugin_load
(plugin_name:
str, sep=
":")
:#把拿到的字串用":"分割成3部分
m,_,c = plugin_name.partition(sep)
#前面部分的m等效為匯入的模組,c為模組中的類
mod = importlib.import_module(m)
cls =
getattr
(mod,c)
return cls(
)#返回例項
if __name__==
'__main__'
: a = plugin_load(
'testa:a'
)# a等於呼叫函式plugin_load()函式返回的例項
a.show(
)# 例項呼叫模組中類的方法--
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
-cls a ==
> testa
依賴的技術 VB程式設計外掛程式AmicForVB外掛程式
amicforvb外掛程式功能 1.新增api雙擊就可 2.迅速整理 3.支援滑鼠中鍵 4.可陣列新增控制項 5.可輸出api的動態dll函式 6.擴充套件了vb控制項全選不足 7.可生成在xp下的xp樣式控制項 8.記事本功能 9.可定義快捷文字插入,並能自定義指令碼 10.視窗支援滑鼠滾輪 安裝...
外掛程式化小結
2 在編譯的時候會將子外掛程式偽裝為so,並且合併manifest。3 子外掛程式可以直接編譯為apk,他只需要負責實現自己的功能即可,盡量避免多個直外掛程式之間互相干擾。4 如果在apk發布後需要動態載入新的頁面也業務。manifest是沒有辦法改變的,如何找到這個activity呢?a 可以使用...
外掛程式化 BroadcastReceiver載入
android 廣播分為靜態廣播和動態廣播 2 動態廣播通過 的方式進行註冊,呼叫context的registerreceiver方法,最終會activitymanagernative.getdefault registerreceiver,所以 動態廣播的註冊資訊存在於ams中。傳送廣播和接受廣播...