csdn上有位帅哥wanliaixie有提到,发现都无法用。
------------------------------------
一、使用ADB 获取已安装apk的各种信息(安装时间,版本,权限等等信息):
http://blog.csdn.net/wanliaixie/article/details/8922071
二、完全使用adb,aapt 获取已安装apk的各种信息:
http://blog.csdn.net/wanliaixie/article/details/8864686
--------------------------------------
方法一,我下载了那个adb.exe,发现不能使用。用dependency walker打开,它需要msvcp90.dll,msvcr90.dll,winusb.dll这3个东东。。
另外,不清楚那个adb.exe是否wanliaixie帅哥重新写的么?跟android sdk tools那里的有什么不同?
它的原理是不是跟方法二中提到的一样,先将apk提取到本地,然后使用aapt将AndroidManifest.xml解析出一来?--------------------------------------
方法二,过程有点复杂。
1).查询apk在手机的路径:
adb.exe pm path phone.android
得到结果:/data/app/phone.android-1.apk
2).把这个apk提取到本地:
adb.exe pull /data/app/phone.android-1.apk  c:\abc.apk
3).使用aapt来解析包的信息
aapt.exe d badging c:\abc.apk
---------------------------------------还有什么方法adb直接就得到apk的版本信息呢?

解决方案 »

  1.   

    安卓系统下每一个应用程序都会在系统app目录下有相应的apk文件。是不是可以把这些apk文件adb pull出来看信息呢?
    呵呵 个人猜测的。
    等待高手指点。
      

  2.   

    都是直接 手机端获取的,adb无法获取这个
      

  3.   

    adb可以得到package信息(非root手机也可以)
    只不过需要调用其他命令,然后自己再根据packagename过滤得到对应的应用信息
    wanliaixie是把过滤部分封装到了adb里面
      

  4.   


    童鞋,版本信息,不是pkg信息
      

  5.   


    童鞋,版本信息,不是pkg信息拿到packege不就拿到版本属性了么?
      

  6.   

    标准的adb是无法获取版本信息的,版本信息其实在android保存在xml文件里,一般root过的机器adb可以直接pull回该文件来解析
      

  7.   


    童鞋,版本信息,不是pkg信息拿到packege不就拿到版本属性了么?+1 
    具体能拿到什么信息可以看wanliaixie的截图
      

  8.   


    原来我也是觉得拿不到,不过看了wanliaixie的截图,我就知道怎么拿了
      

  9.   

    把apk pull出来解压,然后解析AndroidManifest.xml
      

  10.   

    哪有这么麻烦啊,楼上的,以前我做过adb修改,明显是adb shell dumpsys package <pkg name> 
      

  11.   

    楼上几位
    我使用
    adb shell dumpsys package com.android_sync.service
    得出来的结果如图:就差version
      

  12.   

    而AndroidManifest.xml文件里是有version的
    并且通过
    aapt d badging service.apk
    解析出来的是有版本号的
      

  13.   


    那能够问下,你是怎么修改adb的?
    adb shell dumpsys package com.android_sync.service
    我要如何才能得到版本号?
    就差临门一脚咯
      

  14.   

    正则提取下, 或字符串查找,adb修改就是多增加个command,你下载好adb源码,可以自己研究下
      

  15.   


    可是
    adb shell dumpsys package com.android_sync.service
    这个命令完全没有返回version啊
    只有apk的权限什么的以下是返回信息:
    --------------------------------------
    Activity Resolver Table:  Non-Data Actions:      android.intent.action.MAIN:        44fb1088 com.android_sync.service/.MainActivity filter 44f6a9a0Receiver Resolver Table:  Non-Data Actions:      NotifyServiceStart:        44f55a98 com.android_sync.service/.ServiceStartReceiver filter 44ef7438      NotifyServiceStop:        44eca1b0 com.android_sync.service/.ServiceStopReceiver filter 44ec0bd8Service Resolver Table:  Non-Data Actions:      SyncService:        44eaa508 com.android_sync.service/.AndroidSyncService filter 44e82ab0 Packages:  Package [com.android_sync.service] (45053718):    userId=10036 gids=[3003, 1015]    sharedUser=null    pkg=Package{451cfe10 com.android_sync.service}    codePath=/data/app/com.android_sync.service-1.apk    resourcePath=/data/app/com.android_sync.service-1.apk    dataDir=/data/data/com.android_sync.service    targetSdk=8    supportsScreens=[medium, large, small, resizeable, anyDensity]    timeStamp=1374186651000    signatures=PackageSignatures{451c8fe0 [44e8c458]}    permissionsFixed=true haveGids=true    pkgFlags=0x0 installStatus=1 enabled=0    grantedPermissions:      android.permission.MOUNT_UNMOUNT_FILESYSTEMS      android.permission.WRITE_CALENDAR      android.permission.READ_CALENDAR      android.permission.WRITE_EXTERNAL_STORAGE      android.permission.INTERNET      android.permission.MANAGE_ACCOUNTS      android.permission.READ_CONTACTS      android.permission.GET_ACCOUNTS      android.permission.WRITE_CONTACTS
      

  16.   

    是不是你sdk的版本太老了,我试了versioncode versionname都能取到
      

  17.   

    能截张图么?
    或者你将你手上的adb.exe,以及必须的dll传给我
    我试验下..
    我这边网速跟蜗牛差不了多少
    [email protected]
      

  18.   

    正常的软件都有的啊,你换个pkg试试,如果获取不到是由于手机固件导致的
      

  19.   

    昨晚花一天下载了最新版本的,ok能得到versionCode,versionName了
    adb shell dumpsys package com.android_sync.service