首页 文章 精选 留言 我的

精选列表

搜索[主动型云蜜罐],共10006篇文章
优秀的个人博客,低调大师

增强型MonkeyRunner 脚本计划

前一段时间写的monkeyrunner资料 http://youxilua.blog.51cto.com/3357586/772666 功能说明: 可以自动安装apk到android模拟器或者android实机 可以截取设定好activity运行在android模拟器或者android实机上的效果图 截图根据设备名和截取时间保存 能够自动设别所有运行中的android模拟器或者android实机 能够自动安装在特定文件夹下所有的apk文件到android模拟器或者实机 功能实现: 环境配置: 设置好android /tootls 和 android /platform-tools 目录的到环境变量中,确保adb命令能够在cmd下正常运行 脚本编写: 该功能需要创建以下几个文件 componentName.txt 使用约定 每一行为需要运行的activity的完整名字 例如: kg.tom/.HandlerThreadActivity kg.monkey/.MonkeyActivity takeSnap.bat @echo off rem 获取当前运行设备 adb devices > devices.txt rem 获取APK文件 dir apk /B > apk.txt rem 运行monkeyrunner 脚本 monkeyrunner work.py xxxx 核心运行脚本: #导入我们需要用到的包和类并且起别名 import sys,time,datetime from com.android.monkeyrunner import MonkeyRunner as mr from com.android.monkeyrunner import MonkeyDevice as md from com.android.monkeyrunner import MonkeyImage as mi deviceslist = [] devices = [] snapshot = [] templist = [] f = open("devices.txt") while True: line = f.readline() if line: templist.append(line.strip()) else: break; f.close() templist.pop() for i in range(len(templist)): deviceslist.append(templist[i].split('\t')) fc = open("componentName.txt") complist = [] while True: comp = fc.readline() if comp: complist.append(comp.strip()) else: break; fc.close() fp = open("apk.txt") apklist = [] while True: apk = fp.readline() if apk: apklist.append(apk.strip()) else: break; print 'apk list :'print apklist print 'start componentName list :' print complist print 'devices list:'print deviceslist for i in range(1,len(deviceslist)): print 'current devices:' print deviceslist[i] devices.append(mr.waitForConnection(1.0,deviceslist[i][0])) #安装apk文件 for j in range(len(apklist)): devices[i-1].installPackage('apk/'+apklist[j]) #启动activity for k in range(len(complist)): print 'current start activity:' print complist[k] devices[i-1].startActivity(component=complist[k]) #设置延时秒数 mr.sleep(5.0) #---------------- #这里可进行一定的UI操作 #---------------- #mr.sleep(3.0) #进行截图 snapshot.append(devices[i-1].takeSnapshot()) print 'end snapshot' #创建时间字符串 t = time.strftime("%Y-%m-%d-%X",time.localtime()) t = t.replace(":","-") #保存截图 package = complist[k].replace('/.','.') snapshot[0].writeToFile('takeSnapshot/'+deviceslist[i][0]+'-'+t+'-'+package+'.png','png'); snapshot.pop() 由于之前毫无编写python的经验,只能写成这样了,欢迎高手补充!!!!!! 使用: 把tools文件夹里面的全部文件,同样放在android sdk tools 文件夹下即可,运行takeSnap.bat就可以获取到多个设备运行时的截图了,这个期间…你可以选择去泡一杯咖啡…耗时情况…看你要测试几个设备,还有如何测试了…… 效果图: 三个虚拟机,在一台实机,测试两个apk在这些设备的运行境况 以下为全部截图文件: 以后可能会更新的部分和改善的地方 1,支持从外部读取monkeyrunner 脚本进行多设备运行…其实..现在这个也可以…只是没写上 2,同一样设备的截图放置在一样设备名的文件,(这个…其实补充起来也很快…不过,要做完善就要判断设备名与创建文件名是否合法等等,不过…我感觉,将所有截图放到一个文件夹下更方便用来比较,就没写了,有兴趣的自行补充…同时,也顺便贴到这里来吧…) 3,由于,本人的脚步编写功底实在是烂,不知道如何在运行环境中设置环境变量,就不得已要在android sdk tools目录 下运行,如果,觉得这个脚步还可以,希望帮忙完善,能够达到在任意目录下… 4,当设备是离线状态无法判断,不过,在以上的脚本中已经实现了获取设备的状态,只是,很少,碰到就懒得补充了…. 5,如果,出现无法连接设备…那么请再运行一遍…如果…还不行…就重启吧…这跟脚本没关系吧…貌似…就是有这种问题… 6,最后,附上下载地址: 本文转自 liam2199 博客,原文链接: http://blog.51cto.com/youxilua/772652 如需转载请自行联系原作者

优秀的个人博客,低调大师

GEO优化每日SOP:让AI主动引用你的6大因素

Geo专家于磊在长期的生成式引擎优化一线工作中观察到,绝大多数团队对"GEO 到底在优化什么"仍存在根本性的误解——他们把 GEO 当成 SEO 的一套新话术,继续用关键词密度、外链数量、收录速度这些旧尺子去量一个全新的目标。结果往往是内容写得越来越像机器,被 AI 引擎引用的概率却没什么变化。这篇文章想把这件事讲透:GEO 优化的每日动作应该是什么样,决定它好坏的真正因素有哪些,以及我们该用怎样的标准去衡量一场 GEO 实践到底成不成功。Geo专家于磊希望读完之后,你手里能有一份可以照着执行的 SOP,也能建立起一套不依赖感觉的判断体系。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册