Чтение имен действий из файла apk в Android - PullRequest
9 голосов
/ 20 апреля 2011

Я хочу извлечь все имена действий из файла Android apk. Есть идеи, как это возможно?

Thanx Капс

Ответы [ 4 ]

20 голосов
/ 08 сентября 2011

Если вы просто хотите перечислить их из командной строки, вы можете использовать

aapt dump xmltree <apk-file> AndroidManifest.xml

Формат сначала немного озадачивает, но вся информация есть.

Вам нужноКонечно, для этого установлен Android SDK.

10 голосов
/ 20 апреля 2011

Вы можете использовать метод PackageManager getPackageArchiveInfo , чтобы получить информацию из файла APK. Предполагая, что ваш APK находится в корне вашей SD-карты, вы можете использовать этот код:

    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);
    }

Существует множество дополнительной информации, которую можно найти в объектах ActivityInfo и PackageInfo.

0 голосов
/ 28 мая 2012

得到 不用 得到 apk 的 路径 , 直接 在 активность 在 调用

(перевод на английский) Вам не нужно использовать полный путь к APK, просто вызовите следующее непосредственно из Activity.

PackageManager manager = getPackageManager();
PackageInfo packageInfo = manager.getPackageInfo("your package name", PackageManager.GET_UNINSTALLED_PACKAGES);
0 голосов
/ 20 апреля 2011

Вы можете использовать декомпилятор, такой как Dedexer , и тогда вы можете взглянуть на манифест.

...