Chcę wyodrębnić wszystkie nazwy działań z pliku apk Androida. Każdy pomysł, jak to możliwe?Czytanie nazw aktywności z pliku apk w Androidzie
Niż Kaps
Chcę wyodrębnić wszystkie nazwy działań z pliku apk Androida. Każdy pomysł, jak to możliwe?Czytanie nazw aktywności z pliku apk w Androidzie
Niż Kaps
Aby pobrać informacje z pliku APK, można użyć metody PackageManager getPackageArchiveInfo. Zakładając swoje życie APK w katalogu głównym karty SD, można użyć tego kodu:
String apkPath = Environment.getExternalStorageDirectory().getAbsolutePath()
+ "/MyApp.apk";
PackageManager pm = getPackageManager();
PackageInfo info = pm.getPackageArchiveInfo(apkPath,
PackageManager.GET_ACTIVITIES);
//Log.i("ActivityInfo", "Package name is " + info.packageName);
for (android.content.pm.ActivityInfo a : info.activities) {
Log.i("ActivityInfo", a.name);
}
Jest mnóstwo dodatkowych informacji można znaleźć w obiektach ActivityInfo i PackageInfo.
Można użyć decompiler jak Dedexer a następnie można spojrzeć na manifeście.
Czy jesteś pewien, że potrzebujesz dekompilatora? Manifest powinien być dostępny i czytelny w katalogu głównym pliku APK ... – WarrenFaith
Chcę zrobić to programowo, czy mogę uzyskać dostęp do tego narzędzia z mojego kodu Java? – Smith
@WarrenFaith. Prawdopodobnie masz rację, właśnie wspomniałem o jednym możliwym rozwiązaniu. @kaps Widzę. Jeśli chcesz zrobić to programowo, nie możesz użyć mojego rozwiązania. –
Jeśli chcesz po prostu wymienić je z wiersza poleceń można użyć
aapt dump xmltree <apk-file> AndroidManifest.xml
Format jest nieco kłopotliwy w pierwszym, ale wszystkie informacje są tam.
Potrzebny jest oczywiście zainstalowany zestaw SDK systemu Android.
Świetna rada. Proszę o odpowiedź na: http://stackoverflow.com/questions/6547703/list-all-activities-within-an-apk-from-the-shell – scorpiodawg
其实 不用 得到 apk 的 路径, 直接 在 aktywność 内 调用
(angielskie) Nie trzeba korzystać z pełnej ścieżki do pliku APK, zadzwoń następujących bezpośrednio od wewnątrz działaniem.
PackageManager manager = getPackageManager();
PackageInfo packageInfo = manager.getPackageInfo("your package name", PackageManager.GET_UNINSTALLED_PACKAGES);
Po angielsku, proszę ... – JJJ
to powinno działać na zbyt oczywistego: http://stackoverflow.com/questions/3868768/extracting-android-apk-and-reading-contents-of-xml-file-in-res-layout – bigstones
I chcesz zrobić to programowo, czy będzie to nadal przydatne? – Smith