Android.mk基础知识
本文最后更新于:2025年7月20日 晚上
Android 浅度解析:mk预置AAR、SO文件、APP包和签名-阿里云开发者社区: https://developer.aliyun.com/article/1488469
android系统添加预置APP(so库自动释放) - 庚拓天下 - 博客园: https://www.cnblogs.com/genggeng/p/10563585.html
使用@符号和不使用@符号的区别
在Android.mk中,使用@符号和不使用@符号有一些区别:
? 使用@符号可以提高性能,因为不需要解压和拷贝SO文件,也可以节省空间,因为不需要存储多余的SO文件。
? 不使用@符号可以提高兼容性,因为可以针对不同的平台提供相应的SO文件,而不需要考虑APK中是否有对应平台的SO文件。
调试时集成so到apk
在Android源码中如何吧so库打包编译进入apk, 集成第三方库(jar和so库)
集成第三方so和jar包
1 |
|
把so库包含进入apk
LOCAL_JNI_SHARED_LIBRARIES := libssl libcrypto libvivosgmain
LOCAL_MODULE_INCLUDE_LIBRARY := true
后面Android某个源码版本不支持LOCAL_MODULE_INCLUDE_LIBRARY这一处理了,加入下面
LOCAL_MODULE_TAGS := tests
注意编译后控制台输出的 APK路径
1)假设so库是已经存在的,不需要重新编译的话。只需要用LOCAL_PREBUILT_JNI_LIBS指定(注意包含so的路径)
2)假设so需要编译,则需要先用LOCAL_JNI_SHARED_LIBRARIES指定,然后再用LOCAL_MODULE_INCLUDE_LIBRARY := true打包so到apk
最好还要编写jni下的android.mk
3)LOCAL_MULTILIB := both 32和64都编译。