从Android应用程序检索本机代码体系结构

时间:2013-09-12 00:44:46

标签: android native-code package-managers aapt

我正在开发一款应用程序,用于确定设备上安装的所有应用程序使用的本机代码体系结构和本机库。它类似于运行以下命令。

 aapt dump badging <file.apk location>

包管理器不提供有关本地代码(如此one)或本机共享库的信息。我可以使用以下代码检索目标应用程序使用的本机共享库:

    try {
    Set<String> libs = new HashSet<String>();
    String mapsFile = "/proc/" + android.os.Process.myPid() + "/maps";
    BufferedReader reader = new BufferedReader(new FileReader(mapsFile));
    String line;
    while ((line = reader.readLine()) != null) {
        if (line.endsWith(".so")) {
            int n = line.lastIndexOf(" ");
            libs.add(line.substring(n + 1));
        }
    }
    Log.d("Ldd", libs.size() + " libraries:");
    for (String lib : libs) {
        Log.d("Ldd", lib);
    }
} catch (FileNotFoundException e) {
    // Do some error handling...
} catch (IOException e) {
    // Do some error handling...
}

我需要的只是app包使用的本机代码架构。我想从应用程序包中确定兼容的本机代码架构。

1 个答案:

答案 0 :(得分:0)

您还询问了如何通过PackageManager获取此信息 - 请参阅answer to that post