系统内的APK 分别是什么意思

系统内的APK 分别是什么意思,第1张

APK(全称:Android application package,Android应用程序包)是Android *** 作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。

一个Android应用程序的代码想要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android系统所能识别的文件才可以被运行,而这种能被Android系统识别并运行的文件格式便是“APK”。

一个APK文件内包含被编译的代码文件(dex 文件),文件资源(resources), 原生资源文件(assets),证书(certificates),和清单文件(manifest file)。

APK 文件基于 ZIP 文件格式,它与JAR文件的构造方式相似,互联网媒体类型是:application/vndandroidpackage-archive。

扩展资料:

APK是Android application package的缩写,即Android安装包(apk)。APK是类似SymbianSis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。

apk文件和sis一样,把androidsdk编译的工程打包成一个安装程序文件,格式为apk。

APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是DalvikVM executes的简称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。

参考资料 百度百科-apk

在 Android 70 Nougat 中引入了全新的 APK Signature Scheme v2签名方式,美团也推出相应的 Android渠道包生成工具Walle 。
360加固后需要重新签名,借助360官方提供的 签名工具qihoo apk signer ,是采用的70以前的v1签名,这时再通过walle打渠道包,是无法成功往apk写入渠道号的。这时我们就必须借助 Android SDK提供的apksigner 工具对已经打包好的apk进行v2签名。

Android官方文档已经对 apksigner的使用 有比较详细的解释。下面说说实际的 *** 作步骤:

zip对齐,因为APK包的本质是一个zip压缩文档,经过边界对齐方式优化能使包内未压缩的数据有序的排列,从而减少应用程序运行时的内存消耗 ,通过空间换时间的方式提高执行效率(zipalign后的apk包体积增大了100KB左右)。
打开cmd,把目录切换到SDK的build-tools目录下(例如 E:\SDK\build-tools\2502\ ),执行:

zipalign命令选项不多:
-f : 输出文件覆盖源文件
-v : 详细的输出log
-p : outfilezip should use the same page alignment for all shared object files within infilezip
-c : 检查当前APK是否已经执行过Align优化。
另外上面的数字4是代表按照4字节(32位)边界对齐。

这个工具位于SDK目录的build-tools目录下。必须说明的是,v2签名方式时在Android70后才推出的,所以只有 版本>25 的SDK\build-tools\中才能找到apksignerjar。
打开cmd,把目录切到SDK\build-tools\版本号\lib下(例如 E:\SDK\build-tools\2502\lib ),执行:

示例:

apksigner还支持另外的一些选项, 详情点击这里 。包括指定min-sdk版本、max-sdk版本、输出详细信息、检查apk是否已经签名等等。
例如检查apk是否已经签名:

zipalign + apksigner,两步走完成对apk包的v2签名。且以上工具位于AndroidSDK目录的build-tools中。

相信大部分安卓用户都清楚,安卓系统的软件安装包后缀为“APK”,这个格式早在十年前就已经定下了。不过近期谷歌要求今年8月开始,新应用须打包为Android App Bundles格式,意味着应用商店的App格式将从“APK”改为“ABB”,有很多网友担忧,这个调整对于安卓用户会有怎样的影响。
其实,谷歌在这个时候提出全面切入AAB格式,是为了更好地解决安卓碎片化,不同版本、不同机型需要不同代码,从而导致APK体积过大的问题。而AAB的作用是切分不同架构的支持库,缩减分发包的大小以给用户更好的体验。很显然,在有了ABB格式之后,安卓系统会有更好的运行环境了。
现在应用商店都在推64位应用,其核心优势在于提高了软件运行性能,能够实现更快的运行速度、更低延时的数据吞吐和更迅捷的用户响应,同时也能更好地调度内存使用,带来更好的使用体验。而过去的APK格式一个包搞定所有机型,导致的APP兼容性与性能都很差,对于64位应用的普及有一定的局限性。简而言之,AAB格式+64位应用,将会带来更流畅、更好的体验效果。
值得一提的是,为了更好地为国内安卓用户提供最新、最全的应用体验,跟紧行业内的发展趋势,此前国内众多手机厂商就已经响应谷歌的号召,共同推进国内安卓生态对64位架构的升级支持。比如OPPO,早早就在官方软件商店公布了64位架构升级支持的具体时间节点,第一步便是在今年年底,所有的应用都需要上传64架构应用,第二步到2022年8月,OPPO软件商店仅接受64位软件包,在2023年全面实现64位应用的软硬件协调。

