加载so分为动态加载和静态加载。
静态加载:System.loadLibrary(String libname),来直接加载,对于一个app它只能加载system的和我们自己添加到jniLibs下的so文案。静态加载会去这些路径找到对应的库否则会抛出异常。packagename/system/lib
动态加载:System.load(String filePath)来加载filePath对应路径下的so文件,这个路径不可以是外置SDcard等拓展路径,必须是/data/**{package}下
最理想的方案就是直接指定packagename/system/lib,
既然是最理想的,那么这方案肯定是不行的,因为这个目录,只有读的权限,没有写的权限.
拿root的 手机可以测试,我们手动把so.拷贝到这个目录是可以的.
网友评论