动态加载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

@@ -225,10 +225,18 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
OpenAdManager.getInstance().dismiss();
}
public static boolean isLoadSo=false;
@Override
protected void main() {
//初始化声网
SWAuManager.get().initRtcEngine(this);
String path = getFilesDir().getAbsolutePath() + "/dynamic_so";
File file = new File(path);
if (file.listFiles().length==22){
//说明已经有了可以直接初始化
isLoadSo=true;
SWAuManager.get().initRtcEngine(this);
}
ActivityCompat.postponeEnterTransition(this);
ConversationIMListManager.get(this);
//在请求一下这个接口给我后台版本号

View File

@@ -12,6 +12,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.ViewOutlineProvider;
import android.widget.ImageView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
@@ -29,7 +30,6 @@ import com.bumptech.glide.request.target.DrawableImageViewTarget;
import com.bumptech.glide.request.target.Target;
import com.ms.banner.Banner;
import com.ms.banner.listener.OnBannerClickListener;
import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.activity.WebViewActivity;
@@ -46,14 +46,14 @@ import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.manager.LiveClassManager;
import com.yunbao.common.manager.OpenAdManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.LoadSoUtil;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.CustomViewHolder;
import com.yunbao.live.utils.LiveStorge;
import com.yunbao.live.views.LiveRoomViewHolder;
@@ -211,7 +211,7 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
});
} else {
pp = 0;
if(select==0){
if (select == 0) {
select = list.get(0).getId();
}
MainHttpUtil.getClassLive(select, p, callback);
@@ -409,8 +409,8 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
liveBean.setParams(gotoRoomKey);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk, boolean isSw) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal), isSw);
}
@Override
@@ -488,6 +488,35 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
@Override
public void onItemClick(LiveBean bean, int position) {
if (MainActivity.isLoadSo) {
onItemClick2(bean, position);
} else {
Toast.makeText(mContext, "正在下载so文件请稍后。。。", Toast.LENGTH_LONG).show();
LoadSoUtil.loadSo2(mContext, new LoadSoUtil.onLoadSoListener() {
@Override
public void ok() {
MainActivity.isLoadSo = true;
SWAuManager.get().initRtcEngine((MainActivity) mContext);
SWAuManager.get().preloadChannel();
onItemClick2(bean, position);
}
@Override
public void error() {
mRefreshView.post(new Runnable() {
@Override
public void run() {
Toast.makeText(mContext, "下载so文件失败了", Toast.LENGTH_SHORT).show();
}
});
Log.e("mLog", "加载so文件的时候错误了 ****************** ");
}
});
}
}
public void onItemClick2(LiveBean bean, int position) {
//到这里判断是否需要加载so
if ("1".equals(bean.getIslive())) {
intoIndex = 1;
watchLive(bean, Constants.LIVE_HOME, position);
@@ -504,7 +533,7 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
}
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk, boolean isSw) {
if (LiveRoomViewHolder.mHandler != null) {
LiveRoomViewHolder.mHandler.removeCallbacksAndMessages(null);
@@ -516,7 +545,7 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)));
} else {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk),isSw);
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk), isSw);
}
}
@@ -537,7 +566,6 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
}
}
@Override
public void loadData() {
if (mAdapter != null) {