获取很多人都会问我为什么要写这个博客,原因很简单,这次研发apk版本信息的时候网上查了很多的资料都没有这方面的信息,因此这次功能完了想写下方法,如果以后博友们遇到了可以直接copy,不用花很多的时间,至少有了方向。

下面我就来说下获取apk版本信息所需要调用的dll吧,该程序集的版本信息为:0.85.4.369,注意哦这个版本信息很重要的,因为可能你下的很多版本都是无法用的。

下面我就来说下研发代码吧:代码可能有不周全的地方:由于时间紧急没有做优化了:

  using (ICSharpCode.SharpZipLib.Zip.ZipInputStream zip = new ICSharpCode.SharpZipLib.Zip.ZipInputStream(File.Open(apkPath, FileMode.Open, FileAccess.ReadWrite,   FileShare.ReadWrite)))//这里的后面连哥哥参数很重要哦,不然很有可能出现独占
  {

     using (var filestream = new FileStream(apkPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))//这里的后面连哥哥参数很重要哦,不然很有可能出现独占

{

         using (ICSharpCode.SharpZipLib.Zip.ZipFile zipfile = new ICSharpCode.SharpZipLib.Zip.ZipFile(filestream))
                               {

ICSharpCode.SharpZipLib.Zip.ZipEntry item;
                                         string content = string.Empty;
                                         while ((item = zip.GetNextEntry()) != null)
                                          {
                                                  if (item.Name == "AndroidManifest.xml")
                                                    {
                                                               byte[] bytes = new byte[50 * 1024];

using (Stream strm = zipfile.GetInputStream(item))
                                                                {
                                                                              int size = strm.Read(bytes, 0, bytes.Length);

using (BinaryReader s = new BinaryReader(strm))
                                                                              {
                                                                                        byte[] bytes2 = new byte[size];
                                                                                         Array.Copy(bytes, bytes2, size);
                                                                                        AndroidDecompress decompress = new AndroidDecompress();
                                                                                        content = decompress.decompressXML(bytes);
                                                                             }

}
                                                  }

         }

}

}

获取出来的信息content这里我就不作解析处理了哈,需要的朋友自己处理下咯哈。

C#获取apk版本信息的更多相关文章

  1. [置顶] Android Studio apk打包以及获取apk签名信息

    首先说下Android Studio 主要分为以下几步 填写你的签名的一些信息 (例如签名的文件名.省份.密码 别名 就是你比如叫xxx 但是别名是xx张三 认证年限就是apk过期默认是25年 其他就 ...

  2. Powershell 获取文件版本信息

    获取文件版本信息,通过FileVersionInfo::GetVersioninfo(file) 来获取信息 function Check-DdpstoreFileVersion{ $Ddpstore ...

  3. aapt命令获取apk具体信息(包名、版本号号、版本号名称、兼容api级别、启动Activity等)

    aapt命令获取apk具体信息(包名.版本号号.版本号名称.兼容api级别.启动Activity等) 第一步:找到aapt 找到sdk的根文件夹,然后找到build-tools文件夹.然后会看到一些b ...

  4. 获取windows版本信息的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 个人不建议用 GetVersion 或GetVersionEx 之类的 API 来获取系统版本号.注意微软也说过,这个 ...

  5. java通过解析文件获取apk版本等信息

    import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import ...

  6. iOS 获取应用版本信息

    现在许多接口都需要上传应用版本信息,所以呢,这个是必不可少的,可以在进入应用的时候先获取到,然后存在单例中,用的时候直接调用单例就好了,记住这些字符串 NSString *executableFile ...

  7. js获取浏览器版本信息整理

    一.Navigator 对象 JavaScript Navigator 对象包含了有关访问者浏览器的所有信息.接下来我们学习 Navigator 对象的两个属性. appName 保存浏览器类型 ap ...

  8. C#获取文件版本信息

    使用FileVersionInfo获取版本信息 FileVersionInfo info = FileVersionInfo.GetVersionInfo(Application.Current.St ...

  9. 在定制工作项时,把“团队项目”作为变量获取生成版本信息

    有用户最近提出这个需求: 通过工作项定制,新增一个字段用以保存项目Bug的"影响版本"信息,但是需要从当前团队项目的服务器生成纪录中获取版本的选项,类似默认模板中的"发现 ...

随机推荐

  1. CDH6安装文档

    1.准备工作 1.1 环境 centos7.jdk8.mysql5.7.python2.7.CDH6 1.2文件下载 1.2.1 cloudmanger地址 https://archive.cloud ...

  2. 基于两阶段提交的分布式事务实现(UP-2PC)

    引言:分布式事务是分布式数据库的基础性功能,在2017年上海MySQL嘉年华(IMG)和中国数据库大会(DTCC2018)中作者都对银联UPSQL Proxy的分布式事务做了简要介绍,受限于交流形式难 ...

  3. 码云+jenkins+自动回复邮件

    码云和jenkins的配置流程在Gitee Jenkins Plugin上介绍的很仔细. 附上码云官方Gitee Jenkins Plugin的介绍: https://gitee.com/help/a ...

  4. Kubernetes单机安装部署

    系统环境: Ubuntu 16.04.2 LTS 软件环境: Docker 1.12.6 Go 1.8.3 Etcd 3.1.8 Flannel 0.7.1 Kubernetes master 1.7 ...

  5. Jmeter测试计划中的元素

    测试计划中的元素(elements of a test plan) 本节描述测试计划不同的部分. 最小测试将包括测试计划.线程组和一个或多个采样器. 1 测试计划(Test Plan) 测试计划对象有 ...

  6. Hibernate实体类编写规则和主键策略

    一.实体类的编写规则 1.属性要是私有的. 2.要有公开的setter和getter方法供外界访问和修改. 3.每一个实体类要有一个属性作为唯一值(一般都是使用对于数据表的主键). 4.建议数据类型不 ...

  7. QSS为Qt程序添加不一样的样式

    添加 QSS 样式文件 在 Qt 项目中新建一个或使用已有的 Qt Resource File,在资源文件下面新建一个普通文件,命名为 Light.qss: 为 Light.qss 添加如下内容: 这 ...

  8. php.ini配置max_execution_time和FPM配置request_terminate_timeout

    PHP限定脚本执行时长的方式有几种,下面说下php.ini中的max_execution_time和php-fpm.conf中的request_terminate_timeout 1. php.ini ...

  9. Agile software Development

    转自:https://www.cnblogs.com/kkun/archive/2011/07/06/agile_software_development.html 敏捷软件开发 Agile soft ...

  10. Jquery UI Dialog 导致C#页面后台事件失效

    $(function () { dialog = $("#dialog-form").dialog({ autoOpen: false, height: 450, width: 5 ...