1.哪些手机是安卓系统的
2.聊聊获取屏幕高度这件事
3.5g版和5G手机有什么不同?
4.小米MACE 0.12.0有哪些新功能和优势?
5.小米14T Pro有哪些硬件配置被曝光?
哪些手机是安卓系统的
安卓系统的手机有很多,包括但不限于以下品牌机型:安卓手机是指运行Google Android操作系统的手机。Android系统是目前最广泛使用的移动操作系统之一。以下是部分采用安卓系统的手机品牌及其机型:
华为:华为的手机产品线丰富,几乎所有型号都使用安卓系统,如华为P系列、客户化源码Mate系列等。
小米:小米公司的手机也全部采用安卓系统,如小米MIX系列、Redmi系列等。
三星:三星作为安卓系统的原始设备制造商之一,其Galaxy系列手机使用安卓系统。
OPPO:OPPO的手机如Find系列、Ace系列等,都基于安卓系统进行开发。
vivo:vivo的X系列、S系列等手机也都采用安卓系统。
此外,还包括一些其他品牌如荣耀、realme、一加等,他们的手机产品也大多基于安卓系统开发。
安卓系统是一个开放源代码的操作系统,由Google和开放手机联盟共同领导开发。由于其开放性和可定制性,许多手机制造商选择在其基础上开发自己的手机操作系统。因此,市面上的大部分手机,尤其是那些来自知名品牌的手机,往往都是基于安卓系统。这些手机通过搭载不同的安卓版本,提供了丰富的功能和用户体验。
聊聊获取屏幕高度这件事
说起获取屏幕高度,QT源码1010或许你有所理解,但这个高度范围究竟指的是应用显示区域的高度,还是手机屏幕的高度呢?我们先来回顾一下平时使用获取高度的方法:
以上三种方法的效果一致,只是写法略有不同。
或许你使用的是这种方法:
这个方法在系统版本大于等于Android 4.2时,会使用getRealMetrics(getRealSize)来获取屏幕高度。那么这里发生了什么?为什么会这样呢?
其实在Android 4.0时,引入了虚拟导航键。如果你继续使用getMetrics之类的方式获取高度,获取的高度会去除导航栏的高度。
由于在4.0和4.2之间并没有getRealMetrics这个方法,所以当时甚至需要添加适配代码:
现在应该没有人还在适配4.4甚至5.0以下的机型了吧?所以历史的包袱可以放下了。
上面方法名都是getScreenHeight,但这个高度范围到底和你需要的是否一致呢?这需要开发时注意。我的习惯是ScreenHeight指应用显示的高度,不包括导航栏(非全屏下),RealHeight指包含导航栏和状态栏的高度(getRealMetrics)。
PS:以前也使用过AndroidUtilCode这个工具库,里面将前者方法名定义为getAppScreenHeight,后者为getScreenHeight。也是很直观的方法。
下文中我会以自己的习惯,使用ScreenHeight和RealHeight来代表两者。
我印象中华为手机很早就使用了虚拟导航键,如下图(来源):
比较特别的是,当时华为的导航栏还可以显示和隐藏,注意图中左下角的箭头。点击可以隐藏,上滑可以显示。即使这样,使用getScreenHeight也可以准确获取高度,隐藏了ScreenHeight就等于RealHeight。汽车源码程序
上述的这一切在“全面屏”时代到来之前,没有什么问题。
小米MIX的发布开启了全面屏时代(年底),以前的手机都是:9的,记得雷布斯在发布会上说过,他们费了很大的力气说服了谷歌去除了:9的限制(从Android 7.0开始)。
全面屏手机是真的香,不过随之也带来适配问题。首当其冲的就是刘海屏,各家有各自的获取刘海区域大小的方法。主要原因还是国内竞争的激烈,各家为了抢占市场,先于谷歌定制了自己的方案。这一点让人想起了万恶的动态权限适配。
其实在刘海屏之下,还隐藏一个导航栏的显示问题,也就是本篇的重点。全面屏追求更多的显示区域,随之带来了手势操作。在手势操作模式下,导航栏是隐藏状态。
本想着可以和上面提到的华为一样,隐藏获取的就是RealHeight,显示就是减去导航栏高度的ScreenHeight。然而现实并不是这样,下表是我收集的一些全面屏手机各高度的数据。
ScreenHeight一栏中括号内表示显示导航栏时获取的屏幕高度。
大致的规律总结如下:
其中vivo手机,屏幕高度加状态栏高度大于真实高度( + > )。本以为差值是刘海高度,但查看vivo文档后发现,vivo刘海固定dp(px),天天导航源码也还是对不上。
一加6最奇怪,三种设置模式。使用侧边全屏手势时底部有一个小条,NavigationBar高度变为。( + = + = )也就是说这种模式也属于有导航栏的情况。
这时如果你需要获取准确的ScreenHeight,只有通过RealHeight - NavigationBar来实现了。
所以首先需要判断当前导航栏是否显示,再来决定是否减去NavigationBar高度。
先看看老牌的判断方法如下:
此方法通过比较ScreenHeight和RealHeight是否相等来判断。如果对比上面表中的数据,那只有OPPO Find X可以判断成功。也有一些方法通过ScreenHeight和RealHeight差值来计算导航栏高度。显然这些方法已无法再使用。
所以搜索了一下相关信息,得到了下面的代码:
可以看到包含了华为、小米、vivo、oppo、三星甚至诺基亚的判断。这就是适配的现实状况,不要妄想寻找什么通用方法,老老实实一个个判断吧。毕竟幺蛾子就是这些厂家搞出来的,厂家魔改教你做人。
这种方法在上面的测试机中都亲测准确有效。
不过这个判断方法不够严谨,比如其他品牌手机使用此方法,那么结果都是false。用这样的结果来计算高度显得不够严谨。
根据前面提到问题发生的抄底虎头源码原因是全面屏带来的(7.0及以上)。所以我们可以先判断是否是全面屏手机(屏幕长宽比例超过1.以上),然后判断是否显示导航栏,对于不确定的机型,我们还是使用原先的ScreenHeight。尽量控制影响范围。
我整理的代码如下(补充了一加、锤子手机判断):
有人会问,这些key都是哪里来的?毕竟我在厂商文档也没有翻到。
我能想到的办法是查看SettingsProvider,它是提供设置数据的Provider,分有Global、System、Secure三种类型,上面代码中可以看到不同品牌存放在的类型都不同。我们可以通过adb命令查看所有数据,根据navigation等关键字去寻找。比如查看Secure的数据:
或者:
这样如果有上面兼容不到的机型,可以使用这个方法适配。也欢迎你的补充反馈。
费了这么大的劲获取到了准确的高度,可能你会说,还不如直接获取ContentView的高度:
这个结果和上述计算的高度一致,唯一的限制是需要在onWindowFocusChanged之后调用,否则高度为0。这个我们可以根据实际情况自行选用。
第二种情况就是状态栏强制为黑色。这里我怀疑因为这个设置,导致在有刘海的手机上,ScreenHeight不包含状态栏高度。
最糟糕的是第三种,隐藏后状态栏在刘海外。例如Redmi K在开启后,ScreenHeight为,RealHeight为,而关闭时为和。这下连万年不变的RealHeight也变化了,这太不real了,大家自行体会。不过目前发现未影响适配方案,不知其他手机如何。
对于是否隐藏刘海,其实也是有各家的判断的,比如小米:
getSystem源码如下:
它不受资源覆盖的影响,我们可以通过它将值转换回来。
本篇看似聊的获取高度这件事,其实伴随导航栏的发展演进,核心是是如何判断导航栏是否显示。
通过上面的介绍,总结一下就是在“全面屏时代”,如果你想获取屏幕高度,就不要使用ScreenHeight了。否则会出现UI展示上的问题。而且这种问题,线上也不会崩溃,难以发现。以前在支付宝中就发现过PopupWindow弹出高度不正确的问题,过了好久才修复了。
至于屏幕宽度,也不清楚随着折叠屏、环绕屏的到来会不会造成影响。但愿不要吧,碎片化越来越严重了。
最后,如果本文对你有启发有帮助,点个赞可好?
5g版和5G手机有什么不同?
1. vivo V Lite 5G的新版本已曝光,主要变化在于搭载骁龙 4G芯片。此前的V Lite 5G是vivo Ve 5G的改款版本。新5G版本及其4G版本在Geekbench、CQC及SDPPI等认证网站被披露,揭示了关键信息。vivo V Lite 4G版在SDPPI和CQC认证中显示支持多种快充技术。Geekbench数据显示,新5G版的单核成绩为,多核成绩为,配备Adreno GPU,运行Android 操作系统,预计至少配备8GB RAM。另一个5G版本在SDPPI上的型号为”,单核成绩为,多核成绩为,初步推测可能使用骁龙6Gen1芯片,但源代码显示其搭载Adreno GPU,实际上是骁龙4Gen2芯片。
2. 三星即将推出的Galaxy A 4G/5G手机系列已通过FCC和TUV Rheinland认证,预计将支持W快速充电,并可能附赠W充电器。作为Galaxy A的后续产品,Galaxy A系列将提供两种型号,分别为SM-AB/DS(5G版)和SM-AM(4G版)。该系列手机的电池额定容量可能为mAh,型号W3-S-S,并配备6.7英寸FHD Super AMOLED显示屏,支持Hz刷新率和尼特亮度。处理器可能有Exynos 和MediaTek Dimensity 两种选项,提供高达8GB RAM和GB存储空间,搭载Android 操作系统,预计将获得6年操作系统更新支持。根据市场调查机构Counterpoint Research的数据,三星在前十最畅销智能手机排行榜中占有五个名额,因此Galaxy A 4G/5G预估将成为新一代安卓入门机首选。
3. Redmi Note 9系列已经发布,有人说Redmi Note 9是4G手机,也有人说Redmi Note 9是5G手机,那么Redmi Note 9到底是4G手机还是5G手机呢?一起来了解一下吧。其实Redmi Note 9有两个版本,分别是Redmi Note 9 4G版和Redmi Note 9 5G版,4G版是4G手机,5G版式5G手机,因此在选择的时候还是需要注意的。Redmi Note 9 4G版和5G版的区别还是比较多的,在外观方面,Redmi Note 9 4G版和5G版的屏幕尺寸一样大,都是6.英寸,不过4G版采用的是水滴屏设计,而5G版则是挖孔屏设计。从机身背部来看,Redmi Note 9 4G版的摄像头为竖排排列方式,有羽墨黑、烟波蓝和雾光青三种颜色设计,而5G版摄像头则为圆形设计,有云墨灰、青山外和流影紫三种配色。在性能方面,Redmi Note 9 4G版采用的是骁龙处理器,而Redmi Note 9 5G版则是采用的天玑U处理器。在拍照方面,Redmi Note 9 4G版采用了一颗万像素的前置摄像头,而Redmi Note 9 5G版的前置摄像头参数则为万像素,两款手机的后置镜头参数一样,都是万像素万像素万像素的三摄设计。在续航方面,Redmi Note 9 4G版配备一块mAh
小米MACE 0..0有哪些新功能和优势?
在MIDC 的大幕落下之际,小米以一场科技盛宴震撼业界,其精心打造的盛会与Apple WWDC的风采不谋而合。 在这场盛会中,小米的焦点无疑落在了MACE 0..0的全新发布上,这款移动AI计算引擎框架犹如一颗璀璨的新星,展现出强大的革新力。MACE的初衷,是通过人工智能与深度学习技术,提升设备在摄影领域的表现,如Redmi K系列中的肖像模式,智能识别与美化功能,以及令人惊叹的高分辨率图像处理。 而MACE 0..0的开放源代码特性,让其成为业界共享的宝贵资源,无论是在智能手机还是IoT设备中的低功耗微控制器,都能无缝融入,体验到更强大的AI性能和节能优势。 新版本的四大亮点更是引人注目:异构计算的兼容性提升,兼容多种核心架构,兼顾性能与节能;
性能一致性得到增强,确保不同设备间的顺畅体验;
引入开源Kaldi语音识别系统,赋予设备更精准的语音交互能力;
并新增CMake支持,简化软件构建过程,提升开发效率。
小米5G时代的步伐越发稳健,MACE 0..0的出现预示着AI技术将更加深入日常生活。让我们拭目以待,期待这一技术在更多开发者手中绽放出更多可能性,为用户带来前所未有的智能体验。小米T Pro有哪些硬件配置被曝光?
结论:小米下半年的新品,小米T Pro似乎已浮出水面,被称作最强的天玑徕卡旗舰机,备受瞩目。
近期,开发者在小米HyperOS的源代码中发现一款代号为N的新款手机,考虑到前作小米T Pro的代号为M,N的出现几乎可以确认是小米T Pro的最新进展。 小米T Pro相较于以往的 Pro版本,提升尤为显著。它将配备一块1.5K OLED柔性直屏,带来更为细腻的视觉体验。处理器方面,它搭载了联发科的天玑,这是一款性能强大的芯片,为手机的日常使用和游戏体验提供了强大的支持。作为亮点,小米T Pro的徕卡三摄后置摄像头无疑是其最大卖点,它将为摄影爱好者提供卓越的影像表现,被誉为最强的天玑徕卡影像旗舰机。
值得注意的是,小米T Pro在国际市场上对应的型号为Redmi K至尊版,不过在具体的影像配置上可能会有所区别,这为不同地区的消费者带来了更多选择。2024-11-20 00:41
2024-11-20 00:16
2024-11-20 00:06
2024-11-20 00:01
2024-11-19 22:38
2024-11-19 22:25
2024-11-19 22:24
2024-11-19 22:18