在Android中从apk文件中读取活动名称

Smi*_*ith 9 java android android-emulator apk

我想从android apk文件中提取所有活动名称.知道怎么可能这样做?

Thanx Kaps

Alb*_*bin 20

如果您只想从命令行列出它们,您可以使用它们

aapt dump xmltree <apk-file> AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)

这种格式起初有点令人困惑,但所有信息都在那里.

当然,您需要安装Android SDK才能执行此操作.


Dav*_*unt 10

您可以使用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);
    }
Run Code Online (Sandbox Code Playgroud)

您可以在ActivityInfo和PackageInfo对象中找到大量其他信息.