Unity打包的apk在安卓4.4.2盒子上碰到的问题
项目场景:
Unity开发的项目需要在安卓4.4.2盒子上运行。
问题描述
1、会出
"从顶部向下滑动即可退出全屏模式。"的弹框,这是android4.4的一个特性,叫做沉浸模式(Full-screen Immersive Mode),当app启用该模式时,应用程序的界面会占据整个屏幕,屏幕上方的状态栏和下方的导航栏会被隐藏,从屏幕顶端向下滑动就可以再次呼出状态栏和导航栏,系统为了提醒用户就多加了一个提示装口。需要去掉这个弹框,否则用户无法进行下面的操作。
2、部分项目在启动过程中加载很慢,经测试有三款项目在启动过程有20-30秒的加载时间;加载时间过长需要优化。
原因分析:
1、安卓4.4以上的特性造成,但是大部分盒子针对这个特性做了优化,个别型号的盒子没有做优化所以会有这个问题出现。
2、加载问题可能造成的原因:资源过大、打包方式问题、加载方式问题。
解决方案:
1、
第一种方法:(这个方法测试后不行,可能是我这边的问题)
这个提示对于某些特殊的情况来说造成困扰,比如说某些深度定制的android系统无法使用鼠标或者触摸屏,打开全屏应用时,一旦出现了这个提示就无法消除,非常影响用户体验。所以需要去除这个提示窗口。
此处并不是说要去除android的沉浸模式这个特性,而是仅仅去掉这个提示窗口。
相关代码位于frameworks/base/policy/src/com/android/internal/policy/impl/目录下的ImmersiveModeConfirmation.java文件里,打开这个文件,找到:
private final class H extends Handler {private static final int SHOW = 0;private static final int HIDE = 1;@Overridepublic void handleMessage(Message msg) {switch(msg.what) {case SHOW:handleShow((String)msg.obj);break;case HIDE:handleHide();break;}}}
这段代码的功能就是呼出和隐藏提示窗口的,我们只需要屏蔽掉handleMessage方法中的handleShow((String)msg.obj)和handleHide()即可。
第二种方法:重新onWindowFocusChanged方法(此方法经测试cocos的可以去掉,unity的不行)
public void onWindowFocusChanged(boolean hasFocus){super.onWindowFocusChanged(hasFocus);
if(hasFocus){
showSystemUI();
}
}public void showSystemUI(){Handler mHandler = new Handler(){
public void handleMessage(Message msg){getWindow().getDecorView().setSystemUiVisibility()(View.SYSTEM_UI_FLAG_STABLE|View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
);}};
mHandler.sendEmptyMessageDelayed(0,100);
}
重写后cocos项目可以去掉弹框正常运行了,但是Unity项目还是不行,继续找其他解决方法;
其他公司技术支持建议修改activity的theme:修改为“@android:style/Theme.Translucent.NoTitleBar.Fullscreen”
Application的theme修改为;
<style name="titleTheme" parent="android:Theme" ><!-- <item name="android:windowTitleSize">30dp</item> --><item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item><item name="android:windowTitleStyle">@style/CustomWindowTitle</item><item name="android:windowTitleSize">0sp</item></style>
修改theme后还是不行;
第三种方法:使用Unity插件(unityShowAndroidStatusBar.aar)
这个插件网上应该能搜到,是有人封装好之后分享的。之前在遇到这个问题的时候,公司技术使用插件解决过类似问题,但是使用插件后还是不行,怀疑是unity版本问题,现在使用的是unity2019.4.9f1,之前使用的是unity5.4.5f1;所以,使用5.4.5版本Unity创建空项目添加插件后在盒子上运行,成功去掉弹框。所以,将所有项目从2019降版本到5.4.5(降版本很蛋疼)。
2、加载问题解决方案:(有加载问题的是Unity的项目,而且有三款没有加载问题,有三款有)先优化包体,包体从38兆优化到15兆,加载时间一样;继续修改打包方式,将打包方式改为和没有问题的项目一致,还是不行;用Unity打包改为导出后由androidstudio打包,还是不行;从log中看到加载进度在4%的时候等待了20秒才继续加载,而且中间没有报错;怀疑是有较大资源文件导致,检查项目发现有一个音频文件较大,有2.5M,直接去掉这个音频打包后测试,加载时间变为3秒,问题应该就出在音频文件上了,继续看另外两款游戏,果然都有较大的音频文件,将音频文件压缩到300Kb大小,打包后测试,加载依旧很快,至此,问题解决,全部压缩音频文件,全部重新打包,测试后全部通过。
插件我回头会上传到csdn,或者私信找我拿就行。
相关文章:
Unity打包的apk在安卓4.4.2盒子上碰到的问题
项目场景: Unity开发的项目需要在安卓4.4.2盒子上运行。 问题描述 1、会出"从顶部向下滑动即可退出全屏模式。"的弹框,这是android4.4的一个特性,叫做沉浸模式(Full-screen Immersive Mode),当app启用该模…...
docker的简单使用(centos7中为例)
安装: yum -y install docker 启动: service start docker 搜索镜像: docker search centos:7.9 下载镜像: docker pull docker.io/18703283952/mycentos 查看所有镜像: docker images 启动并进入镜像:…...

