此application允许您浏览应用程序的清单文件。它是如何做到的?我在OS的API中找不到任何用于获取其他应用程序清单文件的内容。
答案 0 :(得分:4)
首先,你可以得到一个像这样的应用程序列表:
PackageManager pm = getActivity().getPackageManager();
List<ApplicationInfo> apps = pm.getInstalledApplications(
PackageManager.GET_META_DATA | PackageManager.GET_SHARED_LIBRARY_FILES
);
然后可以从以下位置获取APK的位置:
apps.get(x).publicSourceDir
以上将具有如下值:
/data/app/com.example.someonesapp.apk
从那里可以从.apk访问清单文件,如下所示:
try {
ZipFile apk = new ZipFile("/data/app/com.example.someonesapp.apk");
ZipEntry manifest = apk.getEntry("AndroidManifest.xml");
if (manifest != null){
Log.d("ManifestGetter", "Manifest size = " + manifest.getSize());
InputStream stream = apk.getInputStream(manifest);
// do stuff with the file here e.g. get contents
stream.close();
}
apk.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
最重要的是,不需要root
答案 1 :(得分:0)
构建应用时,不会隐藏Manifest文件。它按原样发送到您的.apk文件中。您可以使用7zip之类的归档器进行检查。所以只需用7zip打开你的apk文件(它会识别它),你就会看到你的AndroidManifest.xml文件。
我认为该应用只是在应用程序文件夹中查找该文件。