使用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实现DNS正向查询、反向查询的例子
Apr 25 Python
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
Mar 19 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
Jul 27 Python
Python设计模式之代理模式简单示例
Jan 09 Python
运动检测ViBe算法python实现代码
Jan 09 Python
python变量赋值方法(可变与不可变)
Jan 12 Python
Python进阶之迭代器与迭代器切片教程
Jan 29 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
Jun 28 Python
python中复数的共轭复数知识点总结
Dec 06 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 Python
用PYTHON去计算88键钢琴的琴键频率和音高
Apr 10 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
PHP 和 XML: 使用expat函数(二)
2006/10/09 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
PHP采集利器 Snoopy 试用心得
2011/07/03 PHP
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
PHP微信支付结果通知与回调策略分析
2019/01/10 PHP
关于COOKIE个数与大小的问题
2011/01/17 Javascript
没有document.getElementByName方法
2013/08/19 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
javascript实现简单查找与替换的方法
2015/07/22 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
2017/02/08 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
Vue项目中如何引入icon图标
2018/03/28 Javascript
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
跟老齐学Python之通过Python连接数据库
2014/10/28 Python
python实现用户登陆邮件通知的方法
2015/07/09 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
俄罗斯最大的在线手表商店:Bestwatch.ru
2020/01/11 全球购物
自我鉴定写作要点
2014/01/17 职场文书
优秀员工表扬信
2014/01/17 职场文书
高速铁道技术专业求职信
2014/08/09 职场文书
opencv-python图像配准(匹配和叠加)的实现
2021/06/23 Python
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL