本文依据官方文档 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包的大小的更多相关文章

  1. 减少apk包大小的一种思路

    现在apk大小主要是决定于两个:一个是图片一个是.SO文件(这个尽量用release包),而对于图片,既要越小,又要保持质量. 之前是PNG --> JPG, 现在直接是PNG ---> ...

  2. 6.关于Xamarin Android对APK包大小的处理

    降低学习成本是每个.NET传教士义务与责任. 建立生态,保护生态,见者有份. 对于apk 包的大小大家都是很敏感的,虽然现在安卓手机的性能和存储越来越厉害了.本着能少一点是一点的态度,我们还是要深入理 ...

  3. Android如何缩减APK包大小

    代码 保持良好的编程习惯,不要重复或者不用的代码,谨慎添加libs,移除使用不到的libs. 使用proguard混淆代码,它会对不用的代码做优化,并且混淆后也能够减少安装包的大小. native c ...

  4. 使用android-resource-remover删除项目中无用的资源,减少包的大小

    写这篇文章的原因是,一个CSDN的资源链接,Android程序员必备精品资源,在该链接的实用工具集锦中有一个工具吸引了我的注意,那就是android-resource-remover,它的解释是:一个 ...

  5. [RN] React Native 打包时 减少 Apk 的大小

    React Native 打包时 减少 Apk 的大小 主要有两个方法: 在打包前设置 android\app\build.gradle 文件中 1) def enableProguardInRele ...

  6. Android中获取应用程序(包)的大小-----PackageManager的使用(二)

    通过第一部分<<Android中获取应用程序(包)的信息-----PackageManager的使用(一)>>的介绍,对PackageManager以及 AndroidMani ...

  7. C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码

    前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 嗯,前面讲 ...

  8. 把玩Alpine linux(二):APK包管理器

    导读 Alpine Linux非常精简,开机内存占用也在二三十兆大,没有拆箱即用,就需要我们自己去做一些了解和配置 Alpine Linux的优劣 优势 Alpine Linux的Docker镜像特点 ...

  9. 计算apk包的安装之后占用空间以及运行时占用内存

    1.统计结果如下 计算apk安装占用空间大小方式 为了方式apk包运行时出现缓存数据等对空间计算造成影响.应该先进行安装,然后分别计算空间变化 所有apk包安装完毕后再运行 开启两个cmd窗口 第一个 ...

随机推荐

  1. URAL 1117. Hierarchy(DP)

    题目链接 这破题,根本看不懂题意啊...题意:一棵中序遍历是1 2 3 4 5...的满二叉树,从a a+1 a+2 a+3 b,总共多少步.x到y的距离为中间有多少个点.a > b没注意2Y. ...

  2. js小效果-简易计算器

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  3. PHP面向对象学习四 类的关键字

    1.关键字:final 用来定义类和方法的一个重要关键字,当定义类的时候该类将不能被继承, 当用来定义方法的时候该方法将不能被重载 2.关键字:static 用来定义类的静态属性或方法,可以在类未被实 ...

  4. QQ 微信 新浪 无法 分享 收集

    1.网络请求报错.升级Xcode 7.0发现网络访问失败.输出错误信息 The resource could not be loaded because the App Transport Secur ...

  5. Python中的socket 模块

    Python 提供了两个基本的 socket 模块.第一个是 Socket,它提供了标准的 BSD Sockets API.第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务 ...

  6. 设备像素比devicePixelRatio简单介绍

    本文所说devicePixelRatio其实指的是window.devicePixelRatio, 被所有WebKit浏览器以及Opera所支持,随着显示器的发展,这个属性也慢慢登上了前端技术的舞台. ...

  7. java web(四)文件上传与下载

     一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...

  8. Oracle求部门员工工资占总工资的比率

    --根据每个部门来统计部门工资总和 select deptid, sum(sal) 工资合计 from emp group by deptid; --根据每个部门来统计部门工资总和select dep ...

  9. JAVA6开发WebService (二)——JAX-WS例子

    转载自http://wuhongyu.iteye.com/blog/807836 上一篇写了个最简单的小例子,只是为了说明JAVA6开发Web Service很方便,这一篇稍微深入一点,写个稍微有点代 ...

  10. HTTP协议 (二) 基本认证

    HTTP协议 (二) 基本认证 http协议是无状态的, 浏览器和web服务器之间可以通过cookie来身份识别. 桌面应用程序(比如新浪桌面客户端, skydrive客户端)跟Web服务器之间是如何 ...