Android So加载的路径选择以及注意选项
来源:互联网 发布:c语言测时间间隔 编辑:程序博客网 时间:2024/05/16 08:41
So加载路径和注意事项
我们在Android应用程序会常常的加载一些So文件来完成我们的目标,那么我们的APK加载So是有哪些平时我们没有注意到的事情呢?
1. 首先我们一般开发会遇见两种APK(其实一般大部分只会遇到一种),一种为系统级APK,另外一种为普通APK。那么这个两种APK跟So加载有什么关系呢?别急,让我们先聊聊我们那些操作会产生这些类型的APK。
普通级AKP:
pm install + 包名 将会把APK安装到 /data/app 目录下,同时会把So映射到/data/app-lib/包命/ 目录下。这个就是普通的APK(pm Install -r 会替换原有的APK,当然必须是一样的签名)。
系统级APK:
push + 绝对路径 + 包名 /system/app 目录下(必须把原有的包名删除哦!),这时APK就会在System/app下面了,这时你需要把你的APK的So 同时push到system/lib里面。因为apk里面的So并不会自动映射到system/lib下面。
一般我们在使用加载So的方法时候,会使用到System.load(pathName)和 System.loadLibrary(libName)这两种方法。这篇文章主要讲讲System.load(pathName)这个绝对路径加载的注意点。
我们通常会直接使用
context.getApplicationInfo().nativeLibraryDir +/具体名字.so 来让系统帮我寻找加载So所需要的路径。那么这里问题就来了。
如果是系统级APK
context.getApplicationInfo().nativeLibraryDir =/system/lib/
如果是普通级APK
context.getApplicationInfo().nativeLibraryDir =/data/data-lib/PackageName/ 对!就是那个映射的So系统会根据这个去data/app/包名下面寻找真正的So文件。
这个需要注意的细节,主要用于在中间件,系统预置程序的研发人员与测试上面。我们在拿到芯片厂商给予调试模式的开发硬件上进行Demo和So的更换测试的时候,需要自己和测试都需要知道,自己安装的APK是什么类型,会加载什么路径,以免我们的底层老司机在帮忙测试问题的时候造成不必要的麻烦。我会在之后详细的与大家交流System.load(pathName)和 System.loadLibrary(libName)这两种方法在framework层与底层是怎么样找到具体的So的。
- Android So加载的路径选择以及注意选项
- ANDROID动态加载 使用SO库时要注意的一些问题
- ANDROID动态加载 使用SO库时要注意的一些问题
- ANDROID动态加载 使用SO库时要注意的一些问题
- android so文件的加载过程以及常规错误处理
- android使用编译好的libffmpeg.so 以及 NDK一些注意的地方
- android Studio so的加载
- Android Studio NDK CMake 指定so输出路径以及生成多个so的案例与总结 # 设置so文件生成路径 # set(CMAKE_LIBRARY_OUTPUT_DIRECTORY $
- 在 Android 系统中直接调用 SO文件(包含System.loadLibrary加载so的路径解释)
- 在 Android 系统中直接调用 SO文件(包含System.loadLibrary加载so的路径解释)
- 在 Android 系统中直接调用 SO文件(包含System.loadLibrary加载so的路径解释)
- 在 Android 系统中直接调用 SO文件(包含System.loadLibrary加载so的路径解释)
- Android Studio NDK CMake 指定so输出路径以及生成多个so的案例与总结
- Android Studio NDK CMake 指定so输出路径以及生成多个so的案例与总结
- Android中so使用知识和问题总结以及插件开发过程中加载so的方案解析
- Android中so使用知识和问题总结以及插件开发过程中加载so的方案解析
- android so库的源码路径列表
- android应用的so文件路径修改
- 基础练习 闰年判断
- Codeforces Round #378 (Div. 2) C Epidemic in Monstropolis
- 笔试总结(3)
- 【玲珑学院 1052 - See car】+ 弧度制
- Meeting
- Android So加载的路径选择以及注意选项
- 嵌入式课堂笔记
- 软工整体理解
- java基础
- OpenCV(1)
- Jbpm流程执行
- PAT-BL-1008
- 南阳oj 915 +-字符串
- Android RecyclerView工作原理分析(上)