引擎:cocos2dx3.3
IDE:vs2012
在cocos2dx3.3 项目中轻量使用httpClient后apk包增加了1.3M,我在项目中只使用http请求和接收,https加密的功能(libssl.a模块;SSL在传输层对网络连接进行加密)和数据进行加密或数字签名没有用上(crypto模块)。因为我的http只需要libcurl.a, 所以我去掉无用的libcrypto.a和libssl.a即可。
但是编译时,发现libcurl.a 关联着libcrypto.a和libssl.a, 解决办法就是重新编译一个不关联libcrypto.a和libssl.a的libcurl.a。
以上提到的文件目录在:您的项目\cocos2d\external\curl\prebuilt\android下
我这提供两个不关联的libcurl.a,一个是android\x86的,一个是android\armeabi-v7a的。
相应的文件引入Android.mk也更改如下(#是注释掉的):
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := cocos_curl_static
LOCAL_MODULE_FILENAME := curl
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcurl.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../include/android
#LOCAL_STATIC_LIBRARIES += cocos_ssl_static
#LOCAL_STATIC_LIBRARIES += cocos_crypto_static
include $(PREBUILT_STATIC_LIBRARY)
#include $(CLEAR_VARS)
#
#LOCAL_MODULE := cocos_crypto_static
#LOCAL_MODULE_FILENAME := crypto
#LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcrypto.a
#include $(PREBUILT_STATIC_LIBRARY)
#
#LOCAL_MODULE := cocos_ssl_static
#LOCAL_MODULE_FILENAME := ssl
#LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libssl.a
#include $(PREBUILT_STATIC_LIBRARY)
重新编译就可以去掉libcrypto.a和libssl.a,包将减小1.1M左右。