android工程中的R.java文件

注:本人也是初学android,以下只是学习过程中的一些猜测与总结,至于浏览的人希望不是误人子弟

 

R.java资源文件
android工程所有资源信息(组件、图片、字符等等)都是由HashMap<Integer,Object>来存储的
key值就是R.java中的静态变量值
value就是相对应的各种对象信息(组件、图片、字符等等)
当工程被载入时,所有资源都被加载到HashMap中去(类似Spring将所有Bean放入HashMap中一样)
这样我们就可通过key值定位到相应的组件
资源加载的过程大致如下
1,解析res文件夹下的各种文件,如果是xml文件调用java反射机制解析成相应的对象;
2,由res文件夹下文档的目录层级结构来匹配R.java中相对应的静态变量名称,并取出变量值作为key值;
3,将步骤2中key值和步骤1中的value值放入到HashMap<Integer,Object>中.
而Context类中的getResource()方法实际上就是返回这个HashMap对象

android中的mvc模式
就web开发而言,MVC模式已经非常的成熟,无论是jsp+servlet+javabean还是流行框架struts等
这种视图、模型、业务逻辑相分离的设计方法使代码的解耦合性更高,android在系统的架构上也使用了MVC模式
首先必须声明本人对MVC模式的理解可能还不是特别深入,有不对的地方还望指正
如果硬要往MVC上靠拢的话,我们不妨就可以把R.java文件当做是MVC中的Moudle(模型)
而res/layout文件夹下的所有xml文件就是页面视图View
业务逻辑(Control)就可以具体到某一个Activity类、Service类或者是Broadcast类等等。
如Activity的简单实现:
首先通过setContentViewById(id)方法,将业务逻辑层与视图层进行绑定
而setContentViewById(id)方法中实际上是对模型R.java文件的查找操作,通过传递过来的方法参数id来找到合适的页面layout

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值