<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>图标包 &#8211; 张三太爷</title>
	<atom:link href="https://www.somedoc.net/tag/%E5%9B%BE%E6%A0%87%E5%8C%85/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.somedoc.net</link>
	<description>看前面，黑洞洞</description>
	<lastBuildDate>Tue, 05 Jul 2022 03:24:10 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>

<image>
	<url>https://www.somedoc.net/wp-content/uploads/2016/12/cropped-dandycheung-1-32x32.jpg</url>
	<title>图标包 &#8211; 张三太爷</title>
	<link>https://www.somedoc.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Android 图标包的一些资料（续）</title>
		<link>https://www.somedoc.net/2022/07/05/android-%e5%9b%be%e6%a0%87%e5%8c%85%e7%9a%84%e4%b8%80%e4%ba%9b%e8%b5%84%e6%96%99%ef%bc%88%e7%bb%ad%ef%bc%89/</link>
					<comments>https://www.somedoc.net/2022/07/05/android-%e5%9b%be%e6%a0%87%e5%8c%85%e7%9a%84%e4%b8%80%e4%ba%9b%e8%b5%84%e6%96%99%ef%bc%88%e7%bb%ad%ef%bc%89/#respond</comments>
		
		<dc:creator><![CDATA[张三太爷]]></dc:creator>
		<pubDate>Tue, 05 Jul 2022 03:16:53 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[备忘录]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[图标包]]></category>
		<guid isPermaLink="false">https://www.somedoc.net/?p=5103</guid>

					<description><![CDATA[前文见《Android 图标包的一些资料》。 这几天在 ap <a href="https://www.somedoc.net/2022/07/05/android-%e5%9b%be%e6%a0%87%e5%8c%85%e7%9a%84%e4%b8%80%e4%ba%9b%e8%b5%84%e6%96%99%ef%bc%88%e7%bb%ad%ef%bc%89/" class="more-link">[&#8230;]</a>]]></description>
										<content:encoded><![CDATA[<p>前文见《<a href="https://www.somedoc.net/?p=4898">Android 图标包的一些资料</a>》。</p>
<p>这几天在 app 里发现个 bug，枚举出的图标包中的图标数量，比该图标包自己声称的还要多。了解了一下发现，又是一例用想当然的思路贪图抄近路省力气而挖下的坑。枚举图标不是去处理 <code>appfilter.xml</code> 而是处理了 <code>drawable.xml</code>。</p>
<p>之前没有注意过后者，所以又查了一下。在一篇时间久远但言简意赅的文档里，确实明确提到了 <code>drawable.xml</code>，说明此文件由来已久。顺便补充一下，不管是 <code>appfilter.xml</code> 还是 <code>drawable.xml</code>，它们“应该”同时存在于两个位置，<code>res/xml</code> 下和 <code>assets</code> 下。</p>
<p>图标包是为启动器服务的，其中包含有未指定应用目标的图标是没有意义的，由此可知，表述了图标与其应用目标 app 的关系的 <code>appfilter.xml</code> 中应该已经将所有图标罗列完整，那 <code>drawable.xml</code> 的意义何在？</p>
<p><code>appfilter.xml</code> 中的条目大致是这样，<code>&lt;item component="ComponentInfo{com.android.chrome/com.google.android.apps.chrome.Main}" drawable="ic_webbrowser"/&gt;</code>。在实际中，可以找到若干个 component 对应于同一个 drawable 的用例。也就是说，一个图标包支持的 app 的数量可能会大于其中包含的图标的数量。很明显，正如同名字本身就已经指示出的那样，<code>appfilter.xml</code> 其实并不是对图标的收录信息，而是对 app 的收录信息。</p>
<p>但图标包通常是一个含有展示自己所囊括图标的简易 app。在出现多个 app 指向共同的图标的情况下，不应该在展示的时候向用户呈现出这种图表的重复使用情况。从这个角度而言，每个图标本身需要有属于自己的描述信息。这就是 <code>drawable.xml</code> 可以来解决的了。在 <code>drawable.xml</code> 中的条目类似这样，<code>&lt;item drawable="ic_webbrowser" name="浏览器" /&gt;</code>。每个 <code>item</code> 都可能处于一个类似于 <code>&lt;category title="系统"&gt;</code> 这样的节点之内，以用于区分其类别。显然地，<code>item</code> 的 <code>drawable</code> 属性与 <code>appfilter.xml</code> 中 <code>item</code> 的 <code>drawable</code> 属性存在字面上的对应关系。</p>
<p>事实上，当意识到 <code>drawable.xml</code> 的历史如此久远时，我唯恐它还有另一个作用。这是<a href="https://commonsware.com/blog/2017/08/22/platform-resource-aliases.html"> Android 平台之前存在的一个名为 <code>drawables.xml</code> （注意其中 <code>s</code> 字母的存在）的文件</a>给我的启发。在其中，<code>item</code> 节点并非是只有属性，而且可以有值，像这样：<code>&lt;item name="ic_webbrowser" type="drawable"&gt;@android:drawable/ic_web_browser&lt;/item&gt;</code>。当然，如果 <code>drawable.xml</code> （注意其中没有 <code>s</code> 字母）允许类似的“重定向”（通常出于某种可理解但无法完全明确定位的灵活性所考虑），那恐怕也已经被时间的流沙磨洗殆尽了。</p>
<p>补充一下。图标包模板之前见到过若干个，但是近期还在更新的不太多，在这儿放两个吧：</p>
<ul>
<li><a href="https://github.com/Mr-XiaoLiang/SmartIconPack">Mr-XiaoLiang/SmartIconPack: 一个更简单的图标包模版 (github.com)</a></li>
<li><a href="https://github.com/zixpo/candybar">zixpo/candybar: Dashboard for Android Icon Packs. Supported by the community. (github.com)</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.somedoc.net/2022/07/05/android-%e5%9b%be%e6%a0%87%e5%8c%85%e7%9a%84%e4%b8%80%e4%ba%9b%e8%b5%84%e6%96%99%ef%bc%88%e7%bb%ad%ef%bc%89/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
