我需要以编程方式阅读apk
文件(包括AndroidManifest.xml
)的内容。我知道有一些工具,例如apktool
,dex2jar
,aapt
来提取apk内容,但我需要通过Android应用程序执行相同的。顺便说一句我的起点是一个有效的apk文件路径。
答案 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等来读取文件的内容。