• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[江中游] 【江中游异次元-未来的夏娃】第5课 adb获取系统信息 [复制链接]

1#

江中游电脑版按键论坛教学总录:http://bbs.anjian.com/showtopic-697741-1.aspx

江中游安卓手机系统教学总录: http://bbs.anjian.com/showtopic-699643-1.aspx

江中游异次元 ——未来的夏娃

第5课 adb获取系统信息



要求:请瞪圆你的眼睛,昨天有朋友和我说调试时adb命令不好用,其实他只是看着电脑并没注意手机的变化 ,比如信任此电脑他一直没有点允许。

疑问:为什么江老师一直强调空格呢?

英文的每个单词之间一定要有空格,比如英文的for大家都知道是"循环"的意思,ever中文的意思是"曾经",这完全是两个内容,但是如果你不加空格呢?forever,翻译成中文就是“永远”的意思了。当然有的合并在一起就没有意思了,所以大家一定要知道空格的重要性。

疑问:什么是shell命令呢:



操作系统运行的本身其实并不需要人来控制。但人需要告诉操作系统做什么这就叫做人对话,而人机对话所使用的交互程序就被称为shell。基本的人机对话是dos命令,而在windows中shell有点苍白了,不过在未来的发展手机的兴起shell还会再次卷土重来的。

注意:整篇的代码我就不写了,我主要写本功能的代码。主要也是节省一下空间免的大家看的文章很长很长,不想继续学习了。本文最后下载中有全部的源码文件

1、取屏幕分辨率,注意配置文件adb.ini中就不要再加adb了,并且我上一课也教大家是怎么控制单个手机,所以本文不再重述:

adb原生命令

  1. adb shell wm size
复制代码
adb.ini方式,注意注意:hell wm size 前必须要有空格,这是必须的
  1. 取分辨率= shell wm size
复制代码
按键应用命令后会出现 "hysical size: ",翻译成中文为:物理尺寸,那么就代表成功了
测试开始:
  1. //调用服务取设备ID请见http://bbs.anjian.com/showtopic-699720-1.aspx
  2. 分辨率 = 取屏幕分辨率(设备数组(0))
  3. TracePrint "当前设备分辨率为:"&分辨率
  4. Function 取屏幕分辨率(设备ID)
  5. Dim 命令, adbret, arr, tmp
  6. 命令 =Plugin.File.ReadINI("adb", "取分辨率", adbcmd)'读取保存在ini文件中的命令
  7. adbret = Plugin.JzyCommand.Command(adb & 命令, 1000)'使用我的插件来获取连接的设备
  8. If instr(adbret, "Physical size: ") >= 0 Then '如果有"Physical size: "字符串
  9. adbret = Replace(adbret, "Physical size: ","")'过滤一下更健康
  10. arr = split(adbret, "|")
  11. If UBound(arr) > 1 Then '虽然我考虑很周全了,但还是要判断一下免的出现万恶的下标越界
  12. tmp=arr(0)
  13. End If
  14. End If
  15. 取屏幕分辨率 = tmp
  16. End Function
复制代码
2、取屏幕dpi:取屏幕dpi,注意配置文件adb.ini中就不要再加adb了,并且我上一课也教大家是怎么控制单个手机,所以本文不再重述:

adb原生命令

  1. adb shell wm density
复制代码

adb.ini方式,注意注意:Physical density 前必须要有空格,这是必须的

  1. 取DPI= shell wm density
复制代码

按键应用命令后会出现 "Physical density ",翻译成中文为:物理密度,那么就代表成功了

测试开始:

  1. //调用服务取设备ID请见http://bbs.anjian.com/showtopic-699720-1.aspx
  2. DPI = 取屏幕DPI(设备数组(0))
  3. TracePrint "当前设备DPI为:" & DPI
  4. Function 取屏幕DPI(设备ID)
  5. Dim 命令, adbret, arr, tmp
  6. 命令 =Plugin.File.ReadINI("adb", "取DPI", adbcmd)'读取保存在ini文件中的命令
  7. adbret = Plugin.JzyCommand.Command(adb & 命令, 1000)'使用我的插件来获取连接的设备
  8. TracePrint adbret
  9. If instr(adbret, "Physical density: ") >= 0 Then '如果有"Physical density: "字符串
  10. adbret = Replace(adbret, "Physical density: ","")'过滤一下更健康
  11. arr = split(adbret, "|")
  12. If UBound(arr) > 1 Then '虽然我考虑很周全了,但还是要判断一下免的出现万恶的下标越界
  13. tmp=arr(0)
  14. End If
  15. End If
  16. 取屏幕DPI = tmp
  17. End Function
