1、声网里美颜(相心)so动态加载 开发基本完成
2、Gradle速度很慢,配置缓存等设置
This commit is contained in:
@@ -1,22 +1,16 @@
|
||||
package com.shayu.phonelive.activity;
|
||||
|
||||
|
||||
import static com.yunbao.live.views.SystemMessageViewHolder.PERMISSION_REQUEST_CODE;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.Display;
|
||||
@@ -30,20 +24,15 @@ import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.app.ActivityOptionsCompat;
|
||||
import androidx.core.app.NotificationManagerCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.lxj.xpopup.XPopup;
|
||||
import com.shayu.phonelive.AppContext;
|
||||
import com.tencent.rtmp.ITXLivePlayListener;
|
||||
import com.tencent.rtmp.TXLiveBase;
|
||||
@@ -65,14 +54,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;
|
||||
@@ -178,13 +165,41 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
|
||||
mHandler.sendEmptyMessageDelayed(WHAT_GET_CONFIG, 1000);
|
||||
}else {
|
||||
//链接包 下载so库
|
||||
downLoadSo();
|
||||
checkFaceUnitySOFile();
|
||||
checkAgoraSOFile();
|
||||
}
|
||||
}
|
||||
|
||||
private void downLoadSo() {
|
||||
|
||||
private void checkFaceUnitySOFile() {
|
||||
File outputDir = new File(mContext.getDir("lib", Context.MODE_PRIVATE).getAbsoluteFile(), Constants.DOWNLOAD_FaceUnity_SO);
|
||||
String cpuAbi = "";
|
||||
cpuAbi = Build.CPU_ABI;
|
||||
if (!outputDir.exists()) {
|
||||
outputDir.mkdirs();
|
||||
}
|
||||
File fileSo = new File(outputDir, Constants.FaceUnity_SO_Name);
|
||||
File fileSoList = new File(outputDir, cpuAbi);
|
||||
//解压后的文件数量必须要有2个
|
||||
//如果文件存在,解压后 文件数量一致,直接进入下一步
|
||||
if (fileSo.exists() && getFileCount(fileSoList.getAbsolutePath()) == 2){
|
||||
return;
|
||||
}
|
||||
// https://downs.yaoulive.com/androidLibs/t3/faceunity2-so-arm64-v8a.zip
|
||||
String soUrl = String.format("https://downs.yaoulive.com/androidLibs/t3/faceunity2-so-%s.zip", cpuAbi);
|
||||
Log.i("download", soUrl);
|
||||
|
||||
if (!fileSo.exists()) {
|
||||
downloadSo(outputDir.getAbsolutePath(), soUrl,Constants.FaceUnity_SO_Name,false);
|
||||
}else if (fileSo.exists() && getFileCount(outputDir.getAbsolutePath()) < 3) {
|
||||
fileSo.delete();
|
||||
downloadSo(outputDir.getAbsolutePath(), soUrl,Constants.FaceUnity_SO_Name,false);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkAgoraSOFile() {
|
||||
//存储路径 //检查是否下载过
|
||||
File outputDir = new File(mContext.getDir("lib", Context.MODE_PRIVATE).getAbsoluteFile(), Constants.DOWNLOAD_SO);
|
||||
File outputDir = new File(mContext.getDir("lib", Context.MODE_PRIVATE).getAbsoluteFile(), Constants.DOWNLOAD_Agora_SO);
|
||||
Log.i("downLoad", "outputDir.getAbsolutePath() = " + outputDir.getAbsolutePath());
|
||||
|
||||
String cpuAbi = "";
|
||||
@@ -194,7 +209,7 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
|
||||
Log.e("downLoad", "outputDir:>>>" + outputDir.exists());
|
||||
outputDir.mkdirs();
|
||||
}
|
||||
File fileSo = new File(outputDir, "soKuZip.zip");
|
||||
File fileSo = new File(outputDir, Constants.Agora_SO_Name);
|
||||
Log.i("downLoad", "fileSo.getAbsolutePath() = " + fileSo.getAbsolutePath());
|
||||
|
||||
File fileSoList = new File(outputDir, cpuAbi);
|
||||
@@ -213,18 +228,16 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
|
||||
//2开始下载
|
||||
//检查压缩包是否已经下载过
|
||||
|
||||
Log.i("download", "permission WRITE_EXTERNAL_STORAGE.." + ContextCompat.checkSelfPermission(LauncherActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE));
|
||||
Log.i("download", "permission READ_EXTERNAL_STORAGE .." + ContextCompat.checkSelfPermission(LauncherActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE));
|
||||
String soUrl = String.format("https://downs.yaoulive.com/so-%s.zip", cpuAbi);
|
||||
String soUrl = String.format("https://downs.yaoulive.com/androidLibs/t1/agora-so-%s.zip", cpuAbi);
|
||||
// https://downs.yaoulive.com/androidLibs/t1/agora-so-arm64-v8a.zip
|
||||
Log.i("download", soUrl);
|
||||
|
||||
if (!fileSo.exists()) {
|
||||
downloadSo(outputDir.getAbsolutePath(), soUrl);
|
||||
downloadSo(outputDir.getAbsolutePath(), soUrl,Constants.Agora_SO_Name,true);
|
||||
}else if (fileSo.exists() && getFileCount(outputDir.getAbsolutePath()) < 23) {
|
||||
fileSo.delete();
|
||||
downloadSo(outputDir.getAbsolutePath(), soUrl);
|
||||
downloadSo(outputDir.getAbsolutePath(), soUrl,Constants.Agora_SO_Name,true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Dialog progressDialog;
|
||||
@@ -251,34 +264,32 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
|
||||
progressDialog.setCancelable(false);
|
||||
progressDialog.show();
|
||||
}
|
||||
public void downloadSo(String outputDir, String downloadUrl) {
|
||||
public void downloadSo(String outputDir, String downloadUrl,String fileName,boolean isShowDialog) {
|
||||
DownloadUtil downloadUtil = new DownloadUtil();
|
||||
showDialog(LauncherActivity.this);
|
||||
downloadUtil.download("so", outputDir, "soKuZip.zip", downloadUrl, new DownloadUtil.Callback() {
|
||||
if(isShowDialog){
|
||||
showDialog(LauncherActivity.this);
|
||||
}
|
||||
downloadUtil.download("so", outputDir, fileName, downloadUrl, new DownloadUtil.Callback() {
|
||||
@Override
|
||||
public void onSuccess(File file) {
|
||||
progressDialog.dismiss();
|
||||
//存储路径
|
||||
// File outputDir = new File(getApplicationInfo().dataDir, "dataLib");
|
||||
//
|
||||
// if (!outputDir.exists()) {
|
||||
// Log.e("downLoad", "outputDir:>>>" + outputDir.exists());
|
||||
// outputDir.mkdirs();
|
||||
// }
|
||||
mHandler.sendEmptyMessageDelayed(WHAT_GET_CONFIG, 20);
|
||||
File fileSo = new File(outputDir, "soKuZip.zip");
|
||||
if (isShowDialog){
|
||||
progressDialog.dismiss();
|
||||
mHandler.sendEmptyMessageDelayed(WHAT_GET_CONFIG, 20);
|
||||
}
|
||||
File fileSo = new File(outputDir, fileName);
|
||||
try {
|
||||
unzip(fileSo.getAbsolutePath(), outputDir);
|
||||
} catch (Exception e) {
|
||||
Log.e("ZipCheck", "Error reading ZIP file", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProgress(int progress) {
|
||||
progressBar.setProgress(progress);
|
||||
if (isShowDialog){
|
||||
progressBar.setProgress(progress);
|
||||
}
|
||||
Log.i("downLoad", "progress:>>>" + progress);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user