写点什么

Xposed 简介以及小米去桌面广告的简单实现,五步搞定 Android 开发环境部署

用户头像
Android架构
关注
发布于: 刚刚

================================================================


提起 Xposed,大多数 Android 开发者都听过或者用过,甚至有一些开发过比较炫酷的模块。这是我前段时间在公司的分享内容,分享给大家。

Xposed 简介

Xposed 框架是一款可以在不修改 APK 的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。项目地址:github.com/rovo89 包括以下几个部分:


  1. Xposed & android_art ,Xposed framework,核心

  2. XposedBridge java 部分的 framework,我们开发模块要用到

  3. XposedInstaller 安装器,用去安装 Xposed framework 以及管理 Xposed 模块


那么,Xposed 有什么应用场景么,就目前来说,我们耳熟能详的应用场景就是抢红包了,xposed 的应用场景取决于我们的思维和想法。现在比较火的模块如抢红包之类的,消息防撤回、绿色守护、黑狱、小米去广告等等。

如何使用 Xposed

就目前的国内情况来讲,要想用 Xposed 的话,我个人推荐小米手机。


  1. root

  2. 安装 Xposed,要找对应手机 RAM 对应 Android 版本的 Xposed framework,可以去小米论坛上找

  3. 从酷安市场或者 Xposed installer 里安装自己喜欢的模块,

  4. 勾选,重启生效

如何开发自

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


己的 Xposed 模块


关于开发自己的 Xposed 模块,在 Xposed 项目的 wiki 中,有很详细的介绍,并且开发 Xposed 模块的话确实比较简单,难点在于找到你想实现功能的切入点,我们这里以去掉小米桌面的广告为例。关于如何开发 Xposed 模块,前往Xposed Wiki 查看学习


要想实现去广告,首先我们需要想一些办法,我最初想到的办法是从广告的 Api 入手,替换掉 url 地址,经过试验,失败了。但是发现,小米桌面文件夹(就那个好几个 app 放在一起的地方)有个隐藏的功能,修改名称的时候,下面有个是否推荐那个,这里可以关掉广告,所以,从这里入手。


第一步,我们需要拿到小米 Home 的代码,这个对于我们 root 了的手机,简单的很,不过,这里我们要对代码进行一些操作,因为我们能拿到的是 odex 文件,我们要将其转化为 jar 文件,转换过程 odex->smail->dex->jar,这里我们借助两个开源项目可以轻松完成。github.com/JesusFreke/… (bitbucket.org/JesusFreke/…)


github.com/pxb1988/dex…


第二步,找到对应点击文件夹图标的方法,我们直接在 Launcher 中搜索 openF(older),关于 Launcher,这里不多说。我们能搜索到如下代码。


public void openFolder(FolderInfo paramFolderInfo, View paramView){this.mFolderClosingInNormalEdit = false;this.mWorkspace.post(new Runnable(this, paramFolderInfo){public void run(){if (Launcher.access0).isOpened())return;Launcher.access0, false);ShortcutIcon.setEnableLoadingAnim(true);Launcher.access0).bind(this.val1100(this.this0.updateStatusBarClock();Launcher.access0).cancel();if ((this.this0.isSceneShowing()))Launcher.access0).setDuration(Folder.DEFAULT_FOLDER_BACKGROUND_SHORT_DURATION);while (true){do{Launcher.access0).setFloatValues(new float[] { 0F, 1F });Launcher.access0).setInterpolator(new CubicEaseInOutInterpolater());Launcher.access0).start();}while (this.thisfolderInfo.onLaunch();LauncherModel.updateItemFlagAndLaunchCount(this.thisfolderInfo);return;Launcher.access0).setDuration(Folder.DEFAULT_FOLDER_OPEN_DURATION);

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Xposed简介以及小米去桌面广告的简单实现,五步搞定Android开发环境部署