【发布时间】:2014-04-16 08:52:17
【问题描述】:
在我的 java 应用程序中,我试图获取一个 android 应用程序的包名。我已经通过执行命令行参数进行了尝试。命令是:
aapt dump badging <apk file>
并且这个命令返回了应用程序的整个元数据。我必须从返回的字符串中提取包名,假设名为 'result' ;
【问题讨论】:
在我的 java 应用程序中,我试图获取一个 android 应用程序的包名。我已经通过执行命令行参数进行了尝试。命令是:
aapt dump badging <apk file>
并且这个命令返回了应用程序的整个元数据。我必须从返回的字符串中提取包名,假设名为 'result' ;
【问题讨论】:
锄头你正在寻找这个试试这个代码:
String line;
while ((line = r.readLine()) != null) {
int ind = line.indexOf("package: name=");
if (ind >= 0) {
String yourValue = line.substring(ind + "default =".length(), line.length() - 1).trim(); // -1 to remove de ";"
System.out.println(yourValue);
}
【讨论】:
试试这个代码..
从apk文件中获取应用的包名。
清单中的所有信息
aapt dump badging <path-to-apk>
只获取包名和主Activity 使用以下数据创建 applicationInfo.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
执行命令
<span class="skimlinks-unlinked">applicationInfo.sh</span> <path-to-apk>
这将打印包名称和主要活动。您可以根据需要修改 .sh 文件。
【讨论】: