动态加载so文件方案实现

This commit is contained in:
gongduoxiang
2024-07-30 13:39:37 +08:00
parent 3a12d848e1
commit 1f66204031
31 changed files with 1612 additions and 19 deletions

View File

@@ -75,6 +75,99 @@ android {
exclude 'lib/arm64-v8a/libfuai.so'
}
//声网 rtc
exclude 'lib/arm64-v8a/libagora_ai_echo_cancellation_extension.so'
exclude 'lib/arm64-v8a/libagora_ai_noise_suppression_extension.so'
exclude 'lib/arm64-v8a/libagora_audio_beauty_extension.so'
exclude 'lib/arm64-v8a/libagora_clear_vision_extension.so'
exclude 'lib/arm64-v8a/libagora_content_inspect_extension.so'
exclude 'lib/arm64-v8a/libagora_face_capture_extension.so'
exclude 'lib/arm64-v8a/libagora_face_detection_extension.so'
exclude 'lib/arm64-v8a/libagora_lip_sync_extension.so'
exclude 'lib/arm64-v8a/libagora_screen_capture_extension.so'
exclude 'lib/arm64-v8a/libagora_segmentation_extension.so'
exclude 'lib/arm64-v8a/libagora_spatial_audio_extension.so'
exclude 'lib/arm64-v8a/libagora_video_av1_decoder_extension.so'
exclude 'lib/arm64-v8a/libagora_video_decoder_extension.so'
exclude 'lib/arm64-v8a/libagora_video_encoder_extension.so'
exclude 'lib/arm64-v8a/libagora_video_quality_analyzer_extension.so'
exclude 'lib/arm64-v8a/libagora-core.so'
exclude 'lib/arm64-v8a/libagora-fdkaac.so'
exclude 'lib/arm64-v8a/libagora-ffmpeg.so'
exclude 'lib/arm64-v8a/libagora-rtc-sdk.so'
exclude 'lib/arm64-v8a/libagora-soundtouch.so'
exclude 'lib/arm64-v8a/libvideo_dec.so'
exclude 'lib/arm64-v8a/libvideo_enc.so'
exclude 'lib/armeabi-v7a/libagora_ai_echo_cancellation_extension.so'
exclude 'lib/armeabi-v7a/libagora_ai_noise_suppression_extension.so'
exclude 'lib/armeabi-v7a/libagora_audio_beauty_extension.so'
exclude 'lib/armeabi-v7a/libagora_clear_vision_extension.so'
exclude 'lib/armeabi-v7a/libagora_content_inspect_extension.so'
exclude 'lib/armeabi-v7a/libagora_face_capture_extension.so'
exclude 'lib/armeabi-v7a/libagora_face_detection_extension.so'
exclude 'lib/armeabi-v7a/libagora_lip_sync_extension.so'
exclude 'lib/armeabi-v7a/libagora_screen_capture_extension.so'
exclude 'lib/armeabi-v7a/libagora_segmentation_extension.so'
exclude 'lib/armeabi-v7a/libagora_spatial_audio_extension.so'
exclude 'lib/armeabi-v7a/libagora_video_av1_decoder_extension.so'
exclude 'lib/armeabi-v7a/libagora_video_decoder_extension.so'
exclude 'lib/armeabi-v7a/libagora_video_encoder_extension.so'
exclude 'lib/armeabi-v7a/libagora_video_quality_analyzer_extension.so'
exclude 'lib/armeabi-v7a/libagora-core.so'
exclude 'lib/armeabi-v7a/libagora-fdkaac.so'
exclude 'lib/armeabi-v7a/libagora-ffmpeg.so'
exclude 'lib/armeabi-v7a/libagora-rtc-sdk.so'
exclude 'lib/armeabi-v7a/libagora-soundtouch.so'
exclude 'lib/armeabi-v7a/libvideo_dec.so'
exclude 'lib/armeabi-v7a/libvideo_enc.so'
exclude 'lib/x86/libagora_ai_echo_cancellation_extension.so'
exclude 'lib/x86/libagora_ai_noise_suppression_extension.so'
exclude 'lib/x86/libagora_audio_beauty_extension.so'
exclude 'lib/x86/libagora_clear_vision_extension.so'
exclude 'lib/x86/libagora_content_inspect_extension.so'
exclude 'lib/x86/libagora_face_capture_extension.so'
exclude 'lib/x86/libagora_face_detection_extension.so'
exclude 'lib/x86/libagora_lip_sync_extension.so'
exclude 'lib/x86/libagora_screen_capture_extension.so'
exclude 'lib/x86/libagora_segmentation_extension.so'
exclude 'lib/x86/libagora_spatial_audio_extension.so'
exclude 'lib/x86/libagora_video_av1_decoder_extension.so'
exclude 'lib/x86/libagora_video_decoder_extension.so'
exclude 'lib/x86/libagora_video_encoder_extension.so'
exclude 'lib/x86/libagora_video_quality_analyzer_extension.so'
exclude 'lib/x86/libagora-core.so'
exclude 'lib/x86/libagora-fdkaac.so'
exclude 'lib/x86/libagora-ffmpeg.so'
exclude 'lib/x86/libagora-rtc-sdk.so'
exclude 'lib/x86/libagora-soundtouch.so'
exclude 'lib/x86/libvideo_dec.so'
exclude 'lib/x86/libvideo_enc.so'
exclude 'lib/x86_64/libagora_ai_echo_cancellation_extension.so'
exclude 'lib/x86_64/libagora_ai_noise_suppression_extension.so'
exclude 'lib/x86_64/libagora_audio_beauty_extension.so'
exclude 'lib/x86_64/libagora_clear_vision_extension.so'
exclude 'lib/x86_64/libagora_content_inspect_extension.so'
exclude 'lib/x86_64/libagora_face_capture_extension.so'
exclude 'lib/x86_64/libagora_face_detection_extension.so'
exclude 'lib/x86_64/libagora_lip_sync_extension.so'
exclude 'lib/x86_64/libagora_screen_capture_extension.so'
exclude 'lib/x86_64/libagora_segmentation_extension.so'
exclude 'lib/x86_64/libagora_spatial_audio_extension.so'
exclude 'lib/x86_64/libagora_video_av1_decoder_extension.so'
exclude 'lib/x86_64/libagora_video_decoder_extension.so'
exclude 'lib/x86_64/libagora_video_encoder_extension.so'
exclude 'lib/x86_64/libagora_video_quality_analyzer_extension.so'
exclude 'lib/x86_64/libagora-core.so'
exclude 'lib/x86_64/libagora-fdkaac.so'
exclude 'lib/x86_64/libagora-ffmpeg.so'
exclude 'lib/x86_64/libagora-rtc-sdk.so'
exclude 'lib/x86_64/libagora-soundtouch.so'
exclude 'lib/x86_64/libvideo_dec.so'
exclude 'lib/x86_64/libvideo_enc.so'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_18
@@ -288,7 +381,6 @@ android {
}
}
repositories {
flatDir {
dirs 'libs', '../libs'
@@ -306,6 +398,7 @@ dependencies {
api project(':main')
//短视频
api project(':video')
implementation project(path: ':lib_so')
annotationProcessor rootProject.ext.dependencies["arouter-compiler"]

View File

@@ -25,6 +25,7 @@ import com.blankj.utilcode.util.Utils;
import com.facebook.appevents.AppEventsLogger;
import com.fm.openinstall.OpenInstall;
import com.google.gson.Gson;
import com.pdlive.lib_so.DynamicSoLauncher;
import com.yunbao.common.utils.LogUtils;
import com.tencent.imsdk.v2.V2TIMGroupMemberInfo;
import com.tencent.imsdk.v2.V2TIMManager;
@@ -144,6 +145,17 @@ public class AppContext extends CommonAppContext {
if (!isMainProcess()) {
return;
}
String path = getFilesDir().getAbsolutePath() + "/dynamic_so/";
File file = new File(path);
if (!file.exists()) {
boolean b= file.mkdir();
Log.i("mLog","创建文件 "+b);
}
// 在合适的时候将自定义路径插入so检索路径 需要使用者自己负责在这个路径上有写入权限
DynamicSoLauncher.INSTANCE.initDynamicSoConfig(this, path, s -> {
// 处理一些自定义逻辑
return true;
});
CrashSaveBean.getInstance().setStartTime(System.currentTimeMillis());
//注册全局异常捕获
registerError();

View File

@@ -1,7 +1,6 @@
package com.shayu.phonelive.activity;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
@@ -22,7 +21,6 @@ import android.widget.ImageView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.app.ActivityOptionsCompat;
import androidx.core.app.NotificationManagerCompat;
@@ -50,14 +48,12 @@ import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.DownloadUtil;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LogUtil;
import com.yunbao.common.utils.MD5Util;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.views.LauncherAdViewHolder;
import com.yunbao.main.activity.EntryActivity;
import com.yunbao.main.activity.MainActivity;
@@ -592,4 +588,5 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
this.finish();
}
}
}