Как узнать, какие библиотеки включены в проект Android программно?

Мне было интересно, можно ли программно найти все библиотеки, которые включены в проект Android. Я пишу библиотеку, которая нуждается в информации о других библиотеках, включенных в проект. Любая помощь очень ценится.

Ответ 1

Я сделал простую функцию, просто сделайте вызов этой функции, когда вы хотите получить подробную информацию.

public static void checkLibrary(){
            try {
                Log.e(" i am in","checklibrary");
                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.e("Ldd", libs.size() + " libraries:");
                for (String lib : libs) {
                    Log.e("Ldd", lib);
                }
            } catch (FileNotFoundException e) {
                // Do some error handling...
            } catch (IOException e) {
                // Do some error handling...
            }
        }

Ответ 2

Для будущих читателей.

Вы можете использовать библиотеку Mike Penz AboutLibraries

Выгоды

  • Разрешить перечислять внешние, внутренние библиотеки, используемые в вашем проекте
  • Из коробки или фрагмент со списком библиотек, используемых в вашем проекте.