我需要以編程方式讀取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
病毒掃描是否需要此操作。請問因爲我也是這麼做的,並且有一些問題。 –