不得不说,OPPO在应用适配这一块真的很迅速,抢先让自家的应用商店完成「进化」,既保证了OPPO应用商店的APP品质,也进一步保障了用户的应用体验。要知道随着谷歌官方的进一步要求,加上ABB格式的强制转换,更多的开发者将迅速从32位转型到64位应用的开发,OPPO能够抢先完成适配,无疑在众多竞争者中夺得了先机。而且64软件架构因为代码的特性,将会提升整体APP的安全性,能够更好的保护用户的隐私、以及数据的安全性。
除了在应用方面切实保障用户利益,其实OPPO在保护用户隐私安全上也带来了不少贴心功能。比如搭载了ColorOS 113的OPPO Reno6 Pro,其拥有多个隐私保护功能,其中隐私替身就是针对很多APP应用中读取个人信息的授权保护,在应用需要读取个人隐私信息或者是获取权限时,系统会对APP提交空白信息,充分保障用户的隐私安全而不影响APP正常使用。
并且,为了应对APP广告跟踪、d出的问题,OPPO还推出了限制广告追踪功能,我们可以在Reno6 Pro的设置—隐私—设备标识与广告里开启此功能,开启后平时自己不感兴趣的广告信息,如,淘宝、第三方浏览器等应用将无法向你推送个性化广告信息或降低推送,可以说有效解决了广告d窗问题,进一步防止隐私信息泄露。
不管是谷歌要求安装包格式专为AAB,还是全面拥抱64位应用,都是为了让安卓用户获得更好的体验。而OPPO对于行业的变化应对速度非常快,抢先适配64位应用,让软硬件匹配度更高,手机 *** 作自然更流畅,用户体验也更为出色;加上OPPO深入系统底层的软件优化提升,带来了各种隐私保护功能,则让用户真正做到了无忧使用体验,对于消费者而言无疑是一大利好消息。

1034K。apk中包含应用的所有经过编译的代码和资源,去签后体积大致在1034K左右。apk是AndroidPackage的缩写,即Android安装包,apk是类似Symbian。

玩过王者荣耀的朋友,几乎无人不晓「鲁班七号」这个英雄。

作为 Android 的应用程序包,「APK」对于资深 Android 用户来说,知名度并不亚于前者。

Google 宣布,从 2021 年 8 月开始,Google Play 商店将要求开发者使用 Android App Bundle(AAB)发布新应用。这将取代 APK 作为标准发布格式。

消息一出,一些用户开始猜测甚至担忧:「以后还能借一部 APK 说话吗」?「Google 是不是在故意为难国产品牌」?

实际上,有这些疑问的朋友,大概率误解 Google 的这个动作了。

这次舆论漩涡的中心,就是 AAB 格式。所以首先我们要搞清楚,AAB 是什么。

在 2018 年 5 月举行的 Google 开发者大会上,Google 就已公布了 Android App Bundle(AAB)格式,并称这是其现代化开发的一部分。

Google 介绍道,开发者在上传应用至 Google Play 时,需采用 AAB 格式。Google Play 将负责生成 APK 文件及签名。

这句话有两个重点。

一是 AAB 只是上传时应用的格式,用户下载时,获取的依旧是 APK。

对于开发者来说,从 APK 转战到 AAB 没什么痛点。AAB 是一种开源格式,在构建时,选择相关的工具或引擎即可。

用户这边更不必担忧,因为我们在终端设备上看到的,依旧是 APK 格式。

二是生成 APK 的工作,将由 Google Play 完成。

Google Play 将根据用户设备的配置,从 AAB「源文件」里提取、组装适合该用户设备的代码及资源,从而生成 APK 安装包。

也就是说,这时用户下载的应用,已经过 Google Play 优化,以确保该应用可在当前设备上以最佳状态运行。

