转自他人——PC上获取android的apk信息

PC上获取Android Apk软件包的图标,权限,包名,版本等信息(http://hi.baidu.com/underalight/item/0892af2b4ff732889c63d1c1)

    最近闲来无事,用java调用aapt做了个小程序,用来在PC上获取Android apk中的各种信息(图标,包名,权限,版本,应用程序名等)

主要的思路就是调用

 

1
aapt.exe dump badging xxx.apk

 

然后逐行解析返回值以达到获取信息的目的

关键代码

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Runtime mRuntime = Runtime.getRuntime();
String order = "aapt.exe dump badging \"" + apkPath + "\"";
Process proc = mRuntime.exec(order);
InputStream stderr = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
// 解析略
}
br.close();
isr.close();
stderr.close();
proc.destroy();

 

其实这个程序里面比较麻烦的就是apk程序权限转中文描述的问题,在apk里面权限描述是通过

 

1
android.permission.XXXX

进行描述的。我们在使用的时候需要将其转成对应的中文,所以啊需要自己结合android的权限描述进行翻译

android中所有的权限描述都在源码

    android源码\frameworks\base\data\etc\platform.xml

程序的详细源码见:

    http://pan.baidu.com/s/1i3uVXJZ

ps:

     网上有很多apk安装器,其实其原理跟这个是一样的,此程序仅实现了apk信息获取,并没有涉及apk安装。要想增加安装功能,在程序中集成adb即可,各种手机助手也是这么做的,adb程序可以从各种手机助手的安装文件夹中找到,也可以从android sdk的platform-tools目录下获取三个文件(adb.exe,AdbWinApi.dll,AdbWinUsbApi.dll)

posted on 2014-07-15 17:14  可可_小虾米  阅读(372)  评论(0编辑  收藏  举报

导航