需要检查文件是否是有效的APK

时间:2011-01-20 16:12:50

标签: android validation apk

我正在开发一个允许最终用户上传.apk files的网页。 我需要一个库/组件来检查上传的文件是否是有效的.apk文件。 我正在寻找能够查看内容的更多内容。

提前致谢...

3 个答案:

答案 0 :(得分:1)

您想要验证的深度是多少?

APK是一个重命名的ZIP存档。因此第一行验证将尝试将其作为zip打开。然后你可以检查Android清单是否存在并且看起来是正确的。最后,你可以尝试从文件中加载Java类......但是你需要一份Dalvik VM副本,因为Android字节码格式不是常规Java格式。

您如何使用ZIP和XML取决于您的后端平台,您可能应该在问题标签中指定。

答案 1 :(得分:0)

如果您需要以编程方式执行此操作,建议您尝试使用zip --check filenamedex2jar filename。就我而言,它有助于丢弃无效的apk。

答案 2 :(得分:0)

对于大量文件来说这有点慢,但是对于单个文件来说,这是最快,最好的方法。

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
}