Получение архитектуры нативного кода из приложения для Android

Я работаю над приложением, которое определяет архитектуру собственного кода и собственные библиотеки, используемые всеми приложениями, установленными на устройстве. Это похоже на выполнение следующей команды.

 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...
}

Все, что мне нужно, - это архитектура нативного кода, используемая пакетом приложения. Я хочу определить совместимую архитектуру машинного кода из пакета приложения.


person Siddharthan Asokan    schedule 12.09.2013    source источник


Ответы (1)


Вы также спросили, как получить эту информацию через PackageManager - см. ответ на этот пост

person zmarties    schedule 26.03.2014