47

我正在创建一个移动网站,其中包含一个页面,人们可以从中下载我们推荐的相关应用程序。我找到了创建链接以启动市场的说明,但这假设您是相关应用程序的开发人员并且知道确切的包名称。

除了联系开发人员询问外,有什么方法可以获取包名吗?

此外,事实证明,这些说明并不能真正用于创建 Web 超链接。它们只为您提供一个 URI,供您在另一个 Android 应用程序的 Java 代码字符串中引用。我们的站点在 Drupal 中,所以 Java 无法运行。

对于 iPhone,我找到了从 iTunes 商店获取所需 URL/链接样式的简单说明,因此我正在寻找类似的信息。

4

12 回答 12

99

这取决于您想从哪里获取信息。你有很多选择:

  • 如果您有 .apk 的副本,只需将其作为 zip 文件打开并查看 AndroidManifest.xml 文件即可。顶级<manifest>元素将具有一个package属性。
  • 如果您在设备上安装了应用程序并且可以使用 连接adb,则可以启动adb shell并执行pm list packages -f,它会显示每个已安装 apk 的包名称。
  • 如果你只是想手动查找几个包名,可以在http://www.cyrket.com/m/android/上搜索应用,包名显示在 URL 中
  • 您也可以使用 Android 应用程序以编程方式执行此操作PackageManager

获得包名称后,您只需链接到market://search?q=pname:<package_name>http://market.android.com/search?q=pname:<package_name>。两者都将在 Android 设备上打开市场;后者显然也有可能在其他硬件上工作(目前还没有)。

于 2010-05-25T11:00:18.267 回答
55

aapt从 SDK 中使用,例如

aapt dump badging yourpkg.apk

这将打印包名称和其他信息。

这些工具位于
<sdk_home>/build-tools/android-<api_level>

<sdk_home>/platform-tools

<sdk_home>/platforms/android-<api_level>/tools

根据geniusburger的评论更新。谢谢!

于 2011-09-21T15:33:24.043 回答
8

以下 bash 脚本可用于在 apk 中显示包和活动名称,并通过将 APK 文件传递​​给应用程序来启动应用程序。

apk_start.sh

package=`aapt dump badging $* | grep package | awk '{print $2}' | sed s/name=//g | sed s/\'//g`
activity=`aapt dump badging $* | grep Activity | awk '{print $2}' | sed s/name=//g | sed s/\'//g`
echo
echo package : $package
echo activity: $activity
echo
echo Launching application on device....
echo
adb shell am start -n $package/$activity

然后要在模拟器中启动应用程序,只需提供 APK 文件名,如下所示:

apk_start.sh /tmp/MyApp.apk

当然如果你只是想显示apk的包和活动名称,删除脚本的最后一行。

您可以使用此脚本以相同的方式停止应用程序:

apk_stop.sh

package=`aapt dump badging $* | grep package | awk '{print $2}' | sed s/name=//g | sed s/\'//g`
adb shell am force-stop $package

像这样:

apk_stop.sh /tmp/MyApp.apk

重要提示:aapt 可以在这里找到:

<android_sdk_home>/build-tools/android-<ver>/aapt
于 2013-07-05T21:57:14.983 回答
4

以下代码将列出它们:

adb shell dumpsys package <packagename>
于 2014-04-28T07:12:04.363 回答
3

不确定您是否仍然需要这个,但在http://www.appbrain.com/中,您查找应用程序并且包名称在 url 中。例如:http : //www.appbrain.com/app/fruit-ninja/com.halfbrick.fruitninja是水果忍者的链接。注意粗体

于 2012-01-08T02:41:58.310 回答
2

添加到上述答案:要在任何 android 设备上查找已安装应用程序的包名称: 转到 Storage/Android/data/< package-name >

于 2015-06-05T20:12:17.553 回答
1

这是获取应用程序完整包的简单方法。我们可以使用 astro 文件管理器应用程序。你可以在安卓市场上买到。Astro 应用程序管理器向我们展示了应用程序的完整包。

于 2011-11-15T04:53:53.567 回答
1

您可以在 Google Play 商店中在线搜索该应用程序。找到后,检查 url,例如https://play.google.com/store/apps/details?id=lutey.FTPServer&hl=en

id 参数对应于应用程序的包名。在示例中的 url 的情况下,包名称是 lutey.FTPServer。

于 2015-08-14T02:57:22.923 回答
0

这是一个相当困难的情况,你可以从 apk 文件中获取包名,但我假设你想自动完成。

AndroLib 有很多应用程序的包名称,但你必须解析它,因为我找不到任何 API。有一个开发部分可能有一些工具可以帮助你。

祝你好运

于 2010-05-07T22:29:19.113 回答
0

一旦你有了包名称,如Chris Smith 的回答所述,你可以/应该使用链接的意图 URL。这是一个特殊格式的 URL,如果用户已经安装了它,它将启动该包,或者如果没有,则在应用程序的页面上打开 Play 商店......

intent://#Intent;package=qualified.package.name;end

该应用程序需要支持这一点,并带有一个标记为可浏览的活动,但许多人会这样做。

于 2015-11-24T16:51:08.310 回答
-1
  1. 转到设置应用程序。
  2. 单击存储和 USB。
  3. 单击电话卡。
  4. 点击安卓。
  5. 单击数据。

现在您可以找到手机中安装的所有应用程序的软件包名称。

在此处输入图像描述

于 2017-05-05T06:10:49.250 回答
-2

如果您想在手机中获取此信息,那么最好使用“APKit”之类的应用程序,它会显示手机中每个应用程序的完整包名称。然后可以在您的手机中使用此信息。

于 2016-01-22T16:29:14.340 回答