hac*_*bod 303
aapt dump badging <path-to-apk> | grep package:\ name
Run Code Online (Sandbox Code Playgroud)
Dan*_*ail 72
您可以在手机上安装apk
使用adb连接,您可以启动adb shell并执行pm list packages -f,它显示每个已安装的apk的包名称.
这取自 Android应用程序的查找程序包名称,以使用Intent从Web启动Market应用程序
小智 13
如果您使用MS记事本打开AndroidManifest.xml,搜索短语package,您会发现以下内容:
package manifest $xxx.xxxxxxx.xxxxxxx |
Run Code Online (Sandbox Code Playgroud)
其中xxx.xxxxxxx.xxxxxxx是您的包名,只是在每个字符后面写一个空格.
当您没有安装任何特定工具时,这是有用的方法.
Sha*_*mam 12
如果您正在查看Google Play并想知道其包名,那么您可以查看网址或地址栏.您将获得包名称.这com.landshark.yaum是包名
https://play.google.com/store/apps/details?id=com.landshark.yaum&feature=search_result#?t=W251bGwsMSwyLDEsImNvbS5sYW5kc2hhcmsueWF1bSJd
Run Code Online (Sandbox Code Playgroud)
Bra*_*rks 12
以下bash脚本将显示包名称和主活动名称:
apk_package.sh
package=$(aapt dump badging "$*" | awk '/package/{gsub("name=|'"'"'",""); print $2}')
activity=$(aapt dump badging "$*" | awk '/activity/{gsub("name=|'"'"'",""); print $2}')
echo
echo " file : $1"
echo "package : $package"
echo "activity: $activity"
Run Code Online (Sandbox Code Playgroud)
像这样运行:
apk_package.sh /path/to/my.apk
Run Code Online (Sandbox Code Playgroud)
use*_*530 12
由于Android文档中提到AAPT已被弃用,因此在Linux中使用AAPT2命令获取包名称如下:
./aapt2 dump packagename <path_to_apk>
由于我使用的是较旧版本的 Gradle 构建,因此我必须下载较新版本的 AAPT2,如下所述:
使用我的 sdk - 25.0.3、26.0.1 和 27.0.3 中的构建工具,执行 aapt2 命令显示错误:无法打开“packagename”:没有这样的文件或目录。这就是我选择更新版本的 AAPT2 的原因。
我在 Linux 上使用的是 3.3.0-5013011。
equ*_*man 11
基于@hackbod回答......但与windows有关.
aapt命令位于Android\SDK\build-tools\version.如果您需要更多关于什么的信息appt command(Android资产包装工具),请阅读/sf/answers/1976446951/
所述dump的子命令aapt用于显示一个包的各个元件或部件的值:
aapt dump badging <path-to-apk>
如果您只想查看包含package: name信息的行,请使用findstr
aapt dump badging <path-to-apk> | findstr -n "package: name" | findstr "1:"
希望它能帮助其他Windows用户!
如果您需要以编程方式进行此操作,则涉及的不仅仅是将答案带入您的大脑。我有一个脚本,用于签署所有应用程序,但每个脚本使用不同的密钥。有两种方法可以获取包名称作为输出,因此可以将其放在变量中或对其进行任何处理。
输出示例:(com.example.appname仅此而已)
aapt-Android资产打包工具,是SDK工具下载的一部分
使用awk指定'作为字段分隔符,使用来搜索一行package: name=,并仅在该行中打印第二个“字段”:
aapt dump badging /path/to/file.apk | awk -v FS="'" '/package: name=/{print $2}'
Run Code Online (Sandbox Code Playgroud)
此方法的弱点在于,它依赖于aapt以相同的顺序输出包信息字段:
package: name='com.example.appname' versionCode='3461' versionName='2.2.4' platformBuildVersionName='4.2.2-1425461'
Run Code Online (Sandbox Code Playgroud)
开发人员没有承诺保留这种格式。
使用awk指定"作为字段分隔符,使用来搜索一行package=,并仅在该行中打印第二个“字段”:
aapt list -a /path/to/file.apk | awk -v FS='"' '/package=/{print $2}'
Run Code Online (Sandbox Code Playgroud)
该方法的一个弱点是,它package=仅依赖于仅在输出Android Manifest:部分中输出。开发人员没有承诺保留这种格式。
使用展开apk文件,apktool d并阅读AndroidManifest.xml。
这将是最好的方法,但是AndroidManifest.xml是一个二进制文件,我看到的将其转换为文本的所有SO回答都行不通。(应该使用apktool d简单的方法代替简单的unzip方法,但是不能。)如果您有解决此问题的方法,请发表评论。
| 归档时间: |
|
| 查看次数: |
148728 次 |
| 最近记录: |