Stable Diffusion人工智能图像合成
AI 图像生成大有来头。新发布的开源图像合成模型称为Stable Diffusion,它允许任何拥有 PC 和像样的 GPU 的人想象出他们能想象到的几乎任何视觉现实。它几乎可以模仿任何视觉风格,如果你给它输入一个描述性的短语,结果就会像魔术一样出现在你…...

【Java EE】-CSS详解
作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【JavaEE】 分享: 且视他人如盏盏鬼火,大胆地去走你的道路。——史铁生《病隙碎笔》 主要内容:CSS引入html的三种方式,CSS八大选择器ÿ…...

C#_语言简介
目录 1. C# 简介 2. Visual Studio 窗口界面显示 1. C# 简介 什么是程序? 程序(Program)简单来说就是: 计算机是无法听懂我们人类的语言的,也可以说我们通过我们日常交流的语言是无法控制计算机的,计算机…...

【Python_Opencv图像处理框架】直方图与傅里叶变换
写在前面 本篇文章是opencv学习的第五篇文章,主要讲解了直方图与傅里叶变换的有关操作,作为初学者,我尽己所能,但仍会存在疏漏的地方,希望各位看官不吝指正🥰 写在中间 一、直方图 ( 1 &…...

Know-Evolve: Deep Temporal Reasoning for Dynamic Knowledge Graphs
Know-Evolve: Deep Temporal Reasoning for Dynamic Knowledge Graphs Rakshit Trivedi 1 Hanjun Dai 1 Yichen Wang 1 Le Song 1 知识背景 Temporal Knowledge Graph : facts occur,recur or evolve over time in these graphs,and each edge in the graphs have temporal …...

电脑高效率工作、学习工具软件推荐
本文介绍在学习、工作时,实测很好用、明显提高工作效率的几个免费电脑软件与小工具。 1 Microsoft To Do 官方网站:https://todo.microsoft.com/tasks/ Microsoft To Do是一款由Microsoft公司开发的待办事项管理应用程序。它提供了一个简单易用的界面&a…...

Java8新特性函数式编程 - Lambda、Stream流、Optional
1.Lambda表达式 1.1 概述 Lambda是JDK8中一个语法糖。他可以对某些匿名内部类的写法进行简化。它是函数式编程思想的一个重要体现。让我们不用关注是什么对象。而是更关注我们对数据进行了什么操作。 1.2 核心原则 可推导可省略 1.3 基本格式 (参数列表)->{代码}例一…...

AutoGPT安装教程
最近安装AutoGPT时遇到了一些问题,写下这篇文章记录一下 1 下载AutoGPT AutoGPT链接:https://github.com/Significant-Gravitas/Auto-GPT/tree/v0.2.2 下载AutoGPT 推荐下载stable 版本 2 申请openai 的api key 获取api的key,这里就不介…...

轻量级服务器nginx:负载均衡
负载均衡就是让每个设备,以同样的概率,处理用户对于服务器的任务请求,默认采用的负载调度策略就是轮流询问,Nginx作为反向代理服务器安装在服务端,Nginx的功能就是把请求转发给后面的应用服务器. 这里写目录标题 一 负…...

陶渊明最有名的10首诗,闲适美好
他是中国第一位田园诗人,被誉为“古今隐逸诗人之宗”、“田园诗派之鼻祖”。 他是诗人、辞赋家、散文家。 他是陶渊明。 欧阳修:晋无文章,唯陶渊明《归去来兮辞》。 陶渊明不为五斗米折腰,挂冠而去,给后世留下一段…...

最好用的六款虚拟机软件,赶紧收藏
在日常工作和学习中,我们常常需要在一台电脑上运行多个操作系统,以便进行软件测试、开发、学习以及实验等任务。虚拟机软件就是一种崭新的技术,它可以在一台电脑上运行多个操作系统,为用户提供了更高效、安全、稳定和智能化的工作和学习环境。今天我为大家介绍6款优秀的虚拟…...

LSSANet:一种用于肺结节检测的长、短切片感知网络
文章目录 LSSANet: A Long Short Slice-Aware Network for Pulmonary Nodule Detection摘要方法Long Short Slice GroupingLong Short Slice-Aware Network 实验结果 LSSANet: A Long Short Slice-Aware Network for Pulmonary Nodule Detection 摘要 提出了一个长短片感知网…...

LVS负载均衡群集部署—NAT
目录 一、群集的概述1、群集的含义2、出现高并发的解决方法3、群集的三种分类3.1负载均衡群集3.2高可用群集3.3高性能运算群集 4、负载均衡的结构 三、LVS调度器用的调度方法四、LVS的工作模式及其工作过程1.NAT模式(VS-NAT)2.直接路由模式(V…...

【Access】win 10 / win 11:Access 下载、安装、使用教程(「管理信息系统」实践专用软件)
目录 一、前言 二、卸载 Office 三、下载 Office Tool Plus 四、安装 Office(内含 Access) (1)启动 Office Tool Plus (2)部署 (3)安装 Office(内含 Access&#…...

波奇学Linux:Linux的认识和云服务器使用
认识Linux 在讲Linux前,我们先来理解计算机: 计算机:输入->算法->输出 举个栗子: pritnf :输出到屏幕(硬件)上 我们在计算机所有的行为都会转为硬件行为。 再进一步理解,我们打开visual studio后&a…...

JMeter 获取登录接口的token
1、登录接口为POST请求方式,添加请求登录接口的消息体数据 添加HTTP信息头管理器,配置content-type值为application/json 2、给登录接口“添加监听器-查看结果树”和“后置处理器-正则表达式处理器” 先运行一次登录接口,通过查看结果树返回内…...

算法训练day4:栈与队列
那么我这里再列出四个关于栈的问题,大家可以思考一下。以下是以C为例,使用其他编程语言的同学也对应思考一下,自己使用的编程语言里栈和队列是什么样的。 C中stack 是容器么?我们使用的stack是属于哪个版本的STL?我们…...

Git cherry-pick详解
文章目录 基本用法引入多个提交代码冲突解决引入分支所有提交引入另一个代码库提交常用配置常见问题 此文在阅读前需要有一定的git命令基础,若基础尚未掌握,建议先阅读这篇文章Git命令播报详版 对于多分支的代码库,将代码从一个分支引入到另一…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果,核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...

Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
数据库——redis
一、Redis 介绍 1. 概述 Redis(Remote Dictionary Server)是一个开源的、高性能的内存键值数据库系统,具有以下核心特点: 内存存储架构:数据主要存储在内存中,提供微秒级的读写响应 多数据结构支持&…...
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 摘要: 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...

RocketMQ 客户端负载均衡机制详解及最佳实践
延伸阅读:🔍「RocketMQ 中文社区」 持续更新源码解析/最佳实践,提供 RocketMQ 专家 AI 答疑服务 前言 本文介绍 RocketMQ 负载均衡机制,主要涉及负载均衡发生的时机、客户端负载均衡对消费的影响(消息堆积/消费毛刺等…...