复制代码
3、
3、获取设备的IP:adb原生命令
  1. adb shell ip route
复制代码
adb.ini方式,注意注意:shell ip route 前必须要有空格,这是必须的
  1. IP地址= shell ip route
复制代码
  1. //调用服务取设备ID请见http://bbs.anjian.com/showtopic-699720-1.aspx
  2. IP = 取设备IP(设备数组(0))
  3. TracePrint "当前设备IP为:" & IP
  4. Function 取设备IP(设备ID)
  5. Dim 命令, 关键字, 出现位置, 关键字长度, adbret, arr, tmp
  6. 命令 =Plugin.File.ReadINI("adb", "IP地址", adbcmd)'读取保存在ini文件中的命令
  7. adbret = Plugin.JzyCommand.Command(adb & 命令, 1000)'使用我的插件来获取连接的设备
  8. TracePrint adbret
  9. 关键字 = "proto kernel scope link src "'如果有IP返回,那么就会有这串字符
  10. 出现位置 = instr(adbret, 关键字)
  11. 关键字长度 = len(关键字)
  12. If 出现位置 >= 0 Then '如果有"proto kernel scope link src"字符串
  13. adbret = Replace(adbret, left(adbret, 出现位置 + 关键字长度-1), "")'计算出IP地址左边的字符串长度并取出并替换掉,过滤一下更健康
  14. TracePrint adbret
  15. arr = split(adbret, "|")
  16. If UBound(arr) > 1 Then '虽然我考虑很周全了,但还是要判断一下免的出现万恶的下标越界
  17. tmp=arr(0)
  18. End If
  19. End If
  20. 取设备IP = tmp
  21. End Function
复制代码
4、获取设备的型号:adb原生命令
  1. adb shell getprop ro.product.model
复制代码
adb.ini方式,注意注意:shell getprop ro.product.model 前必须要有空格,这是必须的
  1. //调用服务取设备ID请见http://bbs.anjian.com/showtopic-699720-1.aspx
  2. 型号 = 取设备型号(设备数组(0))
  3. TracePrint "当前设备型号为:" & 型号
  4. Function 取设备型号(设备ID)
  5. Dim 命令, adbret, arr, tmp
  6. 命令 =Plugin.File.ReadINI("adb", "设备型号", adbcmd)'读取保存在ini文件中的命令
  7. adbret = Plugin.JzyCommand.Command(adb & 命令, 1000)'使用我的插件来获取连接的设备
  8. TracePrint adbret
  9. arr = split(adbret, "|")
  10. If UBound(arr) > 1 Then '虽然我考虑很周全了,但还是要判断一下免的出现万恶的下标越界
  11. tmp=arr(0)
  12. End If
  13. 取设备型号 = tmp
  14. End Function
复制代码
5、查看android_id:
adb原生命令
  1. adb shell settings get secure android_id
复制代码
adb.ini方式,注意注意:shell settings get secure android_id 前必须要有空格,这是必须的

那么记事本怎么写呢?


那么按键怎么写呢?


我给大家留个作业吧,按我上面的方式灵活变通一下就可以获取到安卓的ID。


好喽,下节课我们继续研究其它一些高级问题



下面附件是adb及我的插件还有教学中的源码:
  1. adb.rar (, 下载次数:260)

复制代码

最后编辑江中游 最后编辑于 2022-05-20 09:50:38
江中游老师拥有国内外近6000人内部VIP会员,上百万次的支持率,史上最全面、最详细、最易懂的全方位一体化终极教学
江中游QQ:2025177703;390941087;2426410388
江中游微信号:390941087;bauuia
更多更全面教学请关注江中游抖音号:32135374718;快手号:1398558462

2#

6666666

发新话题 回复该主题