android工程文件分析:
- gen文件夹:保存自动生成的R.java文件,不需要改动。
- 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对象
- BuildConfig.java:编译配置。(android 4.2 才有提供)
- res文件夹:保存应用中的各种资源文件
- string.xml:该文件中声明了系统中使用的字符串常量。这样做有两个好处: (1) 降低了程序的耦合度 (2) android通过了特殊的方式来使用字符串,提高了程序运行效率
- main.xml:文件中声明了程序中用到的视图文件。 android 通过这种方法,将程序的表现层和控制层分开,降低程序的耦合度,提高了程序的可配置性。
- AndroidManifest.xml: 每个工程都有这样一个android工程的全局配置文件,工程中所有使用的组件(如Activity、Service、ContentProvider 和 Broadcast Receiver)
- assets文件夹:同 res 文件夹相同,用来保存资源文件,不同于res中资源的是,assets中通常保存的是原生的文件,如一个MP3文件,res中的资源可以通过R.java文件直接访问,而assets中的资源必须通过AssetManager类以二进制流的方式读取