如何获取存储在目录(如:/storage/emulated/0/downloads)中的.apk文件的详细信息(如:名称、包名、vercode..etc),即使这些文件未安装在设备上。例如,1mobile market可以获取存储在设备中的所有.apk文件,并要求您安装它们。如屏幕截图所示,这些应用程序没有安装在我的设备上,但市场可以加载图标、名称、版本和大小。怎样?!
5uzkadbs1#
您可以使用包管理器获取apk文件的详细信息:只需查看以下文档链接:here
public PackageInfo getPackageArchiveInfo (String archiveFilePath, int flags)
r55awzrz2#
实际上apk文件 zip archives ,您可以将文件重命名为 yourAppName.apk.zip 并使用任何zip实用程序(如7zip)将其解压缩。这个 androidmanifest.xml 文件和资源将被提取,然后你会发现所有这些信息。。。注意:源代码不在包中-只是编译的.dex文件(“dalvik可执行文件”)
zip archives
yourAppName.apk.zip
androidmanifest.xml
crcmnpdw3#
apk文件实际上只是一个具有不同名称的zip存档。重命名 x.apk 至 x.zip ,其中x是文件名,您可以使用任何zip工具打开它。这真的取决于什么信息,你在寻找至于你是否能找到它在apk文件。我可以说你可以进入 AndroidManifest.xml 文件,其中有关应用程序等的访问权限的关键信息以相当可读的形式存储。
x.apk
x.zip
AndroidManifest.xml
lsmepo6l4#
你可以使用“aapt转储徽章”,它会给你的申请细节
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; } }
希望它能奏效。
pvcm50d15#
他们只是在解析googleplay商店的页面细节。
5条答案
按热度按时间5uzkadbs1#
您可以使用包管理器获取apk文件的详细信息:
只需查看以下文档链接:here
r55awzrz2#
实际上apk文件
zip archives
,您可以将文件重命名为yourAppName.apk.zip
并使用任何zip实用程序(如7zip)将其解压缩。这个
androidmanifest.xml
文件和资源将被提取,然后你会发现所有这些信息。。。注意:源代码不在包中-只是编译的.dex文件(“dalvik可执行文件”)
crcmnpdw3#
apk文件实际上只是一个具有不同名称的zip存档。重命名
x.apk
至x.zip
,其中x是文件名,您可以使用任何zip工具打开它。这真的取决于什么信息,你在寻找至于你是否能找到它在apk文件。我可以说你可以进入AndroidManifest.xml
文件,其中有关应用程序等的访问权限的关键信息以相当可读的形式存储。lsmepo6l4#
你可以使用“aapt转储徽章”,它会给你的申请细节
希望它能奏效。
pvcm50d15#
他们只是在解析googleplay商店的页面细节。