12345下一页
返回列表 发新帖

【原创教程】定制一个自己的弹窗

  [复制链接]

54

主题

3588

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
789
好评
190
信誉
180

MT论坛新人MT论坛最佳新人MT论坛帅哥考神MT论坛活跃会员挂机大佬

发表于 2026-4-29 20:44:56 | 显示全部楼层 | 阅读模式  来自 陕西
前置知识
阅读此教程,假设你已学会给软件添加弹窗,并有一定编程基础。不满足于使用别人提供的弹窗,也想自己写一个,但是无从下手。此教程仅做引领,学习完此教程,你会对弹窗有一个更深的理解,大佬请绕行。由于我文学素养不好,有些地方难以表述清楚,建议你先跟着做,遇到问题可ai帮你解答。

资料
https://1816490705.share.123pan.cn/123pan/o1cqVv-qcpvA
其中包含最终项目,如果你想深入研究,可打开项目尝试。还包含png版教程,你可以从此资料中下载,让ai总结。
安装Android studio
Android studio(以下简称as),安装教程自行bing“as安装教程”

注:提到安卓开发,as是绕不开的一个坎,推荐学习使用。没有电脑可以考虑android-code-studio-github

常见问题
sdk下载失败
考虑科学上网,如果是模拟器下载失败,也可以使用手机代替(都是安卓环境),只要能编译软件就行。

汉化as
阅读此github的README.MD:AndroidStudio中文插件(官方修改版本)

创建项目
选择空activity,才能选java,本教程以java代码为准,看图填写

换源
安卓项目需要使用gradle进行构建,as默认从gradle官网下载,国外网站下载慢,推荐换成阿里云

查看版本
打开此文件,可以看到gradle是9.10版本。
注:由于不同as默认gradle版本不一致,且新版as不兼容旧版gradle,故自行查看你的gradle版本是多少,否则无法运行。

打开gradle安装包下载-阿里云,替换gradle下载链接

下载all版本(如果下载bin,as仍会从国外下载all),并删除hash校验(distributionSha256Sum),最后点击sync now

新建MainActivity
空项目无activity,教程请参考:如何在新版的Android studio中创建Java项目-CSDN博客

勾选作为launcher,表示从桌面启动此activity

点击运行

这样我们就有一个空app了。这个空app专门用来测试我们的弹窗代码,可以运行后才提取dex给其他应用使用。

编写弹窗代码
先写一个最简单的Toast作为弹窗示例。

Toast
ai提示词:
  1. 我有一个as安卓项目,现要求创建一个工具包,包until.qcxs,在其中添加一个使用Toast提示的类,由MainActivity传入Context,编写代码
复制代码

作为小白的我,还是让ai写代码吧,我只讲思路。
于是我们就有了一个工具类

在MainActivity中调用它

运行,查看结果

第一个dex
接下来我们将上述代码提取为一个dex,首先去mt提取安装包
温馨提示
运行时产生的debug版会热更新,此时提取的安装包中无新增的Toast代码,实际dex在以下路径:
  1. /data/user/0/qcxs.showdia/code_cache/.overlay/base.apk/
复制代码

故如果从apk中没有找到代码,就去上述路径寻找。(推荐发布release版再提取)
使用mt打开所有dex


打开MainActivity,在onCreate中可以得到调用处
  1. const-string v0, "作者:青春向上"

  2. invoke-static {p0, v0}, Lutil/qcxs/ToastUtil;->showShort(Landroid/content/Context;Ljava/lang/String;)V
复制代码

长按-批量管理-勾选until,选择导出为dex

将导出的dex添加进via.apk中(模拟给其他应用添加弹窗)

将调用代码粘贴至via的入口的onCreate方法(入口可通过mt的“Activity记录”获取)

via成功显示我们自定义的Toast

发现了吗?这个dex和调用代码就是我们自己的弹窗!只不过代码特别简单,只是一个Toast提示而已。原理掌握后,接下来我们尝试更高难度。

随机一言Toast
ai提示词
  1. 编写随机一言Toast,访问https://api.zxki.cn/api/sjyy,其返回一个随机一言字符串,使用Toast弹出,捕获无网络、无网络权限等异常,发生异常时Toast异常
