兔八哥极品软件园    运行: 4470天 | 文章:640 篇 | 评论:505 条 | 碎语:1条

C#调用aapt获取apk文件的包名等信息

作者:admin 发布于:2014-7-2 9:42 Wednesday 分类:网络转载


前言

很早以前做《淘金乐园》时,为了判断某个App是否已经安装在了手机上,就需要服务器端记录这个App的包名。当时的解决方案是让运维人员自己输入包名(都是年轻犯的错啊……),很不方便。后来,接触到了一些大牛写的东西,便有了思路要彻底解决这个问题。问题的解决得益于两个知识点:AAPTC#运行批处理或者bat文件并且得到输出

AAPT

aapt即Android Asset Packaging Tool , 在SDK的platform-tools目录下. 该工具可以查看, 创建, 更新ZIP格式的文档附件(zip, jar, apk).

以上是百度百科中的解释,我们可以通过这个Android已经提供好的工具获取App的相关信息。

AAPT文件下载:百度网盘 | 360云盘

:AAPT是一个绿色软件,无外部依赖。

使用aapt d badging *.apk可以查看apk文件的程序名、包名、所用的sdk,程序版本以及权限信息等等。

如果执行如下命令:

则可能有如下结果:

这么一大堆信息,其实我们需要的也就只有几个。所以我们只需要将这个操作模拟出来并读取控制台的输出流然后解析字符串即可。

ApkReader

注:本项目参考了https://code.google.com/p/cfuture09-apkutil/

ApkReader解决方案包含两个项目:ApkReader和ApkUtil。其中ApkReader是展示界面,主要的功能实现在ApkUtil中,如果要复用功能,只需引用ApkUtil即可(aapt文件也已经以资源文件的形式附着在ApkUtil项目中,无需格外下载)。

ApkReader

通过ApkInfo类型,我们就可以知道可获取的信息有哪些

开源项目

ApkReader目前为1.0版本,现在在此开源。

开发工具:VS2010

.NET 版本:.NET 2.0

源码下载:百度云网盘 | 360云盘

后记

随着开源软件的增多和源码的维护升级,做包上传的方式肯定是不能满足需求的。考虑在GitHub或CodePlex中创建开源项目,这样大家就可以及时跟踪代码的更新了。


Powered by 兔八哥极品软件 苏ICP备12049267号 sitemap