2012.08.23——— android ndk 编译多个so
参考:
http://hualang.iteye.com/blog/1140414
http://hi.baidu.com/joec3/item/0e4fca153eb0e3dcbf904211
http://blog.csdn.net/wjr2012/article/details/6887559
场景:你有一个别人用ndk编译的so,你想要用到自己的应用里面 ,这时候mk文件如何编写
我自己试了两种 基本上都管用
1、只生成目标so
LOCAL_PATH := $(call my-dir)
#
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_MODULE := liboutput
LOCAL_SRC_FILES := output.c
LOCAL_LDLIBS := -laaa
include $(BUILD_SHARED_LIBRARY)
别的就不解释了 只说一下laaa,这个就是第三方库libaaa,这个方法需要把libaaa.so复制到
ndk目录下面,位置在
platforms\android-X\arch-arm\usr\lib
这样你就得到了目标liboutput.so,当然 使用的时候 需要把libaaa.so复制到项目的libs目录下面
2、生成多个so
LOCAL_PATH := $(call my-dir)
#
include $(CLEAR_VARS)
LOCAL_MODULE := aaa-prebuild
LOCAL_SRC_FILES := libaaa.so
include $(PREBUILT_SHARED_LIBRARY)
#
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_MODULE := liboutput
LOCAL_SRC_FILES := output.c
LOCAL_LDLIBS := -L$(LOCAL_PATH)
LOCAL_LDLIBS += -llog
LOCAL_SHARED_LIBRARIES := aaa-prebuild
include $(BUILD_SHARED_LIBRARY)
这个将生成libaaa.so和liboutput.so两个so文件 直接使用即可
分享到:
相关推荐
android adt自带eclipse无法设置ndk路径,需要下载com.android.ide.eclipse.ndk_23.0.2.1259578.jar文件,然后复制到sdk 只带的eclipse目录的“plugins”下面,如我的复制到"D:\Android\adt-bundle-windows-x86_64-...
在Android平台上开发VoIP或SIP(Session Initiation Protocol)应用时,eXosip库是一个重要的组件。本文将深入探讨如何使用Android ...此外,为了保证最佳性能和兼容性,应针对不同的Android设备架构编译多个版本的库。
2. **编译和构建**:通过NDK插件可以执行ndk-build命令,编译C/C++源码,生成.so库文件。 3. **调试支持**:设置断点,调试C/C++代码,查看变量值,步进执行等。 4. **依赖管理**:管理库文件依赖,确保正确链接。 5...
本压缩包"Android_NDK.zip"包含了关于Android NDK开发实例的相关资料,主要关注如何生成SO库以及如何在Android系统中调用这些库。以下是详细的知识点说明: 1. **Android NDK基础**: - NDK提供了一套工具集,包括...
下载 https://developer.android.google.cn/ndk/downloads/ ...试了更低版本都不对,干脆不编译这个了。 解压 unzip android-ndk-r16b-linux-x86_64.zip 配置 export NDK=/home/quantum6/android-ndk-16b
2. 跨平台兼容性:NDK支持多个CPU架构,如armeabi-v7a、arm64-v8a、x86和x86_64,需要为每个架构配置和编译。 3. 优化和调试:使用NDK的 `-DANDROID_NDK_DEBUG=1` 开关开启调试模式,优化性能时可以考虑使用 `-O3` ...
live555 库 和 testRtspClient.cpp 编译生成静态库 和 可执行文件 testRtspClient 编译方法: 首先进入各个模块执行 Makefile,将静态库拷贝至上层目录 执行 ndk-build
总结起来,`android编译的openssl静态库.a 动态库.so`涉及到的关键点包括:Android NDK的使用、OpenSSL源码的编译配置、静态库与动态库的区别以及如何在Android应用中集成这些本地库。正确理解和操作这些步骤对于在...
NDK包含多个版本,如本例中的"android-ndk-r23b",代表着第23版的NDK,适用于Linux操作系统。 NDK的使用场景主要包括以下几点: 1. **性能优化**:对于CPU密集型任务,如图形渲染、物理模拟或者加密算法,使用C++...
com.android.ide.eclipse.ndk_23.0.4.1468518.jar 解决eclipse无NDK选项设置问题。复制到eclipse目录的“plugins”下面。如我的复制到"\eclipse\plugins\com.android.ide.eclipse.ndk_23.0.4.1468518.jar" 然后重启...
在这个场景中,我们将探讨如何在Android环境下使用NDK(Native Development Kit)编译Curl库源码。 首先,NDK是Google提供的一个工具集,允许开发者在Android应用中集成原生代码。通过NDK,我们可以编写C和C++代码...
在Android平台上进行多媒体流处理时,经常会涉及到一个开源库——Live555。这个库主要用于实时音频和视频流的处理,支持多种网络协议,如RTSP(Real-Time Streaming Protocol)、RTP(Real-time Transport Protocol...
解决eclipse无NDK选项设置问题。复制到eclipse目录的“plugins”下面。如我的复制到"\eclipse\plugins\com.android.ide.eclipse.ndk_23.0.2.1259578.jar"
NDK提供了一个交叉编译环境,允许我们在本地机器上构建针对Android平台的原生代码。 接下来,我们需要下载Ceres Solver的源代码。在官方GitHub仓库中找到Ceres 2.0.0的release,并将其解压到你的工作目录。同时,你...
下载NDK组件com.android.ide.eclipse.ndk_23.0.2.1259578.jar。将文件“com.android.ide.eclipse.ndk_23.0.2.1259578.jar”复制到sdk自带的eclipse/plugins目录下
总结,使用NDK编译Android第三方库,如OpenSSL,涉及到一系列步骤,包括环境配置、源码获取、构建系统配置、编译选项设置、编译和链接、生成.so文件、集成到项目以及在Java代码中的使用。这个过程可能复杂且耗时,但...
这个“android-ndk-r25b-linux.zip”文件是NDK的一个特定版本,即r25b,专为Linux操作系统设计。在Android应用开发中,NDK扮演着至关重要的角色,它允许开发者使用原生代码(如C和C++)来编写部分应用,以提高性能、...
Unity进行安卓开发,有时会需要使用NDK,不同版本的Unity对NDK版本要求不一致。 比如Unity2021.3.3f1要使用21.3.6528147这个版本;Unity2020.3.20f1要使用19.0.5232133。因此下载对应版本NDK就至关重要。 我这里提供...
总的来说,`libunwind`在NDK环境下的编译配置涉及到多个方面,包括源文件管理、编译选项设置、依赖库处理、多架构支持以及编译和链接过程。理解并正确配置这些要素对于成功编译和使用`libunwind`库是至关重要的。...
这个虽然只是个简单的jnidemo、但是涵盖了Android.mk 和Application.mk 的原理 重点是Android NDK编译的理解 mac 系统下 切换到jni目录,然后呢个 ndk-build