网站首页 > 技术教程 正文
大家好,我是郭立员~
前言
刚刚群里有人问获取的包名组件名不对怎么解决?
一般获取当前应用的包名组件名会使用山海插件的GetTopActivity命令,在低版本的安卓系统是可以的,但是到了高版本安卓系统获取的包名组件名就是错误的了。
一、分析错误的原因
随意打开一个app,运行获取包名组件名的代码,看一下:
Import "shanhai.lua"
TracePrint shanhai.GetTopActivity()
输出结果
com.android.launcher3/.Launcher
看返回值应该是桌面的包名组件名,并没有返回空值,说明GetTopActivity命令并没有失效,只是获取的不准确,猜测应该是插件内部关于提取包名组件名时出了问题。
二、查看GetTopActivity命令的源码
打开山海插件的源码:
function QMPlugin.GetTopActivity(mode)
sh_init()
local iRet, sRet = pcall(function()
local ret = Execute("dumpsys activity top ")
if ret ~= "" then
if mode then
if mode == 0 then
return string.match(ret, "ACTIVITY ([^/]+)")
elseif mode == 1 then
return string.match(ret, "ACTIVITY .-/([^ ]+)")
end
else
return string.match(ret,"ACTIVITY ([^ ]+)")
end
end
end)
if iRet == true then
return sRet
else
print(sRet)
return ""
end
end
分享源码可以知道我们所要的包名组件名信息来源adb shell命令的dumpsys activity top命令行。
运行adb命令查看dumpsys activity top命令行的返回值:
Import "shanhai.lua"
Dim ret = shanhai.Execute("dumpsys activity top ")
TracePrint ret
返回内容非常多,我这里就截个图:
山海插件的GetTopActivity是怎么提取想要的包名组件。
return string.match(ret,"ACTIVITY ([^ ]+)")
是使用正则匹配,表达式是以ACTIVITY开头,之后匹配非空格数据,这样就得到包名和组件名。
我在看全部返回值时发现有两个以ACTIVITY开头的内容。
ACTIVITY com.android.launcher3/.Launcher 4151806 pid=2445
ACTIVITY com.ss.android.ugc.aweme/.splash.SplashActivity 8bc803d pid=3456
GetTopActivity命令正则匹配的是第一个,匹配结果是手机桌面的包名组件名,而我们要的是第二个匹配结果,这就是为啥命令获取的结果不对的原因。
三、写个按键代码:
这里你如果对lua熟悉,就在写一个适用于高版本安卓的命令,我对于lua语言不太熟悉,仅限于看得懂,所以我是用按键写一下代码。
Import "shanhai.lua"
Dim ret = shanhai.Execute("dumpsys activity top ")
TracePrint ret
Dim arr = shanhai.RegexFind(ret,"ACTIVITY ([^ ]+)")
TracePrint arr[2]
原理上也是先用dumpsys activity top命令行获取全部返回值,然后正则匹配以ACTIVITY 开头的内容,得到结果选择第二个。
猜你喜欢
- 2024-10-22 历史最牛的按键精灵插件介绍,学会少走很多弯路
- 2024-10-22 「按键精灵安卓版」本地文字识别(按键精灵 获取文字)
- 2024-10-22 「按键精灵」安卓按键的命名规范(安卓6.0按键精灵手机版)
- 2024-10-22 按键精灵怎么用(按键精灵怎么用别人脚本)
- 2024-10-22 按键精灵定时器介绍和使用,不会的小伙伴速速看看精辟
- 2024-10-22 按键精灵代码注释功能(按键精灵代码教程)
- 2024-10-22 如何在最短的时间内掌握按键精灵逻辑运算符的使用
- 2024-10-22 (使用按键精灵这个功能后)!网友全都震惊了~~~
- 2024-10-22 按键精灵按钮命令讲解,你在看不懂就........
- 2024-10-22 按键精灵安卓版通过获取文字坐标进行点击(源码分享)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)