复制代码


注:上述一言api为随机选取,不保证可用。你可以将捕获异常的处理事件改为finish,这样断网后软件将无法运行(禁止离线使用)

注意在我们的项目xml中添加权限,目标应用一般都有联网权限
  1. <!-- 网络权限 -->
  2. <uses-permission android:name="android.permission.INTERNET" />
  3. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
复制代码


测试成功,同理提取dex和调用处,不再演示。

Dialog
ai提示词
  1. 编写Dialog,显示一个包含标题(Dialog)、内容(点击前往mt论坛)、积极(打开链接)消极(关闭)中立(不再提醒)按钮的弹窗。所有逻辑封装在一个类中,mian只需传入Context,无需知晓细节。链接为https://bbs.binmt.cc/
复制代码


效果
是不是有点感觉了?这才是弹窗,刚才只是入门。

自定义Dialog
ai提示词1
  1. 生成一个网页,只显示一个对话框,由圆形头像(重点在于布局,内容由div代替),昵称(青春向上),说明(可上下滚动的一段文字,大意为欢迎来到我的空间),三个按钮(积极(查看)、消极(关闭)、中立(不再提示,无需实现,只布局))。要求苹果设计风格,简约好看,编写html代码
复制代码

布局口述累死人,可以让ai先用网页画草图,再把成品截图发给ai,让它使用java画出来。

ai提示词2

  1. 使用纯java代码创建自定义Dialog,布局如图,头像从assets中读取head.png,背景半透明,不可通过点击背景或返回键关闭。弹窗具有一定自适应能力,内容区字数少时,弹窗不能留有大量空白。内容区字数多时,弹窗显示竖直滚动条,适当美化。查看按钮的功能是打开https://bbs.binmt.cc/home.php?mod=space&uid=88062&do=profile链接,无需手动传递。按照上述要求编写工具类,mian只需简单调用。
复制代码

具体代码非常杂,还要修bug,不过做成后能凑合看。
效果+注入via
至此教程结束。

总结
此教程演示了使用as开发弹窗代码,通过mt提取dex和调用处,看完后相信你可以编写简单弹窗。但是弹窗只是软件开发中很基础的一部分,相信你不会只局限于一个小小弹窗,更多功能由你发掘,学习永无止境。

大佬思路分享
网络弹窗
结合本教程中的随机一言(从网络获取数据),和显示弹窗,组合出:从网络获取配置文件,根据文件判断是否显示弹窗,可用于更新弹窗、云控等。

html弹窗
江江弹窗2.1 源码已补上
别人弹窗是java硬画,这个是用webview显示网页,思路很开阔。

逗比_滑稽
教小白一种随机设备id的方法
虽然不是弹窗,但本质上都是注入代码。非常强大的工具,猜测使用了反射,非常高级。

赤〆夜
【实用教程】添加软件启动图
用MT添加软件悬浮窗
(「・ω・)「添加加群弹窗教程
【实用教程】DES加密字符弹窗添加与去除

꯭清꯭羽꯭ღ
清羽网络弹窗7.0
实战使用Log工具类
现在mt支持“注入日志记录”,但当年可没这功能,大佬遇事不决,自己手搓log工具。

꧁法外狂徒꧂
去除一些常见的引流弹窗大合集 全程修改dex

毒皇(iAg)
存档注入APP_v1.2

XuanRan
【实战演示】​为软件添加按钮点击事件

尾声
相关资源还有很多,论坛资料多多,大家努力考古吧。

打开项目
解压资料中提供的项目代码,并使用as打开。as会自动下载依赖并构建,构建成功后即可运行,请耐心等待。

注:项目代码仅做演示,由于安卓碎片化严重,制作出的弹窗不一定可以在任何app上正常显示。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已有6人评分好评 金币 理由
筱川 + 1 + 1
suyang + 1 + 1 很给力!
挽梦遗酒 + 1 + 1 大佬碎片化时间丰富啊[真闲]
山有扶苏 + 1 + 1 很给力!
凌月が + 1 + 1 非常的Nice!
罂粟 + 1 + 1 很给力!

查看全部评分 总评分:好评 +6  金币 +6 

回复

