我需要以编程方式读取apk
文件(包括AndroidManifest.xml
)的内容。我知道有一些工具,如apktool
,dex2jar
,aapt
来提取apk内容,但是,我需要通过Android应用执行相同的。顺便说一句我的起点是一个有效的apk文件路径。如何以编程方式读取apk文件的内容?
回答
首先得到其路径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);
当我从文件中获得uri后,如何读取apk内容(即清单文件等)? – talha06
你可以阅读这个线程http://stackoverflow.com/questions/2097813/how-to-parse-the-androidmanifest-xml-file-inside-an-apk-package/4761689#4761689这也是http:// stackoverflow.com/questions/13469147/get-android-apk-file-versionname-or-versioncode-without-installing-apk –
谢谢,我已经阅读了他们两个.. @NitinMisra – talha06
查看另一个问题这样的回答: https://stackoverflow.com/a/34850406/55940
基本上你可以使用这个:
PackageInfo packageInfo = context.getPackageManager().getPackageArchiveInfo(file.getAbsolutePath(), 0);
这只会得到元数据,尽管...你将不得不使用ZipInputStream等来读取文件的内容。
- 1. 如何以编程方式列出Android APK文件的内容?
- 2. 如何以编程方式从电话中读取“contacts2.db”文件的内容?
- 3. 以编程方式读取Manifest文件?
- 4. 以编程方式读取.resx文件
- 5. 如何以编程方式在android中编辑文件内容
- 6. 如何以编程方式操纵Scala中文件的内容
- 7. 以编程方式提取InstallShield setup.exe文件的内容
- 8. 读取APK内的文件
- 9. 以编程方式读取/ etc的内容
- 10. 以编程方式从win32转储文件读取内存
- 11. 如何以编程方式将内容写入json文件
- 12. 以编程方式获取内容文件和主要输出
- 13. 如何以编程方式读取Mac .textClipping文件?
- 14. 如何以编程方式读取Windows OS中的SQLite数据库的内容?
- 15. 如何以编程方式从Google Play下载APK文件?
- 16. 如何以编程方式安装apk文件
- 17. 如何以编程方式在Android中获取重命名.APK文件名?
- 18. 无法以编程方式读取nsf文件的邮件
- 19. SSRS:如何以编程方式修改文本内容?
- 20. 如何以编程方式设置/编辑webview的内容
- 21. 以编程方式确定OSX上的文件内容类型
- 22. 以编程方式复制内容控件及其内容
- 23. 以编程方式读取iOS应用程序.crash文件?
- 24. 如何以编程方式获取etherpad的实时纯文本内容?
- 25. 如何以编程方式获取文档库内容的下载URL
- 26. 以编程方式从C#应用程序安装Apk文件
- 27. 如何读取.rb文件的内容?
- 28. Android - 以编程方式读取另一个进程的内存
- 29. 如何在Android中以编程方式读取语音邮件
- 30. 以编程方式安装位于/ res/raw的.apk文件
是不是想列出.apk或所有类文件的信息?讲清楚。 –
@NayanRath我需要阅读'AndroidManifest.xml'和'源文件'。 – talha06
病毒扫描是否需要此操作。请问因为我也是这么做的,并且有一些问题。 –