打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Android 打包so动态库文件到APK
2012-02-28 14:52:58|  分类:技术 |  标签: |字号大中小
有时由于项目需要使用JNI来调用.so文件,需要将so文件一起打包到APK文件中,这有两种方法:
1. 使用mm命令和Android SDK源代码一起编译。
在project根目录创建一个Android.mk,文件内容如:
[c-sharp] view plaincopy
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := user
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := jnisample
LOCAL_JNI_SHARED_LIBRARIES := libtest
include $(BUILD_PACKAGE)
include $(LOCAL_PATH)/jni/Android.mk
# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))
LOCAL_JNI_SHARED_LIBRARIES := libtest 就是把so文件放到apk文件里的libs/armeabi里,而include $(LOCAL_PATH)/jni/Android.mk为了编译so文件。
在Project目录下创建jni文件夹,在jni文件里创建Android.mk,内容如下:[c-sharp] view plaincopy
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
MY_ANDROID_SRC := $(ANDROID_BUILD_TOP)
LOCAL_CFLAGS += -DHAVE_CONFIG_H -DKHTML_NO_EXCEPTIONS -DGKWQ_NO_JAVA
LOCAL_CFLAGS += -DNO_SUPPORT_JS_BINDING -DQT_NO_WHEELEVENT -DKHTML_NO_XBL
LOCAL_SHARED_LIBRARIES += libskia libsurfaceflinger liblog
LOCAL_PRELINK_MODULE := false
LOCAL_CFLAGS += -DPACKED=""
LOCAL_MODULE    := libtest
LOCAL_SRC_FILES := Ltest.cpp / BlurFilter.cpp / clz.cpp
LOCAL_C_INCLUDES := $(MY_ANDROID_SRC)/external/skia/include/core /
$(MY_ANDROID_SRC)/external/qemu/android /
$(MY_ANDROID_SRC)/frameworks/base/include /
$(MY_ANDROID_SRC)/system/core/include /
$(MY_ANDROID_SRC)/frameworks/base/libs/surfaceflinger /
$(MY_ANDROID_SRC)/system/core/include/pixelflinger /
$(JNI_H_INCLUDE)
include $(BUILD_SHARED_LIBRARY)
LOCAL_C_INCLUDES += /$(JNI_H_INCLUDE) 为了让jni编译通过,因为工程通过jni调用本地库.
把工程文件放到SDK platform/packages/apps目录下,然后进入该目录,命令里输入mm,进行该工程的编译,这样编译出来的apk,在libs/armeabi文件夹里面包含so文件。
2.使用Eclipse build APK文件,只要将so文件放在与src平级的地方创建目录结构libs/armeabi,文件名格式如:libs/armeabi/libxxx.so.
eclipse在打包的时候会根据文件名的命名规则(lib****.so)去打包so文件,开头和结尾必须分别为“lib”和“.so”,否则是不会打包到apk文件中的
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
NDK 应用及扩展 - fanwei51880的日志 - 网易博客
编译FFmpeg+x264移植到安卓(二)
Android开发实践:在任意目录执行NDK编译
Android性能优化之APK瘦身详解(瘦身73%)
关于Android的.so文件你所需要知道的
cocos2d-x 把win32项目迁移到andriod
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服