android不通过proc获取应用的libso
时间: 2023-12-06 07:39:31 浏览: 28
在 Android 中,应用程序的 .so 库存储在 /data/app/<package_name>-<version>/lib/ 目录下,可以通过这个路径获取应用的 .so 库。具体的步骤如下:
1. 通过 PackageManager 获取应用的信息,包括包名和版本号。
```java
PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo(packageName, 0);
int versionCode = pm.getPackageInfo(packageName, 0).versionCode;
```
2. 根据包名和版本号构造 .so 库的路径。
```java
String path = "/data/app/" + packageName + "-" + versionCode + "/lib/";
```
3. 获取该路径下的所有 .so 库文件。
```java
File dir = new File(path);
File[] files = dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".so");
}
});
```
这样就可以获取到应用的 .so 库文件了,可以对这些文件进行操作了。