但是采取常规load方式,改动有点大,底层jar包,第三库不好改加载路径。
在应用启动的时,一次注入本地so路径path,待程序使用过程中so准备后安全加载。(原因后面分析,我们先看下实践)
一....正常加载so使用
有兴趣可以直接查看开源代码:https://github.com/AnyMarvel/ManPinAPP
核心类,修改nativeLibraryDirectories列表,加载需要的so...Android 的 so 文件加载机制
从System.loadlibrary() 方法分析so文件的加载流程,如下图所示:
?...(nativeLibraryDirectories存储了so文件加载的映射表,这里相当于修改了应用加载so的列表)
61 /** List of native library directories...总结:
到此处,那么so文件的动态加载(也可以叫做So文件的热修复)已经介绍完了,其实还是比较简单的,只是修改了so文件列表的数组映射,加载了需要使用的真实的so文件.