本文依据官方文档 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. [杂谈] There is a Doctor in My Computer.

    (p.s. 附带手写翻译,有错轻喷) Admin: Hi.             (嗨) Doctor: How do you do?  What brings you to see me?     ...

  2. 【HDU】4418 Time travel

    http://acm.hdu.edu.cn/showproblem.php?pid=4418 题意:一个0-n-1的坐标轴,给出起点X.终点Y,和初始方向D(0表示从左向右.1表示从右向左,-1表示起 ...

  3. js小效果-双色球

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

  4. 深入浅出 - Android系统移植与平台开发(七)- 初识HAL

    作者:唐老师,华清远见嵌入式学院讲师. 1. HAL的module与stub HAL(Hardware AbstractLayer)硬件抽象层是Google开发的Android系统里上层应用对底层硬件 ...

  5. SQL Server2008清空日志文件

    USE[master] GO ALTER DATABASE mydbname SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE mydbname S ...

  6. (转) 使用Speech SDK 5.1文字转音频

    下载地址: http://www.microsoft.com/en-us/download/details.aspx?id=10121 SeppchSDK51.exe 语音合成引擎 SpeechSDK ...

  7. Express 路由

    路由 路由是指如何定义应用的端点(URIs)以及如何响应客户端的请求. 路由是由一个 URI.HTTP 请求(GET.POST等)和若干个句柄组成,它的结构如下: app.METHOD(path, [ ...

  8. [CareerCup] 17.4 Maximum of Two Numbers 两数中的较大值

    17.4 Write a method which finds the maximum of two numbers. You should not use if-else or any other ...

  9. Odoo 动态设置树形视图列表中的字段

    依赖第三方模块实现,实现效果图如下: 原模块只有9.0版本 ,今改成了8.0版本. git地址见群内公告.

  10. GitLab安装手记

    阿里云1G内存20G硬盘 1.首先下载GitLab Deb包(官网附有apt-get安装方式,但国内环境貌似不成功): https://about.gitlab.com/downloads/ 2. d ...