我的 Android 应用程序(游戏)使用本机 C++ 代码进行某些操作。也就是说,我使用的是Android NDK。本机 C++ 代码仅针对armeabi编译(默认为armeabi-v5)。
我最后一次将我的 c++ 代码构建到nativestuff.so
是几个月前,在另一台计算机上(Windows 7 + cygwin,因为建议使用 cygwin 与 Android NDK 一起编译)。
我刚刚在我当前的 PC (Windows 7) 上安装了 NDK,以及最新的 cygwin,并为我的应用程序重新构建了 c++ 代码。
令我惊讶的是,它生成了一个.so
14KB 的文件,而之前的.so
文件是 37KB。请注意,c++ 源文件完全相同(它们已经一年没有更改),我的项目处于版本控制之下,所以我 100% 确定。
我在游戏中测试了 c++ 功能,它和以前一样工作,没有任何错误。
我的 C++ 文件仅使用cstring.h
并jni.h
包含在内。我Android.mk
的如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := nativestuff
LOCAL_SRC_FILES := nativestuff.cpp
include $(BUILD_SHARED_LIBRARY)
知道为什么文件大小会发生巨大变化.so
吗?
(我linux
也在这个问题中添加了标签,因为也许这是一个普遍的事情,所以我想确保 linux 大师也检查它。)