日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Xposed简介以及小米去桌面广告的简单实现

發(fā)布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Xposed简介以及小米去桌面广告的简单实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

提起Xposed,大多數(shù)Android開發(fā)者都聽過或者用過,甚至有一些開發(fā)過比較炫酷的模塊。這是我前段時間在公司的分享內(nèi)容,分享給大家。

#最先發(fā)表于個人博客 https://guolei1130.github.io/

Xposed簡介

Xposed框架是一款可以在不修改APK的情況下影響程序運行(修改系統(tǒng))的框架服務(wù),基于它可以制作出許多功能強大的模塊,且在功能不沖突的情況下同時運作。項目地址:https://github.com/rovo89 包括以下幾個部分:

  • Xposed & android_art ,Xposed framework,核心
  • XposedBridge java 部分的framework,我們開發(fā)模塊要用到
  • XposedInstaller 安裝器,用去安裝Xposed framework以及管理Xposed 模塊
  • 那么,Xposed有什么應(yīng)用場景么,就目前來說,我們耳熟能詳?shù)膽?yīng)用場景就是搶紅包了,xposed的應(yīng)用場景取決于我們的思維和想法。現(xiàn)在比較火的模塊如搶紅包之類的,消息防撤回、綠色守護、黑獄、小米去廣告等等。

    如何使用Xposed

    就目前的國內(nèi)情況來講,要想用Xposed的話,我個人推薦小米手機。

  • root
  • 安裝Xposed,要找對應(yīng)手機RAM對應(yīng)Android版本的Xposed framework,可以去小米論壇上找
  • 從酷安市場或者Xposed installer里安裝自己喜歡的模塊,
  • 勾選,重啟生效
  • 如何開發(fā)自己的Xposed模塊

    關(guān)于開發(fā)自己的Xposed模塊,在Xposed項目的wiki中,有很詳細的介紹,并且開發(fā)Xposed模塊的話確實比較簡單,難點在于找到你想實現(xiàn)功能的切入點,我們這里以去掉小米桌面的廣告為例。關(guān)于如何開發(fā)Xposed模塊,前往Xposed Wiki 查看學(xué)習(xí)

    要想實現(xiàn)去廣告,首先我們需要想一些辦法,我最初想到的辦法是從廣告的Api入手,替換掉url地址,經(jīng)過試驗,失敗了。但是發(fā)現(xiàn),小米桌面文件夾(就那個好幾個app放在一起的地方)有個隱藏的功能,修改名稱的時候,下面有個是否推薦那個,這里可以關(guān)掉廣告,所以,從這里入手。

    第一步,我們需要拿到小米Home的代碼,這個對于我們root了的手機,簡單的很,不過,這里我們要對代碼進行一些操作,因為我們能拿到的是odex文件,我們要將其轉(zhuǎn)化為jar文件,轉(zhuǎn)換過程odex->smail->dex->jar,這里我們借助兩個開源項目可以輕松完成。https://github.com/JesusFreke/smali (https://bitbucket.org/JesusFreke/smali/downloads/)

    https://github.com/pxb1988/dex2jar

    第二步,找到對應(yīng)點擊文件夾圖標(biāo)的方法,我們直接在Launcher中搜索openF(older),關(guān)于Launcher,這里不多說。我們能搜索到如下代碼。

    public void openFolder(FolderInfo paramFolderInfo, View paramView){this.mFolderClosingInNormalEdit = false;this.mWorkspace.post(new Runnable(this, paramFolderInfo){public void run(){if (Launcher.access$1100(this.this$0).isOpened())return;Launcher.access$3702(this.this$0, false);ShortcutIcon.setEnableLoadingAnim(true);Launcher.access$1100(this.this$0).bind(this.val$folderInfo);Launcher.access$1100(this.this$0).open();this.this$0.updateStatusBarClock();Launcher.access$3800(this.this$0).cancel();if ((this.this$0.isInNormalEditing()) || (this.this$0.isSceneShowing()))Launcher.access$3800(this.this$0).setDuration(Folder.DEFAULT_FOLDER_BACKGROUND_SHORT_DURATION);while (true){do{Launcher.access$3800(this.this$0).setFloatValues(new float[] { 0F, 1F });Launcher.access$3800(this.this$0).setInterpolator(new CubicEaseInOutInterpolater());Launcher.access$3800(this.this$0).start();}while (this.this$0.isInEditing();this.val$folderInfo.onLaunch();LauncherModel.updateItemFlagAndLaunchCount(this.this$0, this.val$folderInfo);return;Launcher.access$3800(this.this$0).setDuration(Folder.DEFAULT_FOLDER_OPEN_DURATION);}}});}

    我們這里,能發(fā)現(xiàn)FolderInfo這個類作為了一個參數(shù),很明顯,這是描述Folder的信息的,那么是否推薦這個屬性,一定是在這里面了。我們進去看看。

    在這里搜索recommend,我們能發(fā)現(xiàn)這么一個變量。

    private boolean mEnbaleRecommendAppsView = false;

    細心的同學(xué)發(fā)現(xiàn)他這個變量名是不是手抖了。。。

    private?那么,我們不管三七二十一,直接干掉get方法,直接返回false是不是就可以實現(xiàn)呢?嘗試一波,寫下如下代碼。

    public class XposedDemo implements IXposedHookLoadPackage {private static final String TAG = "myxposed";@Overridepublic void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {Log.e(TAG, "handleLoadPackage: " + lpparam.packageName + "----->" + lpparam.appInfo.sourceDir);if (lpparam.packageName.equals("com.miui.home")) {Log.e(TAG, "handleLoadPackage: " + "miui.home ");findAndHookMethod("com.miui.home.launcher.FolderInfo", lpparam.classLoader, "isRecommendAppsViewEnable", Context.class, new XC_MethodReplacement() {@Overrideprotected Object replaceHookedMethod(MethodHookParam param) throws Throwable {Log.e(TAG, "replaceHookedMethod: " + "被調(diào)用了");return false;}});}}}

    安裝,勾選,重啟。然后點開文件夾,發(fā)現(xiàn),舒服的很,確實沒了,在編輯文件夾屬性,把這個推薦打開,哈,還是沒有。果然,我們成功了。

    最后

    有沒有學(xué)到呢?我把小米Home的jar包以及當(dāng)時做的簡陋的ppt放在了 blog_resource這個倉庫,有需要的可以去拿。



    https://guolei1130.github.io/2017/11/18/Xposed%E7%AE%80%E4%BB%8B%E4%BB%A5%E5%8F%8A%E5%B0%8F%E7%B1%B3%E5%8E%BB%E6%A1%8C%E9%9D%A2%E5%B9%BF%E5%91%8A%E7%9A%84%E7%AE%80%E5%8D%95%E5%AE%9E%E7%8E%B0/

    總結(jié)

    以上是生活随笔為你收集整理的Xposed简介以及小米去桌面广告的简单实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。