Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
1d263eb4bb |
@ -1,9 +1,9 @@
|
||||
apply plugin: 'com.android.application'
|
||||
|
||||
android {
|
||||
compileSdkVersion 28
|
||||
compileSdkVersion 29
|
||||
defaultConfig {
|
||||
applicationId "com.hnjc.wjtx.mi"
|
||||
applicationId "com.tencent.tmgp.hnjc.wjtx"
|
||||
minSdkVersion 18
|
||||
targetSdkVersion 28
|
||||
versionCode 1
|
||||
@ -27,7 +27,7 @@ android {
|
||||
debug.setRoot('build-types/debug')
|
||||
release.setRoot('build-types/release')
|
||||
}
|
||||
buildToolsVersion '28.0.3'
|
||||
buildToolsVersion '29.0.2'
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
BIN
app/libs/YSDK_Android_1.6.8_e278214.aar
Normal file
BIN
app/libs/YSDK_Android_1.6.8_e278214.aar
Normal file
Binary file not shown.
@ -1,15 +1,44 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.hnjc.wjtx">
|
||||
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
|
||||
|
||||
<!-- TODO GAME SDK接入必须权限模块 START -->
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.GET_TASKS" />
|
||||
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||
|
||||
|
||||
<!-- TODO GAME SDK Midas接入配置 设置屏幕兼容声明 START -->
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.READ_SMS" />
|
||||
<uses-permission android:name="android.permission.SEND_SMS" />
|
||||
<uses-permission android:name="android.permission.WRITE_SETTINGS"
|
||||
tools:ignore="ProtectedPermissions" />
|
||||
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
|
||||
tools:ignore="ProtectedPermissions" />
|
||||
|
||||
|
||||
<supports-screens
|
||||
android:anyDensity="true"
|
||||
android:largeScreens="true"
|
||||
android:normalScreens="true" />
|
||||
<!-- TODO GAME SDK设备指纹接入权限 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.BLUETOOTH"/>
|
||||
<uses-permission android:name="com.asus.msa.SupplementaryDID.ACCESS" />
|
||||
|
||||
<application
|
||||
android:allowBackup="false"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
@ -39,18 +68,7 @@
|
||||
|
||||
</activity>
|
||||
|
||||
<!-- <activity android:name=".MainActivity"-->
|
||||
<!-- android:launchMode="singleTask"-->
|
||||
<!-- android:screenOrientation="portrait"-->
|
||||
<!-- android:windowSoftInputMode="adjustPan|stateAlwaysVisible"-->
|
||||
<!-- android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"-->
|
||||
<!-- android:theme="@android:style/Theme.NoTitleBar.Fullscreen">-->
|
||||
<!-- <intent-filter>-->
|
||||
<!-- <action android:name="android.intent.action.MAIN" />-->
|
||||
|
||||
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
|
||||
<!-- </intent-filter>-->
|
||||
<!-- </activity>-->
|
||||
|
||||
</application>
|
||||
|
||||
|
@ -40,13 +40,18 @@ public class LaunchActivity extends Activity {
|
||||
private String baseVersion = ZERO_VERSION;
|
||||
// 远程的版本号
|
||||
private String remoteVersion = ZERO_VERSION;
|
||||
// 在检查版本阶段, 进度条下显示的文字
|
||||
private String versionStr;
|
||||
// 在下载更新版本阶段, 进度条下显示的文字
|
||||
private String downloadStr;
|
||||
// 在解压版本阶段, 进度条下显示的文字
|
||||
private String unzipStr;
|
||||
|
||||
private TaskInfo info;//任务信息
|
||||
private DownloadRunnable runnable;//下载任务
|
||||
private UnzipRunnable unzipRunnable; // 解压任务
|
||||
//任务信息
|
||||
private TaskInfo info;
|
||||
//下载任务
|
||||
private DownloadRunnable runnable;
|
||||
// 解压任务
|
||||
private UnzipRunnable unzipRunnable;
|
||||
|
||||
private static final String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
||||
|
||||
@ -98,12 +103,22 @@ public class LaunchActivity extends Activity {
|
||||
compareVersions();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新进度条的进度
|
||||
* @param val 进度 0 - 100
|
||||
*/
|
||||
private void updateProgress(int val) {
|
||||
progressBar.setProgress(val);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新进度条下面的文字
|
||||
* @param title 要显示的内容
|
||||
*/
|
||||
private void changeLoadTxt(String title) {
|
||||
progressLabel.setText(title);
|
||||
}
|
||||
// 获取代码包, 预加载目录和远程的版本
|
||||
private void compareVersions() {
|
||||
changeLoadTxt(versionStr);
|
||||
updateProgress(10);
|
||||
@ -128,7 +143,7 @@ public class LaunchActivity extends Activity {
|
||||
*/
|
||||
private void getLocalVersionInfo() {
|
||||
String fileName = gameUrl.replace("index.html", "version.json");
|
||||
String realPath = preloadPath + "/" + getFileDirByUrl(fileName) + "version.json" ;
|
||||
String realPath = getFileDirByUrl(fileName);
|
||||
File versionFile = new File(realPath);
|
||||
if (versionFile.exists()) {
|
||||
JSONObject data = AssetsUtil.readJsonFromFile(this, realPath);
|
||||
@ -157,6 +172,7 @@ public class LaunchActivity extends Activity {
|
||||
*/
|
||||
private void getRemoteVersionInfo() {
|
||||
webApi.getVersionInfo((success, message, err) -> {
|
||||
boolean needUpdate = false;
|
||||
if (success) {
|
||||
try {
|
||||
remoteVersion = message.getString("version");
|
||||
@ -165,7 +181,6 @@ public class LaunchActivity extends Activity {
|
||||
Log.i(TAG, "local version: " + localVersion);
|
||||
Log.i(TAG, "remote version: " + remoteVersion);
|
||||
Log.i(TAG, "remote resource: " + zipUrl);
|
||||
boolean needUpdate = false;
|
||||
if (StringUtil.compareAppVersion(baseVersion, localVersion) >= 0) {
|
||||
if (StringUtil.compareAppVersion(remoteVersion, baseVersion) > 0) {
|
||||
needUpdate = true;
|
||||
@ -175,37 +190,35 @@ public class LaunchActivity extends Activity {
|
||||
needUpdate = true;
|
||||
}
|
||||
}
|
||||
if (needUpdate) {
|
||||
if (StringUtil.isBlank(zipUrl)) {
|
||||
Log.e(TAG, "远程版本高于代码包版本和预加载版本, 需要更新, 但未获取到远程资源地址");
|
||||
startMain();
|
||||
} else {
|
||||
Log.i(TAG, "远程版本高于代码包版本和预加载版本, 需要更新");
|
||||
updateProgress(100);
|
||||
preloadGame();
|
||||
}
|
||||
} else {
|
||||
startMain();
|
||||
}
|
||||
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (needUpdate) {
|
||||
if (StringUtil.isBlank(zipUrl)) {
|
||||
Log.e(TAG, "远程版本高于代码包版本和预加载版本, 需要更新, 但未获取到远程资源地址");
|
||||
startMain();
|
||||
} else {
|
||||
Log.i(TAG, "远程版本高于代码包版本和预加载版本, 需要更新");
|
||||
updateProgress(100);
|
||||
preloadGame();
|
||||
}
|
||||
} else {
|
||||
startMain();
|
||||
}
|
||||
});
|
||||
}
|
||||
// 更新远程资源
|
||||
private void preloadGame() {
|
||||
String dir = preloadPath + "/" + getFileDirByUrl(gameUrl);
|
||||
String dir = preloadPath + getFileDirByUrl(gameUrl);
|
||||
File dirFile = new File(dir);
|
||||
if (!dirFile.exists()) {
|
||||
dirFile.mkdirs();
|
||||
}
|
||||
downloadGameRes(zipUrl, dir);
|
||||
}
|
||||
|
||||
// 下载资源
|
||||
private void downloadGameRes(final String zipUrl, String targetDir) {
|
||||
updateProgress(0);
|
||||
changeLoadTxt(downloadStr);
|
||||
@ -217,7 +230,7 @@ public class LaunchActivity extends Activity {
|
||||
//开始Handler循环
|
||||
handler.sendEmptyMessageDelayed(1, 200);
|
||||
}
|
||||
|
||||
// 解压资源
|
||||
private void unzip(File file) {
|
||||
updateProgress(0);
|
||||
changeLoadTxt(unzipStr);
|
||||
@ -229,12 +242,20 @@ public class LaunchActivity extends Activity {
|
||||
handler.sendEmptyMessageDelayed(1, 200);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据url生成在预加载目录中的路径
|
||||
* @param urlString 资源的url
|
||||
* @return 资源对应的本地路径
|
||||
*/
|
||||
private static String getFileDirByUrl(String urlString) {
|
||||
int lastSlash = urlString.lastIndexOf('/');
|
||||
String server = urlString.substring(0, lastSlash + 1);
|
||||
return server.replaceFirst("://", "/").replace(":", "#0A");
|
||||
}
|
||||
|
||||
/**
|
||||
* 清空本地预加载目录
|
||||
*/
|
||||
private void emptyPreload() {
|
||||
File dirFile = new File(preloadPath);
|
||||
if (dirFile.exists() && dirFile.isDirectory()) {
|
||||
@ -244,6 +265,11 @@ public class LaunchActivity extends Activity {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 遍历删除文件夹和子文件夹
|
||||
* @param file 要删除的文件或文件夹路径
|
||||
*/
|
||||
private void deletePreloadFile(File file) {
|
||||
if (file.isDirectory()) {
|
||||
File[] files = file.listFiles();
|
||||
@ -255,11 +281,16 @@ public class LaunchActivity extends Activity {
|
||||
file.delete();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换至game activity
|
||||
*/
|
||||
private void startMain() {
|
||||
Intent intent = new Intent(LaunchActivity.this, MainActivity.class);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
|
||||
intent.putExtra("preloadPath", preloadPath);
|
||||
startActivity(intent);
|
||||
// 移除activity的进场动画
|
||||
overridePendingTransition(0, 0);
|
||||
finish();
|
||||
}
|
||||
@ -275,6 +306,7 @@ public class LaunchActivity extends Activity {
|
||||
@Override
|
||||
public void finish() {
|
||||
super.finish();
|
||||
// 移除activity的移出场动画
|
||||
overridePendingTransition(0, 0);
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,6 @@ import org.json.JSONObject;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@ -188,15 +187,12 @@ public class AssetsUtil {
|
||||
*/
|
||||
public static String readFromFile(Context context, String path) {
|
||||
try {
|
||||
FileInputStream fileInputStream = new FileInputStream(new File(path));
|
||||
InputStreamReader inputReader = new InputStreamReader(fileInputStream);
|
||||
InputStreamReader inputReader = new InputStreamReader(context.openFileInput(path));
|
||||
BufferedReader bufReader = new BufferedReader(inputReader);
|
||||
|
||||
String line="";
|
||||
StringBuilder result= new StringBuilder();
|
||||
while((line = bufReader.readLine()) != null)
|
||||
result.append(line);
|
||||
fileInputStream.close();
|
||||
inputReader.close();
|
||||
bufReader.close();
|
||||
return result.toString();
|
||||
|
@ -3,7 +3,7 @@
|
||||
<string name="load_game">下载游戏资源</string>
|
||||
<string name="start_game">进入游戏</string>
|
||||
<string name="preload_path">preload</string>
|
||||
<string name="game_url">http://local/index.html?channel=7103</string>
|
||||
<string name="game_url">http://local/index.html?channel=7109</string>
|
||||
<string name="local_version">1.0.0</string>
|
||||
<string name="load_back">load_back</string>
|
||||
<string name="launch_version">获取游戏版本</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user