apk前缀debug、release、unaligned的区别

news/2024/11/8 12:10:53/

在做android开发过程中总是看到这几个apk:
app-debug.apk
app-debug-unaligned.apk
app-release-unaligned.apk
app-release.apk
一直以来都弄不懂这几个有什么区别,这两天有点时间就简单查阅了写资料,总结了一下:
四个文件中包含三个关键字:debug、release、unaligned,其中debug和release对应,有unaligned和没有unaligned的对应。

debug与release的区别

先看下这几个apk生成时间:
app-debug.apk
app-debug-unaligned.apk
在项目运行时生成,路径:\build\outputs\apk
app-release-unaligned.apk
app-release.apk
在签名打包时生成,其中app-release-unaligned.apk的路径为\build\outputs\apk,app-release.apk的路径为打包是我们自己指定。
再将这几个apk反编译,查看其本质区别:
打包后apk里会自动生成一个包名.BuildConfig的类
将debug.apk可以看到

public static final boolean DEBUG = true;

将release.apk可以看到

public static final boolean DEBUG = false;

而这个类我们在代码中是可以直接调用的,可以通过BuildConfig.DEBUG来判断日志的输出、服务器连接地址等

unaligned与没有unaligned的区别

Android SDK中提供了一个工具叫zipalign的工具,
关于这个工具的作用参看:
http://www.cnblogs.com/xirihanlin/archive/2010/04/12/1710164.html
在命令行运行:zipalign -c -v 4 app-debug.apk

这里写图片描述

命令行的执行结果为succesful,表示该app-debug.apk已经进行了对齐处理。

在命令行运行:zipalign -c -v 4 app-debug-unaligned.apk

这里写图片描述

命令行的执行结果为FAILED,表示该app-debug-unaligned.apk未进行对齐处理。而unaligned翻译成中文就是“对齐”的意思。那么,我们对
app-debug-unaligned.apk进行对齐操作是否就得到了app-debug.apk呢?在命令行执行zipalign -v 4 app-debug-unaligned.apk destination.apk,其中destination.apk为对齐后apk的名称。执行完后我们可以看到新生成的destination.apk和app-debug.apk的大小一样了。即便是右键查看文件属性的字节大小也是一样的(本应该算个MD5,偷个懒)。而关于align和unaligned的具体区别可以参考Android优化-Zipalign

这里写图片描述


http://www.ppmy.cn/news/698992.html

相关文章

apk ipa sis 各是什么东西

1、APK是Android Package 的缩写,是Android安装包。 2、IPA 是Apple程序应用文件iPhoneApplication的缩写。 3、SIS文件格式是诺基亚Symbian操作系统的应用程序。

Android动态部署一:Google原生Split APK浅析

在分析Android动态部署原理之前,我们先通过以下四点来分析一下Google原生支持的Split APK机制,了解了Split APK机制之后,可能会对大家深入理解Android动态部署原理有一定的帮助。 1. 什么是Split APK 2. 在实际开发中如何应用 3. 如何安装 4.…

adb 命令 之apk相关

安装 APK 命令格式&#xff1a; adb install [-lrtsdg] <path_to_apk> 参数&#xff1a; adb install 后面可以跟一些可选参数来控制安装 APK 的行为&#xff0c;可用参数及含义如下&#xff1a; 参数含义-l将应用安装到保护目录 /mnt/asec-r允许覆盖安装-t允许安装…

什么是APK

APK是Android Package的缩写&#xff0c;即Android安装包(anapk)。 APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。 apk文件和sis一样最终把android sdk编译的工程打包成一个安装程序文件格式为apk。 APK文件其实是…

apk 是什么

一.apk是android应用程序的安装包,是个zip的压缩文件 apk主要有以后几个部分组成 1.mate-inf 从java jar引入包信息的描述 2.res/ 资源文件目录 3.libs ndk编出来的os库 4.androidmanifest 配置文件 5.class.dex 最终生成的dalvik字节码 6.resources.ars 编译后的二进…

android apk结构,APK文件结构详解

前言 最近有业务需求,需要向已经打包的APK里面注入渠道(channel)信息,方便APK下载安装之后进行渠道归因。向APK里面注入渠道信息已经有比较成熟的方案美团walle。walle的强大和实现原理本文不再赘述。为了理解walle的代码,并且在出现异常case的时候,能够自己解决。必须要对…

Android APK 的构建流程以及Gradle多版本构建

一、APK 构建流程 1、通过AAPT2工具将各种xml文件汇总登记到R.java文件中&#xff1b;同时将AndroidManifest.xml生成对应的二进制文件&#xff1b; 2、通过AIDL工具将.aidl文件生成.java文件&#xff1b; 3、通过JavaCompile将.java文件生成.class文件; 4、通过dex工具将.…

android中adb是什么意思,adb是什么意思?安卓系统常用adb命令怎么用?

一、adb是什么意思&#xff1f; ADB是Android Debug Bridge的缩写&#xff0c;意为Android系统的调试桥。通过ADB我们可以在Eclipse中方面通过DDMS来调试Android程序&#xff0c;其实这就是用于谷歌Android系统的debug调试工具。 二、adb怎么安装&#xff1f; adb不需要安装&am…