使用python编写脚本获取手机当前应用apk的信息


Posted in Python onJuly 21, 2014

前提是已设置ANDROID_HOME环境变量,使用aapt工具获取apk的信息,保存至脚本所在目录下的PackageInfo.txt文件中:

import os 
import tempfile 
import re 

tempFile = tempfile.gettempdir() 

def get_aapt(): 
if "ANDROID_HOME" in os.environ: 
rootDir = os.path.join(os.environ["ANDROID_HOME"], "build-tools") 
for path, subdir, files in os.walk(rootDir): 
if "aapt.exe" in files: 
return os.path.join(path, "aapt.exe") 
else: 
return "ANDROID_HOME not exist" 

def get_current_package_name(): 
pattern = re.compile(r"[a-zA-Z0-9\.]+/.[a-zA-Z0-9\.]+") 
os.popen("adb wait-for-device") 
out = os.popen("adb shell dumpsys input | findstr FocusedApplication").read() 
package_name = pattern.findall(out)[0].split("/")[0] 

return package_name 

def get_match_apk(package_name): 
list = [] 
for packages in os.popen("adb shell pm list packages -f " + package_name).readlines(): 
list.append(packages.split(":")[-1].split("=")[0]) 
apk_name = list[0].split("/")[-1] 
os.popen("adb pull " + list[0] + " " + tempFile) 

return tempFile + "\\" + apk_name 

if __name__ == "__main__": 
os.popen(get_aapt() + \ 
" dump badging " + \ 
get_match_apk(get_current_package_name()) + \ 
" > PackageInfo.txt") 
os.popen("del " + tempFile + "\\*.apk")
Python 相关文章推荐
Python中转换角度为弧度的radians()方法
May 18 Python
Python中数字以及算数运算符的相关使用
Oct 12 Python
Python自定义主从分布式架构实例分析
Sep 19 Python
python实现扫描日志关键字的示例
Apr 28 Python
Python开发的十个小贴士和技巧及长常犯错误
Sep 27 Python
解决每次打开pycharm直接进入项目的问题
Oct 28 Python
Django框架 信号调度原理解析
Sep 04 Python
python matplotlib折线图样式实现过程
Nov 04 Python
Pycharm最新激活码2019(推荐)
Dec 31 Python
Python while循环使用else语句代码实例
Feb 07 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 Python
使用python创建生成动态链接库dll的方法
May 09 Python
使用python编写android截屏脚本双击运行即可
Jul 21 #Python
python 示例分享---逻辑推理编程解决八皇后
Jul 20 #Python
python中from module import * 的一个坑
Jul 20 #Python
用python代码做configure文件
Jul 20 #Python
python中的内置函数getattr()介绍及示例
Jul 20 #Python
Python实现的生成自我描述脚本分享(很有意思的程序)
Jul 18 #Python
Python中使用 Selenium 实现网页截图实例
Jul 18 #Python
You might like
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
php 模拟POST提交的2种方法详解
2013/06/17 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
Thinkphp5框架使用validate实现验证功能的方法
2019/08/27 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
基于PHP实现用户在线状态检测
2020/11/10 PHP
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
javascipt匹配单行和多行注释的正则表达式
2013/11/20 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
2014/06/23 Javascript
深入探讨javascript中的数据类型
2015/03/04 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
AngualrJS中的Directive制作一个菜单
2016/01/26 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
Javascript动画效果(3)
2016/10/11 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
在layui中select更改后生效的方法
2019/09/05 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
python随机生成指定长度密码的方法
2015/04/04 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
2017/04/11 Python
python3 读取Excel表格中的数据
2018/10/16 Python
详解js文件通过python访问数据库方法
2019/03/03 Python
python实现控制COM口的示例
2019/07/03 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
荷兰多品牌网上鞋店:Stoute Schoenen
2017/08/24 全球购物
数学系个人求职信范文
2014/01/30 职场文书
中学生运动会入场词
2014/02/12 职场文书
2014年党务公开实施方案
2014/02/27 职场文书
公证委托书大全
2014/04/04 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书