如何以编程方式阅读apk文件的内容?

时间:2014-02-22 13:12:27

标签: java android apk android-sdk-tools dex

我需要以编程方式阅读apk文件(包括AndroidManifest.xml)的内容。我知道有一些工具,例如apktooldex2jaraapt来提取apk内容,但我需要通过Android应用程序执行相同的。顺便说一句我的起点是一个有效的apk文件路径

2 个答案:

答案 0 :(得分:2)

首先通过此代码从其路径获取apk文件

final PackageManager pm = getPackageManager();
                PackageInfo packageInfo = null;
                try {
                    packageInfo = pm.getPackageInfo("PACKAGE NAME HERE", PackageManager.GET_META_DATA);
                } catch (NameNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                File file = new File(packageInfo.applicationInfo.sourceDir);
                Uri uri = Uri.fromFile(file);

答案 1 :(得分:1)

在另一个问题上看到这个答案: https://stackoverflow.com/a/34850406/55940

基本上你可以使用它:

PackageInfo packageInfo = context.getPackageManager().getPackageArchiveInfo(file.getAbsolutePath(), 0);

这只会得到元数据......你必须使用ZipInputStream等来读取文件的内容。