使用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下的常用下载安装工具pip的安装方法
Nov 13 Python
Python md5与sha1加密算法用法分析
Jul 14 Python
使用DataFrame删除行和列的实例讲解
Apr 08 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
对python特殊函数 __call__()的使用详解
Jul 02 Python
如何基于python实现脚本加密
Dec 28 Python
tensorflow中tf.slice和tf.gather切片函数的使用
Jan 19 Python
Python线程条件变量Condition原理解析
Jan 20 Python
基于FME使用Python过程图解
May 13 Python
如何教少儿学习Python编程
Jul 10 Python
python中plt.imshow与cv2.imshow显示颜色问题
Jul 16 Python
python的flask框架难学吗
Jul 31 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
2019十大人气国漫
2020/03/13 国漫
PHP 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
javascript 节点遍历函数
2010/03/28 Javascript
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
jsTree 基于JQuery的排序节点 Bug
2011/07/26 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
node.js中的buffer.length方法使用说明
2014/12/14 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
详解动画插件wow.js的使用方法
2017/09/13 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
python3 sorted 如何实现自定义排序标准
2020/03/12 Python
Python unittest框架操作实例解析
2020/04/13 Python
iKRIX意大利网上商店:男女豪华服装和配件
2019/10/09 全球购物
亚洲最大的运动鞋寄售店:KicksCrew
2020/11/26 全球购物
上班玩游戏检讨书
2014/02/07 职场文书
项目投资合作意向书
2014/07/29 职场文书
现场活动策划方案
2014/08/22 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
画展观后感
2015/06/17 职场文书
html实现随机点名器的示例代码
2021/04/02 Javascript
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js
Python图片处理之图片裁剪教程
2021/05/27 Python
Python的这些库,你知道多少?
2021/06/09 Python
Feign调用传输文件异常的解决
2021/06/24 Java/Android
CSS巧用渐变实现高级感背景光动画
2021/12/06 HTML / CSS