视频流引擎服务端的安装包名称为VideoEngine.tar.gz。
用户可以根据需求选择文件存放目录。
tar xzvf VideoEngine.tar.gz
docker cp system/bin cloudphone_1:/system/
docker cp system/etc cloudphone_1:/system/
docker cp system/lib cloudphone_1:/system/
docker cp system/lib64 cloudphone_1:/system/
docker cp vendor/lib cloudphone_1:/vendor/
docker cp vendor/lib64 cloudphone_1:/vendor/
cd android-11.0.0_r48 repo init -u https://android.googlesource.com/platform/manifest -b android-11.0.0_r48 repo sync -j8 repo start android-11.0.0_r48 --all source build/envsetup.sh lunch aosp_arm64-eng make
vim Android.mk
LOCAL_C_INCLUDES += /home/VideoEngine/Cloud/include
视频流引擎客户端的安装包名称为VideoEngineClient.tar.gz。
用户可以根据需求选择文件存放目录。
tar xzvf VideoEngineClient.tar.gz
以解码模块为例,如果要对解码模块进行二次开发实现云手机客户端,那么需要将解码模块的库文件放至工程的app目录(客户端工程根路径以“/home/CloudPhoneAPK”为例):
mkdir –p /home/CloudPhoneAPK/app/libs/arm64-v8a/
cp /home/VideoEngine/Client/arm64-v8a/libVideoDecoder.so /home/CloudPhoneAPK/app/libs/arm64-v8a/
编辑“/home/CloudPhoneAPK/app”目录下的build.gradle文件,新增如下内容:
android { defaultConfig { # 指定库文件位置 sourceSets { main { jniLibs.srcDirs = ['libs'] } } # 注意:一定要使用c++动态库 externalNativeBuild { cmake { arguments "-DANDROID_STL=c++_shared" } } } # 指定打包规则 packagingOptions { doNotStrip "*.so" } }
如果需要在CPP工程中引用解码模块,编辑“/home/CloudPhoneAPK/app/src/main/cpp”目录下的CMakeLists.txt,链接头文件、引入动态库。
# 链接头文件 include_directories(/home/VideoEngine/Client/include) # 声明动态库 add_library(libVideoDecoder SHARED IMPORTED) # 引入动态库 set_target_properties(libVideoDecoder PROPERTIES IMPORTED_LOCATION /home/VideoEngine/Client/arm64-v8a/libVideoDecoder.so) # 纳入编译范围 target_link_libraries(${PROJECT_NAME} libVideoDecoder)