Android在哪里存储所有包裹信息,包括应用标签?

时间:2015-07-10 20:12:40

标签: android package

packages.list下有/data/system/,其中列出了所有已安装的软件包及其<PKG_NAME><USER_ID><DATA_DIR>。但它没有我特别想要的东西,应用程序的标签。例如。 &#34; Airdroid&#34;是com.sand.airdroid<PKG_NAME>时的标题或公用名。

我也知道有很多关于它的问题,而且我已经看到了它们,但它们都有:

  1. 使用编程来调用某些函数,
  2. 使用Androidmanifest.xml之类的工具解析aapt,这需要首先转储.apk
  3. 其中一些建议使用市场上的应用来完成这项工作。
  4. 但是,

    • 我无法进行Android编程,因为我不知道,
    • 两者都不能在PC上使用需要转储apks的工具,因为我需要所有应用程序的名称列表,并且倾倒所有apks对于任何拥有慢速设备的人来说都不太现实或不舒服,
    • 无法安装应用,因为我不拥有该设备,因此我未获得安装或删除任何应用的权限

    但是如果用户可以使用编程获得该名称,那么我相信,必须有一个集中式源或至少一些具有所需信息的文件。否则,很难理解&#34;设置 - &gt;应用程序&#34;每次用户打开GUI时都会解析所有这些apks。

    • 我看了/data/data/com.android.packageinstaller,但一无所获,
    • 我在Logcat的输出中看到我的启动器从&#34;设置缓存&#34;中找到了这些名称。 (至少我明白它的意思)但我不知道下一步该做什么,也不是一种普遍的方法。
    • 我尝试分析与&#34; Package Installer&#34;,&#34; Package Manager&#34;相关的源代码。 (source)和pm,但无法领先。

    那么,我在哪里可以找到Android中所需的信息?

    注意:我可以使用ADB,我对命令感到满意,并且设备(Android 4.x,5.x)已植根,但非root方法会非常感激

    谢谢!

1 个答案:

答案 0 :(得分:0)

我认为ApplicationInfo.loadDescription()将返回应用标签:

http://developer.android.com/reference/android/content/pm/ApplicationInfo.html#loadDescription(android.content.pm.PackageManager)

Android编程是正确的方法,所以你不应该害怕学习。

此外,您正在寻找的这个文件可能是一个系统文件,因此您需要将设备设为root才能读取它,如果它不是您的设备,我怀疑您可以这样做。