美文网首页android高级进阶
androidAPK优化zipalign工具

androidAPK优化zipalign工具

作者: android的那点事 | 来源:发表于2018-01-04 11:11 被阅读11次

在Android的操作环境中,存储在每个应用程序包的数据文件通过多个进程访问,例如,程序安装工具将读取数据列表确定相关的权限;因为包括显示通知等在内的多种原因,系统服务器可以读取这些资源;主界面应用程序要读取资源以便获取应用程序的名称与图标等。因为Android是基于一个真正的多任务操作基础架构,这些文件是不断地读取。最后但也是最重要的,应用程序本身读取体现的数据 .
Android系统中Application的数据都保存在它的APK文件中,同时可以被多个进程访问,安装的过程包括如下几个步骤:

  • 1、Installer通过每个apk的manifest文件获取与当前应用程序相关联的permissions信息。

  • 2、Home application读取当前APK的Name和Icon等信息。

  • 3、System server将读取一些与Application运行相关信息,例如:获取和处理Application的notifications请求等。

  • 4、最后,APK所包含的内容不仅限于当前Application所使用,而且可以被其它的Application调用,提高系统资源的可复用性。

因为Android操作系统基于Linux架构,存储单元布置(Memory Mapping)在有效的处理过程中起着一个关键的作用。从本质上而讲,为Android操作系统资源的处理代码最佳的整理是4字节界层。这个意思是说,如果APK应用程序包是存储单元布置到4字节界层,依据相应的整理,操作系统将不需要通读整个应用程序包以获取所需要的数据表,而每一个系统处理都将提前知道到哪里去寻找它所需要的资源,因此执行效率更快(运行更平滑,速度更快)。

zipalign优化的最根本目的是帮助操作系统更高效率的根据请求索引资源,将resource-handling code统一将Data structure alignment(数据结构对齐标准:DSA)限定为4-byte boundaries。如果第一次接触有关Data structurealignment的内容,强烈建议搜索更多与其相关的内容来充分理解这样做的最终目的,这也是理解zipalign工作原理的关键。 如果不采取对齐的标准,处理器无法准确和快速的在内存地址中定位相关资源。

目前的系统中使用fallbackmechanism机制处理那些没有应用DSA标准的应用程序,这的确大大的方便了普通开发者无需关注繁琐的内存操作问题。但是相反,对于这样的应用程序将给普通用户带来一定的麻烦,不但影响程序的运行的效率,而且使系统的整体执行效率下降和占用大量不必要的内存资源,甚至消耗一定的电池资源(battery life)。

优化的几种方法

使用ADT

如果你使用导出向导的话,Eclipse中的ADT插件(从Ver. 0.9.3开始)就能自动对齐Release程序包。使用向导,右击工程属性,选择“Android Tools”>“Export Signed Application Package…”或者可以直接在AndroidManifest.xml中设置。

使用Ant

对于API Level 大于等于4的Application Packages可以直接通过Ant build script来Align优化。但对于API Level小于4的情况,只能采取手动Align优化。

默认下应用Ant build script运行Debug packages(API Level >= 4)时,将自动执行Align优化。

针对Release packages。当使用Ant build script执行Align优化时,首先需要拥有足够的信息来Sign packages。当完成Signing之后, 才能执行Align优化。通过官方文档了解如何Sign Packages

使用Android studio

android studio 中的build.gradle文件中加入zipAlignEnabled true

buildTypes {
          release { 
             minifyEnabled false 
             proguardFiles getDefaultProguardFile ('proguard-android.txt' ), 'proguard-rules.txt'
            zipAlignEnabled true
                 }
     }
手动
  • 1.找到zipalign工具所在的文件夹,在sdk/build-tools/25.0.1/文件夹下
image.png
  • 2.在cmd窗口切换到zipalign工具所在的目录:
image.png
  • 把要优化的app放在zipalign工具所在的文件夹

  • 4.输入命令行:

      zipalign -v 4 hang.apk newhang.apk
    
image.png
验证对齐

以下的命令用于检查程序包是否进行了对齐:

zipalign -c -v 4 newhang.apk

总结:推荐使用zipalign工具对APP进行优化,确保优化后的APP提供给用户.

本人做android开发多年,以后会陆续更新关于android高级UI,NDK开发,性能优化等文章,更多请关注我的微信公众号:谢谢!
二维码.jpg

相关文章

  • androidAPK优化zipalign工具

    在Android的操作环境中,存储在每个应用程序包的数据文件通过多个进程访问,例如,程序安装工具将读取数据列表确定...

  • Android 优化记录

    1、zipalign 对齐APKAPK优化工具zipalign的详细介绍和使用zipalign详解2、启动优化启动...

  • 为什么要zipAlign

    ZipAlign zipalign是一个存档对齐工具,可为Android应用程序(APK)文件提供重要的优化。目的...

  • Android中的.apk之zipalign优化

    对于安卓的开发,谷歌本身也提供了很多的优化的优化工具。今天是无意间看到了zipalign,通过Zipalign可...

  • Zipalign对Apk文件进行存档对齐

    1.什么是Zipalign? Zipalign就是一个对Apk文件进行存档对齐的优化工具,它的目的是确保所有的未压...

  • SDK填坑记录(Android版) - GooglePlay

    GooglePlay上传及审核问题 一、Zipalign优化 解决办法:使用Zipalign优化: 二、签名问题1...

  • Android性能优化之APK优化

    前言Android 1.6 SDK中包含了一个用于优化APK的新工具zipalign。它提高了优化后的Applic...

  • 多渠道打包

    minifyEnabledtrue// Zipalign优化zipAlignEnabledtrue// 移除无用的...

  • 快快优化下你的APK吧

    今天用下班前二十分中介绍个小工具 。Android SDK中包含了一个优化APK的小工具:Zipalign。 Zi...

  • zipalign的工具的使用

    Android SDK中包含一个“zipalign”的工具,它能够对打包的应用程序进行优化。在你的应用程序上运行z...

网友评论

    本文标题:androidAPK优化zipalign工具

    本文链接:https://www.haomeiwen.com/subject/dyalnxtx.html