Search code examples
javaandroidandroid-emulatorapk

Reading Activity names from apk file in Android


I want to extract all the activities names from an android apk file. Any idea how possibly it can be done?


Solution

  • You can use the PackageManager method getPackageArchiveInfo to retrieve the information from an APK file. Assuming your APK lives in the root of your SD card, you can use this code:

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

    There is plenty of additional information you can find in the ActivityInfo and PackageInfo objects.