使用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实现将html表格转换成CSV文件的方法
Jun 28 Python
Python读大数据txt
Mar 28 Python
Python实现批量检测HTTP服务的状态
Oct 27 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
Jun 09 Python
python实现任意位置文件分割的实例
Dec 14 Python
Python类和对象的定义与实际应用案例分析
Dec 27 Python
Django 实现前端图片压缩功能的方法
Aug 07 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
Jun 17 Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 Python
python 实现Harris角点检测算法
Dec 11 Python
深入理解python协程
Jun 15 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
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
CI框架常用方法小结
2016/05/17 PHP
PHP常用操作类之通信数据封装类的实现
2017/07/16 PHP
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
2009/08/04 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python入门学习之字符串与比较运算符
2015/10/12 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
python入门教程 python入门神图一张
2018/03/05 Python
Python浅复制中对象生存周期实例分析
2018/04/02 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
高中数学教师求职信
2013/10/30 职场文书
教师自我鉴定范文
2013/11/10 职场文书
应届生法律顾问求职信
2013/11/19 职场文书
怎样写好自荐信和推荐信
2013/12/26 职场文书
团组织关系介绍信
2014/01/12 职场文书
出国考察邀请函
2014/01/21 职场文书
质量月口号
2014/06/20 职场文书
2014年行政部工作总结
2014/11/19 职场文书
讲座通知范文
2015/04/23 职场文书
2015年学校教务处工作总结
2015/05/11 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
为什么不建议在go项目中使用init()
2021/04/12 Golang
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL
详解PyTorch模型保存与加载
2022/04/28 Python