使用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 with statement 进行文件操作指南
Aug 22 Python
跟老齐学Python之深入变量和引用对象
Sep 24 Python
Python实现的最近最少使用算法
Jul 10 Python
Python 内置函数complex详解
Oct 23 Python
Python最小二乘法矩阵
Jan 02 Python
一步步教你用python的scrapy编写一个爬虫
Apr 17 Python
Django 开发环境与生产环境的区分详解
Jul 26 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 Python
Windows系统下pycharm中的pip换源
Feb 23 Python
python中如何写类
Jun 29 Python
python super()函数的基本使用
Sep 10 Python
Python下使用Trackbar实现绘图板
Oct 27 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读取TXT文件向数据库导入海量数据的方法
2013/04/23 PHP
PHP 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
微信API接口大全
2015/04/15 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
javascript常用代码段搜集
2014/12/04 Javascript
浅析jquery与checkbox的checked属性的问题
2016/04/27 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
跟老齐学Python之玩转字符串(3)
2014/09/14 Python
python2和python3的输入和输出区别介绍
2018/11/20 Python
Python实战之制作天气查询软件
2019/05/14 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
Joules美国官网:出色的英国风格
2017/10/30 全球购物
How to spawning asynchronous work in J2EE
2016/08/29 面试题
店长岗位职责
2013/11/21 职场文书
自我评价怎么写正确呢?
2013/12/02 职场文书
美术专业自荐信
2014/07/07 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
2019年最新借条范本!
2019/07/08 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
图神经网络GNN算法
2022/05/11 Python