首页 > 其他分享 >Android etc1tool之png图片转换pkm 和 zipalign简介

Android etc1tool之png图片转换pkm 和 zipalign简介

时间:2023-10-21 10:44:26浏览次数:30  
标签:文件 zipalign etc1tool -- 对齐 Android pkm

一、导读
我们继续总结学习基础知识,温故知新。

本文记录android etc1工具的介绍及使用。
本文记录android zipalign命令的介绍及使用。

二、etc1tool
etc1tool 是一种命令行实用程序,可用于将 PNG 图片编码为 ETC1 压缩标准格式(PKM),并将 ETC1 压缩图片解码回 PNG。

简单讲就是 png跟pkm图片格式互相转换。

android中pkm格式的文件可放在assets目录下进行读取。

2.1、用法
etc1tool infile [--help | --encode | --encodeNoHeader | --decode] [--showDifference
diff-file] [-o outfile]
1
2
选项 说明
infile 要压缩的输入文件。
–help 输出用法信息。
–encode 从 PNG 文件创建 ETC1 文件。如果未指定模式,这将是此工具的默认模式。
–encodeNoHeader 从 PNG 文件创建原始 ETC1 数据文件(没有标头)。
–decode 从 ETC1 文件创建 PNG 文件。
–showDifference diff-file 将原始图片和编码图片之间的差异写入 diff-file。此选项仅在编码时有效。
-o outfile 指定输出文件的名称。如果未指定 outfile,输出文件的名称将由输入文件的名称加上适当的后缀(.pkm 或 .png)构成。
etc1tool

三、zipalign
zipalign 是一种 zip 归档文件对齐工具,有助于确保归档文件中的所有未压缩文件相对于文件开头对齐.

若通过使用 Android Gradle 插件 (AGP) 的 Android Studio 进行构建,系统会自动完成此操作。

下面本主要讲自定义构建系统的使用:

3.1 使用
如果您的 APK 包含共享库(.so 文件),请使用 -p 来确保它们与适合 mmap(2) 的 4KiB 页面边界对齐。
对于其他文件(其对齐方式由 zipalign 的必选对齐参数确定),Android Studio 将在 32 位和 64 位系统中对齐到 4 个字节。

如需对齐 infile.apk 并将其保存为 outfile.apk,请运行以下命令:

zipalign -p -f -v 4 infile.apk outfile.apk
1
如需确认 existing.apk 的对齐情况,请使用以下命令。如果您使用 Android Studio 或 AGP 进行构建,则应使用该命令来验证 APK 是否已对齐。

zipalign -c -v 4 existing.apk
1
选项 说明
-c 仅检查对齐情况(不会修改文件)。
-f 覆盖现有输出文件。
-h 显示工具帮助。
-p 使未压缩的 .so 文件对齐页面。
-v 详细输出。
-z 使用 Zopfli 重新压缩。
zipalign

四、 推荐阅读
Java 专栏

SQL 专栏

数据结构与算法

Android学习专栏

标签:文件,zipalign,etc1tool,--,对齐,Android,pkm
From: https://www.cnblogs.com/fan123567/p/17778591.html

相关文章

  • Android推送问题排查
    针对MobPush智能推送服务在使用过程中可能出现的问题,本文为各位开发者们带来了针对MobPush安卓端推送问题的解决办法。 TCP在线推送排查排查TCP在线收不到推送时,我们先通过客户端的RegistrationId接口获取设备的唯一标识示例:MobPush.getRegistrationId(newMobPushCallback<String......
  • MobPush如何在Android端自定义铃声
    随着移动应用竞争进入红海时代,如何在APP推送中别出心裁显得尤为重要。例如对自己的APP推送赋予独特的推送铃声,能够给用户更加理想的使用体验。1、个性化提醒铃声有助于当收到特定类型的消息时,用户能够立刻识别出来。2、不同的推送铃声可以用于区分消息的紧急程度,从而为用户是否查看......
  • android ebpf初体验实现文件重定位
    之前通过修改内核插桩并编写内核模块的方式hookdo_sys_open函数(这种方式有点像tracepoint,都属于静态探测),这种方式优点是可以hook内核中的任意函数,但是需要编译内核和驱动模块较为麻烦。eBPF相当于在内核中定义了一个虚拟机,能够加载eBPF字节码并依赖kprobe,uprobe,tracepoint实现......
  • android 友盟SNS_SDK为Android应用加入SNS分享、同步功能
    使用友盟SNS_SDK为Android应用加入SNS分享、同步功能很多朋友在开发Android应用的过程中,都想加入社会化的分享功能,如将自己的应用使用状态或心得同步到新浪微博、人人网或腾讯微博等。这些社交网络或微博都已经发布了针对开发者的开放平台(关于开放平台的相关信息,请参考《说说微......
  • Android studio的Device File Explorer不见了
    手机文件管理器路径View------>toolwindows----->DeviceFileExplorer  ......
  • Android入门教程 | RecyclerView使用入门
    想必大家对列表的表现形式已经不再陌生。手机上有联系人列表,文件列表,短信列表等等。本文讲述的是在Android开发中用RecyclerView来实现列表效果。使用步骤引入RecyclerView在app的build.gradle文件中添加引用。我们使用的是androidx包。gradle:dependencies{//........
  • Android入门教程 | DrawerLayout 侧滑栏
    DrawerLayout是实现了侧滑菜单效果的控件。DawerLayout分为侧边菜单和主内容区两部分:主内容区要放在侧边菜单前面,还有就是主内容区最好以DrawerLayout最好为界面的根布局,否则可能会出现触摸事件被屏蔽的问题。侧滑菜单部分的布局必须设置layout_gravity属性,表示侧滑菜单是在......
  • android 升级到java11,升级到androidx的操作方法
    androidstudioAndroid9(28)升级到Android10(29)Androidx小计_sdk29对应依赖androidx.appcompat:appcompat-resources是-CSDN博客java.lang.NoClassDefFoundError:Failedresolutionof:Landroidx/appcompat/R$drawable;-简书(jianshu.com)......
  • Android 一例Base64错误问题
    在Android11下正常,8.1下不正常修改importimportorg.apache.commons.codec.binary.Base64;为importandroid.util.Base64;publicstaticStringencrypt(Stringdata){try{SecretKeysecretKey=newSecretKeySpec(SECRET_KEY.getBytes(),ENCRYPT......
  • 一张图去除焦虑,我还能在Android这行继续“裸泳”
    每当新技术潮流兴起时,总会有人声称它们将使"程序员"失业,例如云服务、低代码等等...云原生的出现甚至引发了一种观点,认为很多程序员工作将会集体下岗,生成式技术正在颠覆多个行业,有专家预言在三年内编程将终结...今年,随着技术的不断突破和创新,它们具备更加完善的能力,可以应用于多个工......