如何获取存储在 android 设备的外部存储器中的 .apk 文件详细信息(如:名称、ID、vercode ..等)
How to get .apk files details (like: name, id, vercode ..etc) stored in external storage of android device
如何获取目录中存储的 .apk 文件 详细信息(如:名称、包名、vercode ..等)(如:/storage/emulated/0/downloads)即使它们未安装在设备上。
例如,1mobile market可以获取所有存储在您设备中的.apk文件并要求您安装它们。
如屏幕截图所示,这些应用程序未安装在我的设备上,但 Market 可以加载图标、名称、版本和大小。怎么做?!
实际上 apk 文件是 zip archives
,您可以将文件重命名为 yourAppName.apk.zip
并使用任何 zip 实用程序(例如 7zip)将其解压缩。
将提取 androidmanifest.xml
文件和资源,您会在其中找到所有这些信息...
注意: 源代码不在包中 - 只有编译后的 .dex 文件 ("Dalvik Executable")
一个 apk 文件实际上只是一个 zip 压缩文件,具有不同的名称。将 x.apk
重命名为 x.zip
,其中 x 是文件名,您将能够使用任何压缩工具打开它。关于是否可以在 apk 文件中找到它实际上取决于您要查找的信息。我可以说您可以访问 AndroidManifest.xml
文件,其中有关应用程序访问权限等的关键信息以相当可读的形式存储。
您可以使用"aapt dump badging ",它将为您提供申请详情
Process p;
try {
p = Runtime.getRuntime().exec(aapt dump badging <APK_FILE NAME>);
p.waitFor();
final BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
output.append(line);
break;
}
logger.info("Output : " + output);
} catch (final Exception e) {
e.printStackTrace();
}
final String[] outputSplit = output.toString().split("'");
for (int i = 0; i < outputSplit.length; i++) {
switch (i) {
case 1:
packagename = outputSplit[i];
logger.info("Package : " + packagename);
break;
case 3:
mversionId = outputSplit[i];
logger.info("Version Code : " + mversionId);
break;
case 5:
versionId = outputSplit[i];
logger.info("Version Name : " + versionId);
break;
}
}
希望它会起作用。
他们只是在解析 google Play 商店页面的详细信息。
您可以使用包管理器获取 apk 文件的详细信息:
只需检查以下文档 link:here
public PackageInfo getPackageArchiveInfo (String archiveFilePath, int flags)
如何获取目录中存储的 .apk 文件 详细信息(如:名称、包名、vercode ..等)(如:/storage/emulated/0/downloads)即使它们未安装在设备上。
例如,1mobile market可以获取所有存储在您设备中的.apk文件并要求您安装它们。
如屏幕截图所示,这些应用程序未安装在我的设备上,但 Market 可以加载图标、名称、版本和大小。怎么做?!
实际上 apk 文件是 zip archives
,您可以将文件重命名为 yourAppName.apk.zip
并使用任何 zip 实用程序(例如 7zip)将其解压缩。
将提取 androidmanifest.xml
文件和资源,您会在其中找到所有这些信息...
注意: 源代码不在包中 - 只有编译后的 .dex 文件 ("Dalvik Executable")
一个 apk 文件实际上只是一个 zip 压缩文件,具有不同的名称。将 x.apk
重命名为 x.zip
,其中 x 是文件名,您将能够使用任何压缩工具打开它。关于是否可以在 apk 文件中找到它实际上取决于您要查找的信息。我可以说您可以访问 AndroidManifest.xml
文件,其中有关应用程序访问权限等的关键信息以相当可读的形式存储。
您可以使用"aapt dump badging ",它将为您提供申请详情
Process p;
try {
p = Runtime.getRuntime().exec(aapt dump badging <APK_FILE NAME>);
p.waitFor();
final BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
output.append(line);
break;
}
logger.info("Output : " + output);
} catch (final Exception e) {
e.printStackTrace();
}
final String[] outputSplit = output.toString().split("'");
for (int i = 0; i < outputSplit.length; i++) {
switch (i) {
case 1:
packagename = outputSplit[i];
logger.info("Package : " + packagename);
break;
case 3:
mversionId = outputSplit[i];
logger.info("Version Code : " + mversionId);
break;
case 5:
versionId = outputSplit[i];
logger.info("Version Name : " + versionId);
break;
}
}
希望它会起作用。
他们只是在解析 google Play 商店页面的详细信息。
您可以使用包管理器获取 apk 文件的详细信息:
只需检查以下文档 link:here
public PackageInfo getPackageArchiveInfo (String archiveFilePath, int flags)