使用道具 举报

12

主题

4208

回帖

1万

积分

博士生

......

Rank: 7Rank: 7Rank: 7

金币
679
好评
18
信誉
100

考神MT论坛新人MT论坛最佳新人MT论坛帅哥挂机大佬

QQ
发表于 2026-4-29 20:50:03 来自手机  | 显示全部楼层  来自 江西
看看隐藏
回复

使用道具 举报

96

主题

1176

回帖

4294

积分

大学生

哈哈

Rank: 5Rank: 5

金币
1456
好评
6
信誉
100

MT论坛最佳新人考神MT论坛新人MT论坛帅哥

发表于 2026-4-29 20:59:17 来自手机  | 显示全部楼层  来自 广西
看看
回复

使用道具 举报

2

主题

4507

回帖

1万

积分

禁止访问

iKUN

金币
1214
好评
16
信誉
111
发表于 2026-4-29 21:08:21 来自手机  | 显示全部楼层  来自 广西
看看
回复

使用道具 举报

4

主题

1361

回帖

6258

积分

硕士生

Rank: 6Rank: 6

金币
1235
好评
0
信誉
98
发表于 2026-4-29 21:17:31 来自手机  | 显示全部楼层  来自 福建
看看
回复

使用道具 举报

0

主题

1万

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
6870
好评
1
信誉
100
发表于 2026-4-29 21:25:15 来自手机  | 显示全部楼层  来自 河北
看隐藏
回复

使用道具 举报

9

主题

5716

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
8936
好评
0
信誉
102

MT论坛最佳新人MT论坛帅哥考神MT论坛新人

发表于 2026-4-29 21:32:01 来自手机  | 显示全部楼层  来自 湖北
看看
回复

使用道具 举报

688

主题

1万

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
3410
好评
164
信誉
119

考神MT论坛新人MT论坛活跃会员MT论坛帅哥MT论坛灌水老大MT论坛侠客MT论坛最佳新人

发表于 2026-4-29 21:39:52 来自手机  | 显示全部楼层  来自 广东
支持
回复

使用道具 举报

0

主题

2965

回帖

6898

积分

硕士生

Rank: 6Rank: 6

金币
3317
好评
0
信誉
100

MT论坛新人考神MT论坛帅哥

发表于 2026-4-29 21:44:04 来自手机  | 显示全部楼层  来自 浙江
感谢分享
回复

使用道具 举报

28

主题

7502

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
6265
好评
19
信誉
82

考神MT论坛最佳新人MT论坛帅哥MT论坛活跃会员

发表于 2026-4-29 21:53:27 来自手机  | 显示全部楼层  来自 广东
看看教程
回复

使用道具 举报

19

主题

1015

回帖

3422

积分

大学生

王鹏

Rank: 5Rank: 5

金币
1046
好评
1
信誉
100

MT论坛最佳新人考神MT论坛帅哥MT论坛新人

QQ
发表于 2026-4-29 21:54:49 来自手机  | 显示全部楼层  来自 陕西
看看隐藏
回复

使用道具 举报

39

主题

5418

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
4480
好评
18
信誉
108
发表于 2026-4-29 22:02:36 来自手机  | 显示全部楼层  来自 北京
看看隐藏
回复

使用道具 举报

5

主题

1万

回帖

3万

积分

博士后

萌新

Rank: 8Rank: 8

金币
3415
好评
51
信誉
101

考神MT论坛最佳新人MT论坛帅哥MT论坛新人MT论坛活跃会员

发表于 2026-4-29 22:07:31 来自手机  | 显示全部楼层  来自 广东
感谢分享
回复

使用道具 举报

2

主题

2091

回帖

5444

积分

硕士生

逆向新手

Rank: 6Rank: 6

金币
1691
好评
0
信誉
93
发表于 2026-4-29 22:29:52 来自手机  | 显示全部楼层  来自 海南
看看
回复

使用道具 举报

11

主题

6714

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
3672
好评
18
信誉
259

MT论坛最佳新人MT论坛帅哥考神MT论坛新人MT论坛活跃会员

发表于 2026-4-29 22:40:42 来自手机  | 显示全部楼层  来自 福建
这个教程可以有
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表