windows下apk查看工具的原理
2015-06-10 11:16
239 查看
游戏出了版本之后,提供给渠道,有部分渠道会修改包名(当他们内部系统做出调整后,可能会改包名),这个时候我又需要知道包名。之前没办法,试图反编译apk,发现失败了。然后就安装apk到手机上,手机上再下载一个包查看软件,然后找到包名。
之后我一直在想,windows下应该是能实现的,而碗豆荚之类的工具,只显示apk的图标和它所需要的权限,它对应的启动activity及包名是没有显示出来的。我尝试搜索”apk 包名查看工具”,然后找到apkhelper这个工具,下载使用后发现它能很快就显示相应的信息,对此我就比较好奇了,研究了一下,记录几个重要的点。了解这些要点,完全可以自己动手写工具了:
重点是二个应用程序:aapt.exe、unzip.exe
aapt.exe dump badging xxx.apk > a.txt
将dump信息输入至a.txt中,控制台打印信息显示中文会乱码,打开a.txt会显示相应的信息:
这样就拿到了
包名 -- package name
版本 -- versionCode、versionName
icon信息 – application-icon-xx
<基于aapt实现全尺寸解析apk图标>
我发现它是遍历文件流来查找文件,如果我想在dos下使用,也就只需要解压指定的文件即可。icon的路径通过第一步已经知道了,现在就是要找命令如何调用了,搜索到这篇帖子:
<只把zip中的某个文件unzip出来,命令怎么写?>
unzip -j xx.apk file_path -d out_dir
不加-d 就直接将相应的文件解压到当前目录中了
参考链接:
android利用aapt解析apk得到应用名称 包名 版本号 权限等信息
如何快速得到Apk的签名/包名等信息
之后我一直在想,windows下应该是能实现的,而碗豆荚之类的工具,只显示apk的图标和它所需要的权限,它对应的启动activity及包名是没有显示出来的。我尝试搜索”apk 包名查看工具”,然后找到apkhelper这个工具,下载使用后发现它能很快就显示相应的信息,对此我就比较好奇了,研究了一下,记录几个重要的点。了解这些要点,完全可以自己动手写工具了:
重点是二个应用程序:aapt.exe、unzip.exe
一、获取apk的包名及版本信息
通过aapt就能查到它所支持的参数及用法aapt.exe dump badging xxx.apk > a.txt
将dump信息输入至a.txt中,控制台打印信息显示中文会乱码,打开a.txt会显示相应的信息:
这样就拿到了
包名 -- package name
版本 -- versionCode、versionName
icon信息 – application-icon-xx
二、获取icon图标
右击apk,通过压缩软件打开,的确可以找到icon,那是不是意味着通过unzip apk来找到icon呢,可以是可以,不过好几十M的东西解压也需要时间,就显得很浪费了。我看apkhelper很快就显示出来了,这个就需要再研究了,之后我搜索“aapt 获取apk icon”找到这样一篇文章:<基于aapt实现全尺寸解析apk图标>
我发现它是遍历文件流来查找文件,如果我想在dos下使用,也就只需要解压指定的文件即可。icon的路径通过第一步已经知道了,现在就是要找命令如何调用了,搜索到这篇帖子:
<只把zip中的某个文件unzip出来,命令怎么写?>
unzip -j xx.apk file_path -d out_dir
不加-d 就直接将相应的文件解压到当前目录中了
参考链接:
android利用aapt解析apk得到应用名称 包名 版本号 权限等信息
如何快速得到Apk的签名/包名等信息
相关文章推荐
- D3js-API介绍【中】
- STL --> map容器
- 水题NYOJ1071【不可以!】
- locate和find命令
- 基于am3358的蜂鸣器测试
- 基于am3358的蜂鸣器测试
- 代理模式原理及实例讲解
- Android使用StaticLayout实现文本绘制自动换行
- June。。。。。。
- Flask + mod_wsgi + Apache on Windows 部署成功(随时接受提问)
- 【swift】15-0610 下标 继承和扩展 初始化和反初始化
- 基于am3358的蜂鸣器测试
- C++ 10.3 关联容器map定义以及value_type、key_type、mapped_type
- struts2在<s:select>用动态标签
- 第一个C#程序
- 基于am3358的蜂鸣器测试 分类: TI-AM335X 2015-06-10 11:15 253人阅读 评论(0) 收藏
- 安装多JDK后,java编译环境和运行环境版本(JDK版本) 不一致解决:
- Xfire发布错误记载
- 用cronolog为tomcat做日志分割之问题解决版
- GRE满分作文分析