1
0
mirror of https://gitcode.com/gh_mirrors/re/react-native-pushy.git synced 2025-11-01 05:43:11 +08:00
Code Issues Packages Projects Releases Wiki Activity GitHub Gitee
This commit is contained in:
Yun
2019-03-22 20:47:01 +08:00
parent 7b7d8a9ec8
commit 88c80390d8
3 changed files with 48 additions and 33 deletions

View File

@@ -4,6 +4,12 @@
### 最新更新 ### 最新更新
5.1.5: 解决 Android 热更新后部分图片丢失问题:
同一个项目中放置了多个完全相同的文件,在 5.1.0 至 5.1.4 之间的版本中,更新后有时会出现其中的部分无法显示。此问题在 5.1.5 版本修复。
修复此问题涉及原生部分,需要重新打包。
5.1.0 以上的版本增加了如下的优化: 5.1.0 以上的版本增加了如下的优化:
1. 在项目中图片较多时Android 更新速度大幅提升,达到和 iOS 基本一致的更新速度。 1. 在项目中图片较多时Android 更新速度大幅提升,达到和 iOS 基本一致的更新速度。
@@ -14,15 +20,14 @@
因为 React Native 不同版本代码结构不同,因而请按下面表格对号入座: 因为 React Native 不同版本代码结构不同,因而请按下面表格对号入座:
React Native版本 | react-native-update版本 | React Native 版本 | react-native-update 版本 |
------------- | ------------- | ----------------- | ------------------------ |
0.26及以下    | 1.0.x | 0.26 及以下     | 1.0.x |
0.27 - 0.28 | 2.x | 0.27 - 0.28 | 2.x |
0.29 - 0.33 | 3.x | 0.29 - 0.33 | 3.x |
0.34 - 0.45   | 4.x | 0.34 - 0.45   | 4.x |
0.46及以上     | 5.x | 0.46 及以上     | 5.x |
 
### 优势 ### 优势
1. 命令行工具&网页双端管理,版本发布过程简单便捷,完全可以集成 CI。 1. 命令行工具&网页双端管理,版本发布过程简单便捷,完全可以集成 CI。
@@ -35,13 +40,13 @@ React Native版本 | react-native-update版本
请查阅 请查阅
* [文档-快速入门-准备工作](docs/guide.md)。 - [文档-快速入门-准备工作](docs/guide.md)。
* [文档-快速入门-添加热更新功能](docs/guide2.md)。 - [文档-快速入门-添加热更新功能](docs/guide2.md)。
* [文档-快速入门-发布版本](docs/guide3.md)。 - [文档-快速入门-发布版本](docs/guide3.md)。
* [文档-常见问题与高级指南](docs/faq_advance.md)。 - [文档-常见问题与高级指南](docs/faq_advance.md)。
### 命令行工具 ### 命令行工具

View File

@@ -22,6 +22,7 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream; import java.util.zip.ZipInputStream;
@@ -250,13 +251,14 @@ class DownloadTask extends AsyncTask<DownloadTaskParams, Void, Void> {
} }
} }
private void copyFromResource(HashMap<String, File> map) throws IOException { private void copyFromResource(HashMap<String, ArrayList<File> > map) throws IOException {
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(context.getPackageResourcePath()))); ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(context.getPackageResourcePath())));
ZipEntry ze; ZipEntry ze;
while ((ze = zis.getNextEntry()) != null) { while ((ze = zis.getNextEntry()) != null) {
String fn = ze.getName(); String fn = ze.getName();
File target = map.get(fn); ArrayList<File> targets = map.get(fn);
if (target != null) { if (targets != null) {
for (File target: targets) {
if (UpdateContext.DEBUG) { if (UpdateContext.DEBUG) {
Log.d("RNUpdate", "Copying from resource " + fn + " to " + target); Log.d("RNUpdate", "Copying from resource " + fn + " to " + target);
} }
@@ -264,6 +266,7 @@ class DownloadTask extends AsyncTask<DownloadTaskParams, Void, Void> {
} }
} }
} }
}
private void doPatchFromApk(DownloadTaskParams param) throws IOException, JSONException { private void doPatchFromApk(DownloadTaskParams param) throws IOException, JSONException {
downloadFile(param.url, param.zipFilePath); downloadFile(param.url, param.zipFilePath);
@@ -276,7 +279,7 @@ class DownloadTask extends AsyncTask<DownloadTaskParams, Void, Void> {
removeDirectory(param.unzipDirectory); removeDirectory(param.unzipDirectory);
param.unzipDirectory.mkdirs(); param.unzipDirectory.mkdirs();
HashMap<String, File> copyList = new HashMap<String, File>(); HashMap<String, ArrayList<File>> copyList = new HashMap<String, ArrayList<File>>();
while ((ze = zis.getNextEntry()) != null) while ((ze = zis.getNextEntry()) != null)
{ {
@@ -296,7 +299,14 @@ class DownloadTask extends AsyncTask<DownloadTaskParams, Void, Void> {
if (from.isEmpty()) { if (from.isEmpty()) {
from = to; from = to;
} }
copyList.put(from, new File(param.unzipDirectory, to)); ArrayList<File> target = null;
if (!copyList.containsKey(from)) {
target = new ArrayList<File>();
copyList.put(from, target);
} else {
target = copyList.get((from));
}
target.add(new File(param.unzipDirectory, to));
//copyFromResource(from, new File(param.unzipDirectory, to)); //copyFromResource(from, new File(param.unzipDirectory, to));
} }
continue; continue;

View File

@@ -1,6 +1,6 @@
{ {
"name": "react-native-update", "name": "react-native-update",
"version": "5.1.4", "version": "5.1.5",
"description": "react-native hot update", "description": "react-native hot update",
"main": "lib/index.js", "main": "lib/index.js",
"scripts": { "scripts": {