Android资源匹配算法
来源:互联网 发布:java工程师培训有用吗 编辑:程序博客网 时间:2024/06/07 13:01
新书上市《深入解析Android 5.0系统》
以下内容节选自本书
当某种资源存在多个候选资源目录时,需要通过一种方式来找到最合适的资源。在Android的网站上提供了资源匹配的算法说明,让我们一起来学习。
下面我们通过一个实际的例子来学习这个算法的执行过程。假设res目录下存在着下列资源目录:
drawable/
drawable-en/
drawable-fr-rCA/
drawable-en-port/
drawable-en-notouch-12key/
drawable-port-ldpi/
drawable-port-notouch-12key/
同时假设有一台设备的配置如下:
Locale =en-GB
Screenorientation = port
Screenpixel density = hdpi
Touchscreen type = notouch
Primarytext input method = 12key
通过算法筛选后,最终使用的资源目录是:
drawable-en-port
.
系统进行选择依据的是下面的流程图演示的算法。我们依据这个算法来看看上面这个例子是如何得到最终的结果的。
第一步:去掉和系统配置冲突的项。
上面的例子中有两项冲突:
目录“drawable-fr-rCA/”和配置“Locale = en-GB”冲突;目录“drawable-port-ldpi/”和配置“Screen pixel density= hdpi”冲突。但是在配置限度符表里讲过,对于DPI类的限定符,并不要求资源项和它精确匹配,所以这里第一次不能去掉“drawable-port-ldpi/”。
第二步:按顺序逐项检查配置限度符表,看是否有限定符存在于资源目录名中,如果存在,则去掉没有该限定符的目录。
1.
2.
drawable/
drawable-port-ldpi/
drawable-port-notouch-12key/
然后只剩下三项了:
drawable-en/
drawable-en-port/
drawable-en-notouch-12key/
接下来,一直到“屏幕方向”才又找到匹配的限定符“port”。上面三项去掉不含“port”的两项。最后就只剩下“drawable-en-port/”。- Android资源匹配算法
- ”Android资源文件匹配“调研
- Android 资源匹配过程详解
- Android屏幕资源匹配顺序
- Android如何找到最佳匹配资源
- Android寻找匹配最佳资源的原理
- Android 如何找到最匹配资源
- Android是怎样匹配资源的
- Android资源分组及匹配详解
- perl 解析 android 字符串资源的 %1$s 匹配问题
- Android系统如何找到最匹配的资源文件的
- Android如何根据当前显示配置匹配资源 layout / drawable
- Android屏适配-资源文件夹命名与匹配规则
- android资源加载:资源id--(查资源表)匹配-->资源路径->加载资源 手机(配置信息)<-->资源(配置信息) 默认资源
- 匹配算法
- 匹配算法
- 匹配算法
- 算法 字符串匹配算法
- Futex同步机制简介
- Android的Futex系统调用
- Futex用户态操作
- Mutex类使用Futex实现同步
- 虚拟运营商会如何卖手机?且看JDPhone和余额宝
- Android资源匹配算法
- C语言基础学习小总结
- Android图片资源的缩放问题
- SEAndroid简介
- SEAndroid的各种策略文件
- Init进程设置SELinux的Policy
- Init进程初始化安全上下文
- Android设置守护进程的安全上下文
- jQuery选择器总结