mirror of
				https://gitcode.com/gh_mirrors/re/react-native-pushy.git
				synced 2025-10-31 21:33:12 +08:00 
			
		
		
		
	-
This commit is contained in:
		
							
								
								
									
										29
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								README.md
									
									
									
									
									
								
							| @@ -4,6 +4,12 @@ | ||||
|  | ||||
| ### 最新更新 | ||||
|  | ||||
| 5.1.5: 解决 Android 热更新后部分图片丢失问题: | ||||
|  | ||||
| 同一个项目中放置了多个完全相同的文件,在 5.1.0 至 5.1.4 之间的版本中,更新后有时会出现其中的部分无法显示。此问题在 5.1.5 版本修复。 | ||||
|  | ||||
| 修复此问题涉及原生部分,需要重新打包。 | ||||
|  | ||||
| 5.1.0 以上的版本增加了如下的优化: | ||||
|  | ||||
| 1. 在项目中图片较多时,Android 更新速度大幅提升,达到和 iOS 基本一致的更新速度。 | ||||
| @@ -14,15 +20,14 @@ | ||||
|  | ||||
| 因为 React Native 不同版本代码结构不同,因而请按下面表格对号入座: | ||||
|  | ||||
| React Native版本  | react-native-update版本 | ||||
| ------------- | ------------- | ||||
| 0.26及以下     |   1.0.x | ||||
| 0.27 - 0.28   |   2.x | ||||
| 0.29 - 0.33   |   3.x | ||||
| 0.34 - 0.45   |  4.x | ||||
| 0.46及以上     |  5.x | ||||
| | React Native 版本 | react-native-update 版本 | | ||||
| | ----------------- | ------------------------ | | ||||
| | 0.26 及以下       | 1.0.x                    | | ||||
| | 0.27 - 0.28       | 2.x                      | | ||||
| | 0.29 - 0.33       | 3.x                      | | ||||
| | 0.34 - 0.45       | 4.x                      | | ||||
| | 0.46 及以上       | 5.x                      | | ||||
|  | ||||
|   | ||||
| ### 优势 | ||||
|  | ||||
| 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)。 | ||||
|  | ||||
| ### 命令行工具 | ||||
|  | ||||
|   | ||||
| @@ -22,6 +22,7 @@ import java.io.FileOutputStream; | ||||
| import java.io.IOException; | ||||
| import java.io.InputStream; | ||||
| import java.nio.charset.StandardCharsets; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Iterator; | ||||
| import java.util.zip.ZipEntry; | ||||
| 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()))); | ||||
|         ZipEntry ze; | ||||
|         while ((ze = zis.getNextEntry()) != null) { | ||||
|             String fn = ze.getName(); | ||||
|             File target = map.get(fn); | ||||
|             if (target != null) { | ||||
|             ArrayList<File> targets = map.get(fn); | ||||
|             if (targets != null) { | ||||
|                 for (File target: targets) { | ||||
|                     if (UpdateContext.DEBUG) { | ||||
|                         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 { | ||||
|         downloadFile(param.url, param.zipFilePath); | ||||
| @@ -276,7 +279,7 @@ class DownloadTask extends AsyncTask<DownloadTaskParams, Void, Void> { | ||||
|         removeDirectory(param.unzipDirectory); | ||||
|         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) | ||||
|         { | ||||
| @@ -296,7 +299,14 @@ class DownloadTask extends AsyncTask<DownloadTaskParams, Void, Void> { | ||||
|                     if (from.isEmpty()) { | ||||
|                         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)); | ||||
|                 } | ||||
|                 continue; | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "react-native-update", | ||||
|   "version": "5.1.4", | ||||
|   "version": "5.1.5", | ||||
|   "description": "react-native hot update", | ||||
|   "main": "lib/index.js", | ||||
|   "scripts": { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yun
					Yun