换种说法,方便你理解:AAB 就像是一袋方便面,里面有各种口味的调料包。Google Play 就是大厨,它会根据你设备的喜好,来判断面要煮多久、放什么调料包。

最终煮好的面,就是 APK 了。

Google 之所以要「强硬」地推行 AAB 格式,很大原因是 AAB 相比 APK 有着多种先天优势。

第一点,是体积轻盈。

上文说到,Google Play 会从 AAB 里,个性化地生成并优化 APK,以针对不同配置的设备、语言进行分发。

举个例子:假设你的手机是 2K 屏幕,首选语言是中文。那么 Google Play 在拼装 APK 时,就会只把 2K 分辨率、中文字符包的资源放进 APK 里。

而传统的 APK,开发者会将各种分辨率和语言包,打包在一起。用户下载下来,手机需要从中挑出适合自己的资源安装运行。

随着机型的不断增加,开发者需要在 APK 文件里塞上越来越多的资源,来提高适配性。因此,App 越来越大,动辄上百 MB。

那么 AAB 的应用,相当于「把复杂留给 Google Play,把简单留给用户」。用户下载的 APK,是经过 Google 精简过的,因此体积会小一些。

那么会小多少呢?根据 Google 的说法,此举可将 APK 的体积压缩 15%。

不过实际情况可能要好于这一预期。例如爱彼迎在拥抱 AAB 后,体积减少了 22%。Netflix 更甚,达到了 57%。

所以对于用户来说,可感知的一点就是安装包变小了,下载、安装的速度会更快。

其次,AAB 使得用户下载的应用,最大程度地符合设备配置,因此运行起来或许会更流畅。某种程度上算是提升了设备性能。

第二点,是应用模块化。

AAB 允许开发者将应用的功能拆分开来。让有需要的用户,自行下载。

我们继续举例子。假设开发者现在要做一个拍照 app,我的手机是单摄,你的手机是双摄。为了减小应用初始的大小,开发者可以把某些功能,设置为按需下载。

比如你想用这款 app 里,针对双摄手机推出的功能,你就下载额外的资料包即可。

开发者还可以决定什么时间,向什么机型推送应用的新功能。相当于自定义和掌控各类用户的体验。

「你我用着同一个 app,但享受着不同功能」的情况,或在将来成为常态。

第三点,是免下载体验。

AAB 的免安装分发特性,可让用户在 Google Play 里,无需下载应用,便可体验到应用的某些功能。

比如有一款 游戏 ,我们不确定是否值得下载,就可以点击「立即体验」,试玩前几个关卡,且不用下载该应用。

这有点像 iOS 14 新增的 App Clip 功能,可以被看作完整版应用的快捷方式,当中会包含应用的一部分功能。

iOS 14 的 App Clip 功能

所以对于用户来说,AAB 格式的推广,我们是可以感知到的,且会有更好的体验。

光打用户体验牌肯定不行,还得考虑开发者的感受。为了让他们有动力转战 AAB 格式,Google 给出了多个理由:

不感兴趣也没关系,那就来「硬的」:8 月起,应用程序包不改成 AAB 格式,就不许上传,逼迫着开发者进行转变。

这足以见得 AAB 对于 Google Play 未来规划的重要性。

推广 AAB 格式,对于大众用户来说绝对是一件好事。谁不希望自己下载的应用,体积又小、适配又好呢?

不过,Google 只是要求 Google Play 这样做,没有强制其他应用商店跟进。

也就是说,如果你没有在使用 Google Play,那么这个改动暂时是感知不到的。

但 AAB 格式的优点这么多,我们有理由相信,国内的应用商店会逐步跟上 Google 的步伐,拥抱 AAB。

而且我们上文说到,用户下载的安装包,依旧会以 APK 格式呈现。因此那些「Google 此举是为了针对国内厂商」的谣言,也就不攻自破了。

何况华为等应用商店,从前两年开始,就已经支持开发者上传 AAB 格式的应用。所以用户们大可放宽心,静等 AAB 格式推广的红利即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/13402050.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存