編輯:Android開發教程
當然,你可以去學習如何創建一個Xposed模塊。所以你可以閱讀這篇教程(官方教程)去學習怎樣解決這個問題。這不僅僅講解如何新建模塊、如何編寫模塊,我們要往更深處思考,為什麼按照這些步驟,為什麼要新建這個類。如果你是“TL博士”那樣的人,那麼可以直接閱讀"Making the project an Xposed module" 這一章節。如果你想看完整個教程那麼你需要很好的理解能力。你將會花費時間去閱讀這篇文章,因為你不能但靠自己解決任何的問題。
可以選擇庫引用的方式。但是確保你的API類被正確地編譯到APK文件中 ,否則你會得到一個IllegalAccessError 。通過引用libs 文件(有“s”),通過Eclipse的簡單設置可以不用把XposedBridgeApi-.jar 包含進去。
你可以尋找與“時鐘”類名稱或包含該字符串的類。下一步就是,尋找他所使用的資源和布局。如果您下載了官方AOSP的代碼,就可以開始在這裡開始尋找:frameworks/base/packages/SystemUI 。你會發現不少地方出現“時鐘”。這是正常的,的確會有不同的方式來實現修改。請記住,你僅僅可以hook方法 。所以,你必須要找到一個可以在他之前、之後、或全部替換可以插入一些代碼的地方。你應該hook 住盡可能具體的方法,而不是那些會被調用上千次的方法,去避免性能問題和意想不到的副作用。
在這種情況下,您可能會發現這個layout布局res/layout/status_bar.xml 包含了一個自定義視圖類:com.android.systemui.statusbar.policy.Clock。多個想法可能會現在你的頭腦中。文字顏色的定義是通過textAppearance屬性,所以最簡單的方法就是改變它,將會改變外觀的定義 。然而,這可能有效也可能無效(因為它可能存在於更深的native 代碼中)。更換布局狀態欄將是可能的,但是你們只可以做最小的變化去更改他,相反,看看這個類。有一個叫updateClock方法,它看上去會被每分鐘調用去更新時間
查看本欄目更多精彩內容:http://www.bianceng.cn/OS/extra/
看起來完美的修改,因為它是這似乎是唯一設置文本時鐘的非常具體的方法。假如我們改變了這個clock的顏色或者字體,那麼任何調用這個方法的都會受此影響。就達成我們的需求了,我們立刻行動.
(單獨的文本顏色,這裡有一種更好的方式.看到“修改布局”的例子在 "Replacing resources".)
你可以重寫XC_MethodHook的兩個方法。您可以同時覆蓋,甚至不做操作,但後者是完全沒有意義的。這兩個方法是beforeHookedMethod和afterHookedMethod。這不是太難猜測,這兩個方法會在原始的方法的之前和之後執行。您可以使用beforeHookedMethod 方法來評價/篡改方法調用的參數(通過param.args) ,甚至阻止調用原來的方法(發送自己的結果)。afterHookedMethod 方法可以用來做基於原始方法的結果的事情。您還可以用它來操縱結果 。當然,你可以添加自己的代碼,它將會准確地在原始方法的前或後執行。
(如果你想完全取代方法,看看子類XC_MethodReplacement相反,你只需要覆蓋replaceHookedMethod )
XposedBridge保留著一個記錄了每個已經hook了的函數的注冊回調函數 的列表。那些具有最高優先級(如hookMethod定義)會首先調用。原始方法始終是優先級最低的。所以,假如你hook了一個函數並注冊了回調A(PRIO高點)和B(PRIO默認值),那麼每當hook的方法被調用,控制流將是這樣的:A.before - > B.before - >原始的方法 - > B.after - > A.after。因此,A修改了的參數,B是可以看到的,這樣可以在傳遞給原始方法之前多步地改變它。原方法的結果首先會被B處理,但是這個原始方法最終返回的結果是由A來決定的。
當用戶與視圖views進行交互的時候,views也會觸發事件。舉個例子,當用戶點擊了一個按鈕,你需要為 這個事件服務,只有這樣,才能去執行某些適當的行為。如果想這麼做的話
做音樂播放器,有時會要求EQ均衡器,但android默認的樣式是水平的,這時就需要費點心思了。先是實現默認SeekBar樣式的EQ均衡器:這是4.0以上默認樣式的 Se
Activity是Android應用用戶界面的基本組成部件。但Activity本身並不提供用戶界面(User Interface)。從程序結構層次上 來說,一個Andro
Google馬上就要正式發布Android 4.4 KitKat了。據我們現在所知,一些新的用戶界面預示著這次的操作系統將有一些新的改變,比如說重新設計的電話應用,比如說