大家平常写Appium自动化时,可能写脚本半小时,得有5分钟用来去看Activity,大部分都是通过adb命令的方式来获取。为了提高效率,可以把这个命令放到python里去执行,然后根据规则去筛选出自己想要的信息,好啦。不说废话啦,来个秒找到  AppActivity的脚本吧,帮大家每天多节约5分钟哈

# -* - coding: UTF-8 -* -
import os
from common import const
from common.userConf import UserConf def scan_devices():
"获取当前连接的设备"
result = os.popen("adb devices").read()
print (result)
devices = result.split("\n")[1:]
targets = []
for device in devices:
if device.strip():
tmp = device.split()
if len(tmp)==2 and tmp[1]=='device':
deviceInfo = {}
deviceID = tmp[0]
deviceInfo['id'] = deviceID
deviceInfo["os"] = os.popen("adb -s %s shell getprop ro.build.version.release" % (deviceID)).read().strip()
deviceInfo["name"] = os.popen("adb -s %s shell getprop ro.product.model" % (deviceID)).read().strip().replace(" ", "-") targets.append(deviceInfo)
print (deviceInfo)
return targets def getPackage():
"获取apk的包名和Activity的名字"
apkFile = "/Users/chengyanan/Downloads/AndroidAppPerformance-master/apk/kuai8.apk"
apkPath = os.path.join(const.workSpace, "apk")
commonPath = os.path.join(const.workSpace, "Common")
aapthPath = os.path.join(commonPath, "aapt")
for filename in os.listdir(apkPath):
if filename.endswith(".apk"):
apkFile = os.path.join(apkPath,filename)
break
commonStr = aapthPath+" dump badging "+apkFile
print (commonStr)
result = os.popen(commonStr).read()
lines = result.split("\n") for line in lines:
if line.startswith("package: name="):
UserConf.packageName = line.split()[1].split("=")[1][1:-1]
print (UserConf.packageName)
break
for line in lines:
if line.startswith("launchable-activity: name="):
UserConf.activityName = line.split()[1].split("=")[1][1:-1]
print (UserConf.activityName)
break
if __name__ == "__main__":
getPackage()
scan_devices()

一键获取Android的appActvity和PackName的更多相关文章

  1. 获取Android 手机屏幕宽度和高度以及获取Android手机序列号

    1.获取Android 手机屏幕宽度 1 DisplayMetrics dm = new DisplayMetrics(); 2 this.getWindowManager().getDefaultD ...

  2. 获取Android设备屏幕分辨率

    1.Android 4.3引入的wm工具: a.获取Android设备屏幕分辨率: adb shell wm size b.获取android设备屏幕密度: adb shell wm density ...

  3. 获取Android自己写好了的apk以及反编译

    今天,我们先说一下,获取Android自带的apk以及反编译它们来学习Android工程师是怎样写的,今天我们就以拿到Android自带的短信管理器的apk为例子 你可能有疑问,为什么要那么麻烦,从系 ...

  4. 获取android源码时repo的错误

    今天用repo获取android源码:../bin/repo init -u git://android.git.kernel.org/platform/manifest.git出现问题:问题一:Tr ...

  5. cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程)

    链接地址:http://www.cocoachina.com/bbs/read.php?tid=333937 cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程 ...

  6. 如何在不同的语言/平台中获取Android ID

    如何在不同的语言/平台中获取Android ID 最近开发工作中需要使用到AndroidID,在Unity和native code中也需要使用,java获取很方便,Unity中也不难,最难的是在nat ...

  7. 一键安装Android开发环境

    一键安装Android开发环境 1 下载tadp-3.0r4-linux-x64.run 进入下面的地址下载: https://developer.nvidia.com/gameworksdownlo ...

  8. Web项目也能一键打包Android、IOS

    随着移动互联网的不断发展,智能手机配置的不断提高,越来越多的年轻人基本都在使用手机,如微信.支付宝等等.已基本成为一种习惯,坐电梯也好.吃饭也好.开车也好,基本都捧着一个手机在那按来按去,开车就不建议 ...

  9. 获取Android设备唯一标识码

    概述 有时需要对用户设备进行标识,所以希望能够得到一个稳定可靠并且唯一的识别码.虽然Android系统中提供了这样设备识别码,但是由于Android系统版本.厂商定制系统中的Bug等限制,稳定性和唯一 ...

随机推荐

  1. 在apache hadoop2.6 上部署hive 并将hive数据源存储于Mysql

    集成hive 的前提是apache hadoop 集群能够正常启动. hadoop 版本 apach2.6.0  hive 版本:1.2.1 1.安装mysql 并赋予权限: 1.1:创建hive 用 ...

  2. leetcode.位运算.136只出现一次的元素-Java

    1. 具体题目 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明:你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1 ...

  3. 微信公众号开发笔记-验证token

    开发 话不多说我们直接进入主题 我们先去微信公众号申请一个公众号: 申请完成之后我们找到开发下的基本配置 然后找到进行基本配置,我们需要一个url地址来验证,这里的地址必需要是外网,Token是我们任 ...

  4. python-装饰器初识,闭包

    函数名的运⽤, 第⼀类对象 ⼀. 函数名的运⽤. 函数名是⼀个变量, 但它是⼀个特殊的变量, 与括号配合可以执⾏函数的变量 1. 函数名的内存地址 def func(): print("呵呵 ...

  5. spark复习总结03

    1.DataFrame的创建方式 1.1 通过加载外部文件创建 //通过sqlContext读取json文件创建DataFrame DataFrame dataFrame=sqlContext.rea ...

  6. Python之字典推导式

    推导式是个绝妙的东西,列表推导式一出,map.filter等函数黯然失色,自 Python2.7以后的版本,此特性扩展到了字典和集合身上,构建字典对象无需调用 dict 方法. bad numbers ...

  7. termios, tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed - 获取和设置终端属性,行控制,获取和设置波特率

    SYNOPSIS 总览 #include <termios.h> #include <unistd.h> int tcgetattr(int fd, struct termio ...

  8. k8s容器-运维管理篇

    二. 运维和管理 维护参考网址 https://jimmysong.io/kubernetes-handbook/practice/install-kubernetes-on-centos.html ...

  9. ICPC2008哈尔滨-A-Array Without Local Maximums

    题目描述 Ivan unexpectedly saw a present from one of his previous birthdays. It is array of n numbers fr ...

  10. HTML事件处理程序---内联onclick事件

    HTML事件处理程序绑定方法: <input type="button" value="click me" onclick="show(this ...