如何以编程方式知道 Android 项目中包含哪些库?

10

我在想是否有可能通过编程的方式找到Android项目中包含的所有库。我正在编写一个需要其他包含在项目中的库信息的库。非常感谢任何帮助。


这里有一个类似的问题,可能对你有帮助:https://dev59.com/yGoy5IYBdhLWcg3wJKzR - mish
@mish,那是关于系统共享库的。我需要用户添加的库。 - RRK
2个回答

0
我已经编写了一个简单的函数,当你想要获取详细信息时,只需调用此函数即可。
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...
            }
        }

谢谢您的回复。然而,上述方法列出了所有系统库。我正在寻找添加到项目中的用户库。我能对这个解决方案进行改进吗? - RRK

0

给未来的读者。

你可以使用Mike Penz的AboutLibraries

好处

  • 允许列出项目中使用的外部、内部库
  • 提供了一个带有项目中使用的库列表的活动或片段。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接