IOS安装包比Android容量大的原因
昨天ios的硕士实习小伙伴,咳咳。在疑惑这个问题,于是就各种找资料。最后只找到两个权威的链接,根据这两个权威的链接,整理如下:
ios的app包含所有版本。
在ios9之前,应用程序的所有版本我们都进行了下载和安装。这意味着不管你的手机需要app的什么图片和资源,所有屏幕尺寸的图片和资源都会被下载。
想想那是多少:
- Non retina 3.5”
- Retina 3.5”
- Retina 4”, 4.7”, 5.5”
- Non retina iPad full size and Mini
- Retina full size, Mini and Pro
这些版本的图片与资源加起来不少哇。而且plus还包括64位和32位的。
Android可扩展布局与图片
另一方面,Android利用可扩展的布局,资源的布局可以扩展到任何大小,因此只需要一个副本。只有图标文件会有很多副本,但是最后也不过5次而已(我们现在基本都是2次罢了,xhdpi和xxhdpi)。
ps:在iOS 9中,苹果推出了App Thinning,这意味着App Store只会下载您的设备所需的资源。
ios与Android的区别
iPhone(.XIB)的UI定义文件比Android中使用的XML文件大得多。
与Android相比,代码加密在IOS中占用更大的空间。
其他可能的原因
另外也有人猜测,Android的应用程序可以运行在虚拟机中,而ios更接近于硬件,导致应用程序在编译的时候,多出了好多和底层交接的代码。当然这个猜测只是猜测而已,并不权威。
可能(不确定)IOS包括应用程序包中的引用库。
在android中,您可以将图像保存在3个独立的文件夹中,以进行不同的配置(ldpi,hdpi,mdpi)。
可能是android在安装过程中选择apt文件,而不包含所有文件。
开发平台的不同,Android很多的开发平台都能创建出一个apk文件,在我们手机中执行的时候程序运行在虚拟机上,而ios不同的开发平台打包的时候还要考虑到所打的包必须能够被x-code编译,因此打包又多了好多文件。(这个理由感觉有点扯淡了)
相关推荐
-
IOS安装包比Android容量大的原因
昨天ios的硕士实习小伙伴,咳咳.在疑惑这个问题,于是就各种找资料.最后只找到两个权威的链接,根据这两个权威的链接,整理如下: ios的app包含所有版本. 在ios9之前,应用程序的所有版本我们都进行了下载和安装.这意味着不管你的手机需要app的什么图片和资源,所有屏幕尺寸的图片和资源都会被下载. 想想那是多少: Non retina 3.5" Retina 3.5" Retina 4", 4.7", 5.5" Non retina iPad full
-
怎样优化今日头条IOS安装包
前言 今日头条 iOS 端从 2016 年起就关注到了安装包大小的问题,并启动了包大小优化.2017 年,我们将当时的经验发表为技术文章 <干货|今日头条iOS端安装包大小优化-思路与实践>[1]. 如今三年过去了.今日头条在继续探索包大小优化时实践了更多思路,包括构建配置.图片压缩.__TEXT 段迁移.二进制段压缩等.这些优化项在业务入侵较少的前提下给今日头条带来了显著的包大小收益.同时,整个业界在包大小优化上也产出了更多方案.因此我们更新文章,期待与大家共同交流包大小优化这件事. 表格:
-
Android中获取apk安装包信息的方法
一.获取安装包信息 复制代码 代码如下: /** * 获取apk包的信息:版本号,名称,图标等 * @param absPath apk包的绝对路径 * @param context */ public void apkInfo(String absPath,Context context) { PackageManager pm = context.getPackageManager(); PackageInfo pkgInfo = pm.getPackageArchiveInf
-
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
在上篇文章给大家介绍了JavaScript使用DeviceOne开发实战(一) 配置和起步,本篇文章继续给大家介绍关于javascript实战相关内容,一起学习吧. 生成调试安装包 首先需要说明的是,这个步骤并不是每次调试App都必须的,大部分情况生成一次调试安装包,安装到手机上之后就可以忽略整个这个步骤.因为调试安装包包含了很多原生组件,都是可以定制勾选的,如果你需要额外增加一些原生组件,则需要勾选更多的组件并要重新生成调试安装包. 点击调试程序的菜单里的"Build Debug Versio
-
php自定义apk安装包实例
本文实例讲述了php自定义apk安装包的方法,分享给大家供大家参考.具体实现方法如下: 众所周知,apk格式安装文件是android智能系统的安装文件,下面我们来看一个利用php实现自定义apk安装包实例. 一.需求: 需要实现对产品进行一次推荐好友安装的活动,每个会员下载自己的专属安装包(里面记录会员的相关信息). 二.思路: 经过了解,发现apk安装包原来只是zip的一个马甲,使用php的ZipArchive类可以对文件进行操作. 三.实现代码: 复制代码 代码如下: // 源文件 $apk
-
centos7环境下二进制安装包安装 mysql5.6的方法详解
本文实例讲述了centos7环境下二进制安装包安装 mysql5.6的方法.分享给大家供大家参考,具体如下: centos7 二进制安装包安装 mysql5.6 一.下载mysql5.6二进制安装包 http://mirrors.sohu.com/mysql/MySQL-5.6/ 如:mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz 二.安装mysql5.6(安装在/data/mysql56) (1).创建mysql用户账号 > useradd -s /sbin
-
最新Adobe2022 全家桶永久激活无限使用 附安装包下载(一键安装)
目录 Adobe 2022(Win10) 软件安装教程 Adobe作为目前市面上最主流的后期编辑工具,他的每次大小更新都会时刻受到关注,后期君也会及时给大家带来软件同步! 时间一晃又是一年过去了,按照惯例 Adobe是每年 10月份中下旬的一次大版本更新如期而至. 根据往年的经验,每一年新版本的Adobe软件都会在10月中下旬进行发布.今年也不例外,就在刚刚,Adobe 2022版本正式与我们相见. Adobe 2022(Win10) Adobe2022全家桶总共有15个安装包,都是平时最常用到
-
PowerShell远程安装MSI安装包、EXE可执行程序的方法
尽管对IT管理员或者开发者来讲,这是一个很常见的任务,但是在网上能找到"远程安装一个msi包或者exe应用程序"的相关文档还是比较少的.甚至有人在一些论坛的评论中写道,这不可能实现.事实上还是可以的.我会在本文提供两段代码,分别负责远程安装MSI包和EXE可执行应用程序. 一.安装MSI包 使用PowerShell调用WMI对象,你可以执行下面的脚本来安装你的MSI安装包: 复制代码 代码如下: $box="deviis01" #this is the name o
-
Angular实现下载安装包的功能代码分享
废话不多说了,直接给大家贴代码了,具体代码如下所示: <!DOCTYPE html> <html ng-app="myPro"> <head> <meta charset="UTF-8"> <title>angular-实现下载安装包的功能</title> <script src="js/angular.min.js"></script> <sc
-
ubuntu下用dpkg命令行运行deb安装包的方法
前言 如果ubuntu要安装新软件,已有deb安装包(例如:iptux.deb),但是无法登录到桌面环境.那该怎么安装?答案是:使用dpkg命令. deb是Debian Linux的安装格式,跟Red Hat的rpm非常相似,最基本的安装命令是:dpkg -i file.deb dpkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装.更新及移除.所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu.Knoppix 等. dpkg
随机推荐
- shell脚本监控linux系统内存使用情况的方法(不使用nagios监控linux)
- 抓住用户碎片时间推广 一天突破10000+流量
- iOS设计模式——Category简单介绍
- Springboot使用POI实现导出Excel文件示例
- PHP使用ffmpeg给视频增加字幕显示的方法
- PHP JSON格式数据交互实例代码详解
- python结合API实现即时天气信息
- mysql jdbc连接步骤及常见参数
- php版微信小店调用api示例代码
- 如何最大限度地实现安全登录功能?
- js纯数字逐一停止显示效果的实现代码
- 微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
- 用jQuery实现的智能隐藏、滑动效果的返回顶部代码
- 如何判断图片地址是否失效
- MySQL 5.0触发器参考教程第1/4页
- apache虚拟主机配置: 二级目录访问跳转到其他根文件夹
- Golang常见错误之值拷贝和for循环中的单一变量详解
- beego获取ajax数据的实例
- 用Vue编写抽象组件的方法
- 简单了解Javscript中兄弟ifream的方法调用