UE4 减少APK包的大小
本文依据官方文档 Reducing APK Package Size整理而来,不过我会陆续添加自己减少包大小的心得。
ETC1 纹理
当使用ETC1打Android包时,注意ETC1是不会压缩带Alpha通道的纹理的。当你的纹理需要Alpha通道而又不得不使用ETC1压缩时,可以使用两张分开的纹理,一张颜色一张存放Alpha值。
创建一个空的项目
创建新的工程时,不要带初学者内容,如果要使用的话使用UE4的迁移工具来导入想要的资源。
压缩Cook过的内容
最容易且最快的方法就是告诉UE4要压缩打包的APK包。可以通过EditàProject Setting,通过点击红色区域的高级设置找到Create compressed cooked packages来启用压缩。这样一般包的大小会减小50%以上,比如你原来有100兆,那么压缩后一般会小于50兆。
设置工程的关卡
正确地设置默认启动的关卡可以减少APK的大小(因为Android中有obb文件,所以此处应该是说的是减小apk最小包的大小)通过点击EidtàProejct settings来设置默认加载的关卡。
检查Cook的内容
为了确定只跟工程相关的文件添加到了apk中,你可以在Cooked文件夹中来检查所有cook的资源,它在(ProjectName)\Saved\Cooked文件夹下。
开发版和发布版大小(Development VS Shipping)
如果要发布程序切记要发布Shipping版本,一般发布版本可能比开发版本少14%左右。
针对单个设备设置LOD级别
UE4 4.8及以后可以为每个设置指定纹理大小。
移除未使用的内容
当最终版本要发布时,记得移除未使用的或者用途测试用途的内容。
移除未使用的插件
在编辑器中关闭未使用的插件可以确保不会把无用的内容和代码打包进最终的apk包中,因为有些包是需要一个资源和代码来运行的。通过WindowsàPlugins来禁用未使用的组件。
打包黑名单
UE4 4.9及以后版本可以通过在工程Build/Platform/(Target Platform Folder)目录中添加打包一些文本文件来排除部分或者路径下全部文件的打包。
下面是一个示例:
前面三个可以安全删除,但是AssetRegistry.bin在某些工程中可能是需要的,所以需要严格地测试来确保程序正确的运行。
最大动态点光源数量
UE4及后续版本中添加了设置最大动态点光源数量的选项。通过设置它的值可以一定程度上减小apk的大小,主要是减少了编译出的shader的个数及大小。这个属性在EditàProject SeetingsàMobileàMax Dynamic Point Lights
UE4 减少APK包的大小的更多相关文章
- 减少apk包大小的一种思路
现在apk大小主要是决定于两个:一个是图片一个是.SO文件(这个尽量用release包),而对于图片,既要越小,又要保持质量. 之前是PNG --> JPG, 现在直接是PNG ---> ...
- 6.关于Xamarin Android对APK包大小的处理
降低学习成本是每个.NET传教士义务与责任. 建立生态,保护生态,见者有份. 对于apk 包的大小大家都是很敏感的,虽然现在安卓手机的性能和存储越来越厉害了.本着能少一点是一点的态度,我们还是要深入理 ...
- Android如何缩减APK包大小
代码 保持良好的编程习惯,不要重复或者不用的代码,谨慎添加libs,移除使用不到的libs. 使用proguard混淆代码,它会对不用的代码做优化,并且混淆后也能够减少安装包的大小. native c ...
- 使用android-resource-remover删除项目中无用的资源,减少包的大小
写这篇文章的原因是,一个CSDN的资源链接,Android程序员必备精品资源,在该链接的实用工具集锦中有一个工具吸引了我的注意,那就是android-resource-remover,它的解释是:一个 ...
- [RN] React Native 打包时 减少 Apk 的大小
React Native 打包时 减少 Apk 的大小 主要有两个方法: 在打包前设置 android\app\build.gradle 文件中 1) def enableProguardInRele ...
- Android中获取应用程序(包)的大小-----PackageManager的使用(二)
通过第一部分<<Android中获取应用程序(包)的信息-----PackageManager的使用(一)>>的介绍,对PackageManager以及 AndroidMani ...
- C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码
前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 嗯,前面讲 ...
- 把玩Alpine linux(二):APK包管理器
导读 Alpine Linux非常精简,开机内存占用也在二三十兆大,没有拆箱即用,就需要我们自己去做一些了解和配置 Alpine Linux的优劣 优势 Alpine Linux的Docker镜像特点 ...
- 计算apk包的安装之后占用空间以及运行时占用内存
1.统计结果如下 计算apk安装占用空间大小方式 为了方式apk包运行时出现缓存数据等对空间计算造成影响.应该先进行安装,然后分别计算空间变化 所有apk包安装完毕后再运行 开启两个cmd窗口 第一个 ...
随机推荐
- Javascript 多浏览器兼容性问题及解决方案
一.document.formName.item(”itemName”) 问题 问题说明:IE下,可以使用 document.formName.item(”itemName”) 或 document. ...
- iOS定时器
主要使用的是NSTimer的scheduledTimerWithTimeInterval方法来每1秒执行一次timeFireMethod函数,timeFireMethod进行倒计时的一些操作,完成时把 ...
- GPIO裸机编程
作者:李老师,华清远见嵌入式学院讲师. GPIO控制技术是接口技术中最简单的一种.本章通过介绍S5PV210芯片的GPIO控制方法,让读者初步掌握控制硬件接口的方法.本章的主要内容: GPIO功能介绍 ...
- (JavaScript 2.0: The Complete Reference, Second Edition)javascript 2.0完全手册第二版 翻译说明
1,译文中javascript简称js. 2,本人翻译时将信息提炼加工,保留主要信息,个别地方可能与原文有出入. 3,为督促自己学习Javascript,从今天起每天翻译一些,每天更新. 下面是文章每 ...
- 关于iOS多线程的总结
关于iOS多线程的总结 在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项.当然也会给出几种多线程的案例,在实际使用中感受它们的区别.还有一点需要说明的是,这篇 ...
- Hibernate框架配置
API package com.hanqi.test; import static org.junit.Assert.*; import org.hibernate.SessionFactory; ...
- 获取客户端真实ip
// 获取客户端真实ip() protected function getIP() { global $ip; if (getenv("HTTP_CLIENT_IP")) $ip ...
- ArcGIS AddIN之工具不可用
AddIN做的工具,第一次打开时工具亮起(可用),第一次点击之后工具就灰掉(不可用) 原因:该工具没有找到响应函数 具体原因:之前做的好多工具,好多个项目,好多代码.现在统一放到一个项目中,一个工具条 ...
- [转]linux援救模式:linux rescue使用详细图解
网上很多网友问怎么进rescue 模式,不知道怎么用rescue来挽救系统. 现在我来图解进入rescue (示例系统为RHEL 3) 1.用安装光盘或者硬盘安装的方式进入安装界面,在shell 中 ...
- HTML - 毛玻璃 滤镜 模糊
css 秘密花园 http://dabblet.com/gist/d9f243ddd7dbffa341a4 场景,背景图片 + 毛玻璃遮盖 原理:利用background的cover特性,将毛玻璃的区 ...