查找Android应用程序的程序包名称,以使用Intent从Web启动Market应用程序

eom*_*eom 45 android hyperlink android-intent google-play

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

有没有办法获得包名称,除了联系开发人员和询问?

而且,事实证明这些指令并不真正适用于创建Web超链接.它们只为您提供一个URI,以便在另一个Android应用程序中的一串Java代码中引用.我们的网站位于Drupal,因此Java无法运行.

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

Chr*_*ris 97

这取决于您希望从何处获取信息.你有很多选择:

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

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

  • 另一种更简单的方法是:转到Android市场上的应用页面(现在谷歌播放),检查网址.应用包介于?id =和&之后. (27认同)

acc*_*uya 55

使用aaptSDK之类的

aapt dump badging yourpkg.apk
Run Code Online (Sandbox Code Playgroud)

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

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

<sdk_home>/platform-tools

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

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


Bra*_*rks 7

以下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
Run Code Online (Sandbox Code Playgroud)

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

apk_start.sh /tmp/MyApp.apk
Run Code Online (Sandbox Code Playgroud)

当然,如果您只想显示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
Run Code Online (Sandbox Code Playgroud)

像这样:

apk_stop.sh /tmp/MyApp.apk
Run Code Online (Sandbox Code Playgroud)

重要说明:aapt可以在这里找到:

<android_sdk_home>/build-tools/android-<ver>/aapt
Run Code Online (Sandbox Code Playgroud)