安卓碎片化是什么意思_专为旧版本android打造「建议收藏」

安卓碎片化是什么意思_专为旧版本android打造「建议收藏」安卓碎片化是什么?按最简单的理解,就是安卓平台越来越复杂,差异越来越大,屏幕小到2.3寸-现在6寸多(平板除外),分辨率的不同,版本各异

                                                  

            安卓碎片化是什么?

           按最简单的理解,就是安卓平台越来越复杂,差异越来越大,屏幕小到2.3寸-现在6寸多(平板除外),分辨        率 的不同,版本各异。

         

           安卓碎片化带来的后果?

           这些都逐渐成为安卓系统发展的障碍,碎片化严重不仅造成安卓系统混乱,也导致安卓应用的隐形开发成本的增       多,同时也给我们开发安卓应用程序加大了不少难度。而且最终会导致安卓性能兼容变差 当然这个知识 顺着这       个观光,谷歌公司肯定也会进行改善。但是总感觉 如果照着样这样,安卓难免因为碎片化得癌症(心疼机器         人)。但是笔者总有一个感觉,以后的安卓会摆脱碎片化(并不是完全)。

            

         浅谈碎片化。

        记得在那里看过这么一句话: 100个Android手机制造商拿到Android内核之后,可以制造出100种搭载不同硬件平台、界面的Android手机,虽然是基于Android的,但实际上,已经不再是原来的Android了,经过各种改造之后,已经变成100个“独立”的Android ,这就是碎片化。 好像说的挺有倒理,说道这里又想到“安卓定制

          有这么不科学的调查,我问朋友们“你喜欢Android的定制软件吗?”一个人说不喜欢,另一个人做呕吐状。基于此,我认为没有人愿意在他们的智能手机上预装定制软件。很多廉价的Android设备预装了很多“定制软件”,用户发现他们无法删除这些定制软件。不论多么讨厌他们,这些软件的图标都在应用程序栏里嘲弄着用户,这些预装程序还会占用过多的内存而使得开关机速度变慢。 Android系统通过低价机市场扩大了在操作系统市场的占有率,但也让很多用户感到不满。我能理解为什么运营商希望预先安装定制软件,但请让用户不喜欢他们时可以将其删除。

            安卓碎片化是什么意思_专为旧版本android打造「建议收藏」

          

           碎片化的小知识:

               

v11 v14表示的是系统的版本号
v10 2.3
v11 3.0
v14 4.0
v21 5.0
v23 6.0
安卓碎片化是什么意思_专为旧版本android打造「建议收藏」
看到这张图,有没有感觉似曾相识。
安卓碎片化是什么意思_专为旧版本android打造「建议收藏」
对应的 可以了解一下。

系统的碎片化:
安卓碎片化是什么意思_专为旧版本android打造「建议收藏」
可以看出现在大部分机型的版本。 版本的各异也造成了系统的碎片化。
优化屏幕的碎片化:



屏幕分辨率 720*1280
单位 px:像素
屏幕尺寸 4.7寸 屏幕对角线的长度 4.7英寸
像素密度:dpi/ppi 每一英寸包含的像素点
dp:设备独立像素 

计算DPI:
安卓碎片化是什么意思_专为旧版本android打造「建议收藏」

对角线的像素点 = 开根号(1280^2+720^2 )

开根号(1638400+518400)= 1468 px
dpi = 1468/4.7=312dpi

Android定义
160dpi mdpi 1dp = 1px
240dpi hdpi 1dp = 1.5px
320dpi xhdpi 1dp = 2px
对于简单的规则图像,可以用xml文件画出来
480dpi xxhdpi 1dp = 3px
安卓碎片化是什么意思_专为旧版本android打造「建议收藏」

规定 在像素密度在160dpi此时
1dp = 1px

在实际工作中,ui的小伙伴们是以px来标识出长度的,这样我们就需要将px转换成dp,使用以下公式转换:

px = dp * (dpi / 160);

(ldpi(120dpi),mdpi(160dpi),hdpi(240dpi),xhdpi(320dpi))

我在网上看见类似以下的代码:

// The gesture threshold expressed in dp
private static final float GESTURE_THRESHOLD_DP = 16.0f;

// Get the screen's density scale
final float scale = getResources().getDisplayMetrics().density;
// Convert the dps to pixels, based on density scale
mGestureThreshold = (int) (GESTURE_THRESHOLD_DP * scale + 0.5f);

// Use mGestureThreshold as a distance in pixels...


1)禁用px,尽量使用 match_parent wrap_content layout_weight,如果需要固定 尺寸,尽量dp
2)准备多套图片
按照市场主流屏幕分辨率准备1920*1080 1280*720
放到xxhdpi xhdpi

安卓碎片化是什么意思_专为旧版本android打造「建议收藏」

3)使用.9图片
.9图片作用:在图片最外层指定1px的大小,设置选择性不失真的区域

当我们使用图片的时候也要注意类似的问题

这里我首先介绍两个定义

1.pre-scaling of resources:这个很简单,我们的项目中有drawable-ldpi,drawable-mdpi,drawable-hdpi,drawable-xhdpi这几个文件夹中就放着pre-scaling的图片


2.auto-scaling of pixel dimensions and coordinates:当在manifest文件中设置android:anyDensity=“false”,或者用编码的方式设置bitmap的inScaled为false的时候,系统会自动在显示的时候转换绝对的px坐标和长度,使ui元素还是能正确地以在mdpi中应该显示的大小显示出来。

对于简单的规则图像,可以用xml文件画出来:

a:创建资源文件

安卓碎片化是什么意思_专为旧版本android打造「建议收藏」

b.编辑资源文件

5)使用限定符
land 横屏
port 竖屏
w820dp 屏幕宽度大于820dp
sw240dp 屏幕较短的边大于240dp

安卓碎片化是什么意思_专为旧版本android打造「建议收藏」

这几个文件夹在项目的文件下都能看到。


               

安卓碎片化是什么意思_专为旧版本android打造「建议收藏」

              

今天的文章安卓碎片化是什么意思_专为旧版本android打造「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/85806.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注