android项目结构解析和重要文件
一,项目结构
本人刚刚接触Android,对于Android项目下目录的结构困惑了许久,花了许久才弄清。
我们主要编程是在src下的main下
main/java:写Java代码的地方,业务功能都在此实现
main/res:存放各种资源文件的地方,图片,视频,音频,还有各种形式的xml文档
1.res文件夹
drawable:存放各种位图文件,(.png,.jpg,.9png,.gif等)除此之外可能是一些其他的drawable类型的XML文件
mipmap-hdpi:存放高分辨率图片,一般大都把图片存放在这里
mipmap-mdpi:存放中等分辨率图片,很少放这里,除非兼容的的手机很旧
mipmap-xhdpi:存放超高分辨率图片,随着手机屏幕材质越来越好,以后估计会慢慢往这里过渡
mipmap-xxhdpi:存放超超高分辨率图片,这个在高端机上有所体现
layout:该目录下存放的是布局文件,有时我们会创建一套布局为一些特定机型做屏幕适配。
menu:在以前有物理菜单按钮,即menu键的手机上,用的较多,现在用的并不多,菜单项相关的资源xml可在这里编写
values:存放着xml配置文件
demens.xml:定义尺寸资源
styles.xml:定义样式资源
string.xml:定义字符串资源
arrays.xml:定义数组资源
attrs.xml:自定义控件时用的较多,自定义控件的属性!
theme主题文件,会对整个应用中的Actvitiy或指定Activity起作用,一般是改变窗口外观的!可在Java代码中通过setTheme使用,或者在Androidmanifest.xml中为<application...>添加theme的属性
以上是res目录的大部分内容,这里还要提下这个assets目录,虽然这里没有,但是我们可以自己创建,两者的区别在于是否前者下所有的资源文件都会在R.java文件下生成对应的资源id,而后者并不会;前者我们可以直接通过资源id访问到对应的资源;而后者则需要我们通过AssetManager以二进制流的形式来读取。这个R文件可以理解为字典,res下每个资源都都会在这里生成一个唯一的id,我们可以通过这个资源id来完成资源的访问,使用情况有两种:Java代码中使用和XML代码中使用。
如:getResources().getText(R.string.name),
<TextView android:text="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background = "@drawable/img_back"/>
二,重要文件
Android工程中有三个比较重要的文件,MainActivity.java,布局文件:activity_main.xml和Android配置文件:AndroidManifest.xml
这张图引用自网上,很好的讲解了这三个重要文件,具体代码在此就不做展示了。