这是我在CSDN上的第一篇博文,写下这篇博文的时候,我是还一名大三在校学生,刚刚接触安卓不到一年。
在我的学习过程当中,有许多的人为我提供了学习上的帮助,他们有一些是我的老师、同学,有一些是各种社区上的活跃人士,当然,也有许多素不相识的博主,其中就包括了CSDN上的许多人。因而在我的学习步入正轨过后,将我个人的一些思考记录下来分享给大家,希望能够帮助到有需要的人。
以上姑且算是博主的简单自我介绍吧。
博文的介绍可能偏向碎片化,兴致所至,多多见谅。
一、关于res文件目录的思考
思考一:
关于资源的命名问题,各个公司或者组织事实上都有自己的一套标准,跟据实际的情况选择合适的标准是非常有必要的,因为这样的行为会让你的代码在团队或者组织内显得更富有可读性和易于维护。
但是从我个人的观点出发我认为过分缩写的命名是不可取的,例如lt_bt_cw这样的命名如果不参阅相应的手册刚接手项目的人根本没办法辨别出来这到底啥玩意,相反,像icon_activity_entrance_lock这样的命名方式就十分的简单易懂,任何一个英语水平达标的人即可轻松阅读,因此我推荐使用具体的、语义明确的命名。
在词汇的排序上,我习惯性地把可以作为索引的单词排在第一个,例如icon。这样文件系统就会把所有的icon排在一起,从而方便我的查阅,接下来的命名方式我还是推荐“限冠行令定状补”的排序(事实上我自己大部分时候也不是很分得清这些文法的区别:-)),最后跟上具体的名词描述。
比如:icon_activity_entrance_lock属于icon,是一个用于activity_entrance的lock图标。
思考二:
善用layer-list和shape,事实上可以绘制出相当水平的图标,在很多的场合可以减少适配上的工作,而且在形状的利用率上更高,因为可以提取出color放到values中去,从而让xml文件负责单纯的形状绘制。
此外,善用其他类型的drawable有的时候也能解决很多代码需要相当工作量才能解决的问题。
思考三:
(此处请参阅https://developer.android.google.cn/guide/topics/resources/providing-resources.html?hl=zh_cn#table2)
上表记述了安卓系统在自行选择资源的情况下对通配符的判断顺序,因而可以简单引申出的结论是在有针对多种情景下的资源使用时,我们应当使用尽可能长而完整的通配后缀名。
举例:有strings.xml和strings-en.xml和strings-night.xml三种适配,事实上当语言选择为en时night总是会被屏蔽,所以至少需要创建en-night来进行别名引用Night从而保证适配不被错误地忽视。