diff --git a/README.md b/README.md index 811052e901f8f6582d48686832aa0270e8f8829b..d6608a6570a07827d1b1ef6523f6b6d663eb23c1 100644 --- a/README.md +++ b/README.md @@ -81,136 +81,7 @@ └── gradle ``` -#### 3.2 依赖组件 - -##### 3.2.1 组件说明 -Android-SDK 的编译需要依赖 boringssl、opus 组件(Arm32 和 Arm64 目录存放编译构建好的 opus 的产物), -这些依赖的组件库产物都在 cloudphone/src/main/cpp/libs/ 目录下, **无需自己再编译构建** 。 - **如有自己修改源码编译构建的需要** ,可以参考下面内容,如不需要编译这些组件,可直接跳到[3.3 产物构建](#chapter3.3)章节。 -##### 3.2.2 组件编译 -###### 3.2.2.1 环境准备 - -```shell -## 以 Ubuntu18.04 为参考 -## 准备 ndk 环境 -mkdir -p /opt/ndk -cd /opt/ndk/ -wget https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip -unzip android-ndk-r21e-linux-x86_64.zip -export ANDROID_NDK='/opt/ndk/android-ndk-r21e' - -## 准备 cmake 环境 -apt install cmake - -## 准备 ninja 环境 -mkdir -p /opt/ninja -cd /opt/ninja -wget https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-linux.zip -unzip ninja-linux.zip -cp /opt/ninja/ninja /usr/bin -``` - -###### 3.2.2.2 编译 boringssl - -```shell -## 编译 boringssl -mkdir -p /opt/boringssl -cd /opt/boringssl -wget https://github.com/google/boringssl/archive/refs/heads/fips-20220613.zip -unzip fips-20220613.zip -mkdir -p /opt/boringssl/boringssl-fips-20220613/build -cd /opt/boringssl/boringssl-fips-20220613/build -export ANDROID_ABI=arm64-v8a - -cmake \ - -DANDROID_ABI=${ANDROID_ABI} \ - -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \ - -DANDROID_NDK=$ANDROID_NDK \ - -DCMAKE_MAKE_PROGRAM=/usr/bin/ninja \ - -DANDROID_NATIVE_API_LEVEL=24 \ - -DCMAKE_BUILD_TYPE=Release \ - -GNinja .. - -cmake --build . - -## 拷贝头文件到 app/src/main/cpp/libs/openssl/include/openssl -/opt/boringssl/boringssl-fips-20220613/include/openssl/*.h - -## 拷贝静态库到 app/src/main/cpp/libs/Arm64 -/opt/boringssl/boringssl-fips-20220613/build/ssl/libssl.a -/opt/boringssl/boringssl-fips-20220613/build/crypto/libcrypto.a - -## 编译32位,修改 ANDROID_ABI 为 armeabi-v7a -## 拷贝静态库到 app/src/main/cpp/libs/Arm32 -/opt/boringssl/boringssl-fips-20220613/build/ssl/libssl.a -/opt/boringssl/boringssl-fips-20220613/build/crypto/libcrypto.a -``` - -###### 3.2.2.3 编译 opus - -```shell -## 编译 opus -mkdir -p /opt/opus -cd /opt/opus -wget https://github.com/xiph/opus/archive/refs/tags/v1.3.1.zip -unzip v1.3.1.zip -vim Android.mk -cp /opt/opus/Android.mk /opt/opus/opus-1.3.1/ -cd /opt/opus/opus-1.3.1/ - -${ANDROID_NDK}/build/ndk-build APP_BUILD_SCRIPT=Android.mk NDK_PROJECT_PATH=. - -## 拷贝头文件到 app/src/main/cpp/libs/libopus/include -/opt/opus/opus-1.3.1/include/*.h - -## 拷贝静态库到 app/src/main/cpp/libs/Arm64/arm64-v8a -/opt/opus/opus-1.3.1/libs/arm64-v8a/libopus.so -## 拷贝静态库到 app/src/main/cpp/libs/Arm32/armeabi-v7a -/opt/opus/opus-1.3.1/libs/armeabi-v7a/libopus.so -``` - -Android.mk 文件如下所示 - -```shell -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -APP_ABI := armeabi-v7a arm64-v8a -APP_CPPFLAGS += -std=c++11 -APP_STL := gnustl_shared -APP_PLATFORM := android-19 - -include $(LOCAL_PATH)/celt_sources.mk -include $(LOCAL_PATH)/silk_sources.mk -include $(LOCAL_PATH)/opus_sources.mk - -LOCAL_MODULE := opus - -# Fixed point sources -SILK_SOURCES += $(SILK_SOURCES_FIXED) - -# ARM build -CELT_SOURCES += $(CELT_SOURCES_ARM) -SILK_SOURCES += $(SILK_SOURCES_ARM) -LOCAL_SRC_FILES := \ - $(CELT_SOURCES) $(SILK_SOURCES) $(OPUS_SOURCES) $(OPUS_SOURCES_FLOAT) - -LOCAL_LDLIBS := -lm -llog -LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/include \ - $(LOCAL_PATH)/silk \ - $(LOCAL_PATH)/silk/fixed \ - $(LOCAL_PATH)/celt -LOCAL_CFLAGS := -DNULL=0 -DSOCKLEN_T=socklen_t -DLOCALE_NOT_USED -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -O3 -fno-math-errno -D_FORTIFY_SOURCE=2 -O2 -LOCAL_CPPFLAGS := -DBSD=1 -LOCAL_CPPFLAGS += -ffast-math -O3 -funroll-loops - -include $(BUILD_SHARED_LIBRARY) -``` - -#### 3.3 编译构建 +#### 3.2 编译构建 1. build -> Refresh Linked C++ Projects @@ -223,14 +94,14 @@ include $(BUILD_SHARED_LIBRARY) app/build/outputs/apk/arm64/release/*.apk ``` -#### 3.4 使用发行版 +#### 3.3 使用发行版 ```shell ## 可以直接下载本项目构建好的产物,直接安装 apk 文件,或解压 rar 压缩包集成 aar 文件进行 apk 开发 https://gitee.com/HuaweiCloudDeveloper/huaweicloud-cloudPhoneAccess-android/releases ``` -#### 3.5 AAR引入注意事项 +#### 3.4 AAR引入注意事项 ```shell ## 为保证连接安全性,SDK中引入org.bouncycastle:bcprov-jdk15to18三方库,需要在使用AAR时添加依赖。