中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

如何正確的使用Xposed插件

發布時間:2021-06-12 18:59:45 來源:億速云 閱讀:186 作者:Leah 欄目:移動開發

本篇文章給大家分享的是有關如何正確的使用Xposed插件,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1.先新建一個android project(推薦用android studio)

這個project不需要任何activity,相關的組件引用也可以刪光,這樣編譯后的apk就很小了。

2.修改項目的build.gradle

追加2個配置

repositories {
jcenter();
}
dependencies {
provided ‘de.robv.android.xposed:api:82'
}

如何正確的使用Xposed插件

3.修改AndroidManifest.xml 讓xposed能識別這個插件

正常情況下,xposed是無法識別我們的應用是不是xposed插件的,我們必須在manifest上打上一個標簽來聲明自己。
官方給的例子如下

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="de.robv.android.xposed.mods.tutorial"
 android:versionCode="1"
 android:versionName="1.0" >

 <uses-sdk android:minSdkVersion="15" />

 <application
  android:icon="@drawable/ic_launcher"
  android:label="@string/app_name" >
  <meta-data
   android:name="xposedmodule"
   android:value="true" />
  <meta-data
   android:name="xposeddescription"
   android:value="Easy example which makes the status bar clock red and adds a smiley" />
  <meta-data
   android:name="xposedminversion"
   android:value="53" />
 </application>
</manifest>

簡單的講,就是application配置段內添加如下3個屬性就好了

  <meta-data
   android:name="xposedmodule"
   android:value="true" />
  <meta-data
   android:name="xposeddescription"
   android:value="Easy example which makes the status bar clock red and adds a smiley" />
  <meta-data
   android:name="xposedminversion"
   android:value="53" />

4.實現xposed的接口

空白的class如下

package cn.coderstory.xposeddemo;
public class Demo {

}

如果我們想要這個類有hook各種代碼的能力,我們需要讓這個類實現一些xposed框架提供的接口。

具體實現什么接口,需要看我們具體的需求。

常見的額接口如下

IXposedHookZygoteInit, IXposedHookLoadPackage, IXposedHookInitPackageResources

IXposedHookZygoteInit接口實現了ZygoteInit階段的hook能力,用于在Zygote進程啟動之前執行相關代碼,framework里的東西一般再這里改。

IXposedHookLoadPackage接口實現了加載app階段的hook能力,用于hook app的代碼

IXposedHookInitPackageResources接口實現了加載app資源時的hook能力,用于修改app的一些資源,比如布局文件什么的。

如何正確的使用Xposed插件

5.寫具體的代碼邏輯

現在我們寫一個功能,比如隱藏MIUI下拉菜單里面的搜索框

參考源碼

package cn.coderstory.xposeddemo;

import de.robv.android.xposed.IXposedHookInitPackageResources;
import de.robv.android.xposed.callbacks.XC_InitPackageResources;

/**
 * Created by cc on 2017/1/3.
 * 隱藏MIUI下拉菜單搜索框
 */
//IXposedHookInitPackageResources接口實現修改資源app的資源文件
public class Demo implements IXposedHookInitPackageResources{

 @Override
 public void handleInitPackageResources(XC_InitPackageResources.InitPackageResourcesParam resparam) {
 //如果當前處理的是systemui
 if (resparam.packageName.equals("com.android.systemui")) {
  //調用setReplacement方法替換名為config_show_statusbar_search的變量值為false
  resparam.res.setReplacement(resparam.packageName, "bool", "config_show_statusbar_search", false);
 }
 }
}

這樣,功能就寫好了。

6.創建和編輯xposed_init配置文件

接下來我們需要再項目里新建一個名為assets的目錄,然后在目錄里新建一個名為xposed_init的文件,文本類型的。
這個文件主要記錄了app里所有實現xposed功能的類,在開機的時候,xposed會依次加載這些類。

新建assets目錄

如何正確的使用Xposed插件

新建xposed_init文件,類型選擇Text

如何正確的使用Xposed插件

xposed_init里寫當前類的路徑 如果存在多個類,那么每行寫一個,多個寫多行

如何正確的使用Xposed插件

以上就是如何正確的使用Xposed插件,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

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

AI

金溪县| 固阳县| 社旗县| 隆化县| 承德市| 新田县| 鹰潭市| 山阴县| 周至县| 卫辉市| 阿合奇县| 资溪县| 平谷区| 文登市| 新河县| 娄底市| 榆中县| 黔西县| 界首市| 富源县| 定日县| 包头市| 离岛区| 革吉县| 迭部县| 丹巴县| 松潘县| 德安县| 兴化市| 岢岚县| 图片| 济源市| 宝坻区| 当涂县| 延寿县| 青州市| 陇南市| 嘉祥县| 丹凤县| 肇东市| 施秉县|