注:本人也是初学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

更多相关文章

  1. Android Studio启动时卡在Fetching Android SDK 以及导入Eclipse
  2. Android文件选择器
  3. Android Studio解决未识别Java文件(出现红J)问题
  4. Google 菜市场(Android Market)上不去的解决方法
  5. Android SD卡简单的文件读写操作

随机推荐

  1. Android电话拨号
  2. Android屏幕像素转换
  3. Android(安卓)WIFI DEMO(扫描附近WIFI强
  4. Android分页控件xlistview
  5. Android版本检测\自动更新
  6. Android之布局onClick属性写法规则
  7. android PreferenceScreen使用笔记
  8. Android使用Volley保持与服务器的会话
  9. android点击实现图片放大缩小
  10. [Android]listview图文混排