【问题标题】:Using GZIP compression stream in android在android中使用GZIP压缩流
【发布时间】:2018-12-08 18:19:15
【问题描述】:

我想在 android 设备中压缩数据并将其发送到 ASP.net 服务器端,但我不想消耗太多电力并牺牲设备资源。我尝试在 android 端使用 Deflate 流压缩数据并在服务器端使用相同的流进行解压缩,但解压后的字符串与原始字符串不同。然后我尝试使用 GZIP 流,恢复的数据与原始数据相同。 正如我所读到的,Deflate 流比 GZIP 更快。所以我该怎么做?使用 GZip 流在 Android 和 C# 之间进行数据压缩和解压缩是最佳实践吗?有没有办法恢复使用 Deflate 流压缩的数据?

【问题讨论】:

  • Android 应用是用 C# 制作的吗?
  • @Wanton 不,Android 应用程序是使用 Android Studio - Java 编程的。服务器使用 ASP.net 实现,使用的类是 C#。
  • 您是在序列化为 JSON,然后获取它的 UTF-8 字节,然后将其压缩并发送到 ASP.NET api 还是什么?
  • 是的,这正是我正在做的。
  • ASP.NET 中的 GZipStream?您不会碰巧使用一些旧的 .NET 框架。如果我记得在 4.5 中为它修复的错误。

标签: c# android compression gzipstream deflatestream


【解决方案1】:

尝试使用 DotNetZip (NuGet) 而不是 System.IO.Compression.GZipStream。

【讨论】:

  • DotNetZipt 的 DeflateStream 和 Java 的 DeflateStream 一样吗? ZlibStream 是什么?和Java的DeflateStream一样吗?那么使用 DefalteStream 比使用 GZIPStream 更好吗?
  • 编辑了我的答案。你可以使用任何你想要的东西。我读到的,它比System.IO.Compression 更兼容Android 的Java 压缩。更多关于图书馆的信息在这里github.com/haf/DotNetZip.Semverd
  • 我也很难回答你的问题,因为你的问题不包括你用来压缩的代码和你用来解压缩的代码。因此,很难帮助您了解哪些是兼容的,哪些是不兼容的。将来当您提出问题时,您应该提供回答问题所需的所有信息。 ZlibStream.UncompressBuffer() 可能是你想要的。
猜你喜欢
  • 1970-01-01
  • 2010-12-22
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
  • 2012-06-17
  • 2012-09-17
  • 1970-01-01
相关资源
最近更新 更多