【发布时间】:2011-06-12 13:59:19
【问题描述】:
我正在开发一个允许最终用户上传.apk files 的网页。 我需要一个库/组件来检查上传的文件是否是有效的 .apk 文件。 我正在寻找的不仅仅是查看内容的能力。
提前谢谢...
【问题讨论】:
标签: android validation apk
我正在开发一个允许最终用户上传.apk files 的网页。 我需要一个库/组件来检查上传的文件是否是有效的 .apk 文件。 我正在寻找的不仅仅是查看内容的能力。
提前谢谢...
【问题讨论】:
标签: android validation apk
对于大量文件来说有点慢,但对于单个文件,这是最快最好的方法。
PackageInfo packageInfo = context.getPackageManager().getPackageArchiveInfo(file.getAbsolutePath(), 0);
if(packageInfo != null){
// you can be sure that it is a valid apk
} else {
// not a valid apk
}
【讨论】:
如果您需要以编程方式执行此操作,我建议您尝试使用zip --check filename 或dex2jar filename。就我而言,它有助于丢弃无效的 apk。
【讨论】:
您想要多深的验证?
APK 是一个重命名的 ZIP 存档。因此,第一行验证将尝试将其作为 zip 打开。然后您可以检查 Android 清单是否存在并且看起来是否正确。最后,您可以尝试从文件中加载 Java 类……但您需要一份 Dalvik VM 的副本,因为 Android 字节码格式与常规 Java 不同。
您如何使用 ZIP 和 XML 取决于您的后端平台,您可能应该在问题标签中指定。
【讨论】: