Android 架构随想之配置文件
2016-09-29 11:11
381 查看
开发过程中不禁对于android的架构设计会有一点点想法,但是总是纳闷匆匆一想,思考的广度深度都十分有限,所以,纪录一下,看能不能梳理出人家的思路,一家之言,难免才疏学浅,望大家指正。
先聊聊他的配置文件,主要是视图相关的配置,在res目录下。
1、解耦:视图作为配置文件独立处理,和代码完全解耦,可以独立应对复杂的界面布局。
2、解析:xml书写的布局文件最终还是要转化成代码来运行,怎么转化呢,在layoutinflate中,我们发现,是通过反射来做的。是啊,一个纯文本的东西要new出一个对象,不 通过反射,你还想怎样,貌似也可以通过编号来解决,一个类型的view一个编号,找到编号就new对应的activity,编号如果由使用的人指定,难免使用起来麻烦,如 果在内部指定,内部需要维护一个已知view类型标签的列表,这无疑对扩展性有些要求。所以,通过直接反射是最好的,但是反射效率不高,系统内部不是做了优化
么,我看有了缓存的处理。另外,关于各种各样的view有不同的属性,android采用了使用数据结构直接保存属性,构造的时候,一次传入,由各界面自己来解析。
3、扩展性:对于新添加的view,或者属性,怎么办呢,原来layoutinflate是唯一的,只能通过congtxt的getService来获取,里面提供了注入接口,可以外部注入。android后续 版本都是通过这样的方式兼容,比如appcompat-v7
先聊聊他的配置文件,主要是视图相关的配置,在res目录下。
1、解耦:视图作为配置文件独立处理,和代码完全解耦,可以独立应对复杂的界面布局。
2、解析:xml书写的布局文件最终还是要转化成代码来运行,怎么转化呢,在layoutinflate中,我们发现,是通过反射来做的。是啊,一个纯文本的东西要new出一个对象,不 通过反射,你还想怎样,貌似也可以通过编号来解决,一个类型的view一个编号,找到编号就new对应的activity,编号如果由使用的人指定,难免使用起来麻烦,如 果在内部指定,内部需要维护一个已知view类型标签的列表,这无疑对扩展性有些要求。所以,通过直接反射是最好的,但是反射效率不高,系统内部不是做了优化
么,我看有了缓存的处理。另外,关于各种各样的view有不同的属性,android采用了使用数据结构直接保存属性,构造的时候,一次传入,由各界面自己来解析。
3、扩展性:对于新添加的view,或者属性,怎么办呢,原来layoutinflate是唯一的,只能通过congtxt的getService来获取,里面提供了注入接口,可以外部注入。android后续 版本都是通过这样的方式兼容,比如appcompat-v7
相关文章推荐
- Android studio so文件 配置问题 CPU架构不同 apk缩小
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(第三部分,附源代码)
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(第二部分)
- android porting——配置文件的修改
- android启动过程配置文件的解析与语法
- Android 配置文件锁设置
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(第一部分)
- android启动过程配置文件的解析与语法
- 基于 MVC 三层架构,Spring 配置文件(08.10.31号)
- 静煊架构,认识PStruts的配置文件
- android文件架构详解
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(第三部分,附源代码)
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(第一部分)
- FrameCountry数据访问层架构配置文件说明
- jforum架构和主要配置文件的说明
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(第一部分)
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(补充部分二)
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(第三部分,附源代码)
- 【Android】配置文件属性说明
- Android环境配置需安装的文件(附下载地址)