前面我们创建了一个Android 应用,下面我们看一下生成的一大堆东西到底是什么。
根目录下的gradle什么的先不管,那是构建打包用的。主要看 src/main
目录下的三个文件/目录
- AndroidManifest.xml 这是整个Android项目的配置文件,也是整个应用的启动入口
- java,顾名思义,这里是所有的java代码的存放地
- res,所有的资源文件,包括图片,UI配置等
AndroidManifest.xml
顾名思义,这是整个应用的描述文件,那么具体描述了什么呢。我们看一下整个代码:
java
所有的java代码都放在这里,忽略测试,现在只有一个文件 MainActivity.java
:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
其中一个重要的函数就是 onCreate
,当这个Activity被创建的时候会调用这个函数,它通过 setContentView(R.layout.activity_main)
来显示我们在 activity_main.xml
中定义的一个activity。 另外两个是和点击以及创建工具栏菜单相关的函数。
虽然现在很简单,但是一个稍微复杂的应用会包含几十几百个java文件,从调用后端接口到操作用户界面相关的代码都在这里,所以以后这里的结构会变得比较复杂,一般至少会划分成数据层和视图层,即MV结构,或者数据+视图+界面的 MVP结构 等。
res
这个目录存放所有的资源文件,下面主要有如下几个子目录:
- anim, 动画定义,比如
slide-left-right.xml
中定义一个左右滑动的动画 - color 颜色定义
- drawable 主要是图片
- layout 通过XML配置的UI组件,尽量通过配置而不是Java来写界面
- menu 菜单的定义
- mipmap-xx 等存放各种不同尺寸的图片,对应不同的手机屏幕大小。
- values 这种键值对,最重要的就是前面提到的strings一定要放到这里来
这里存放的都是资源,那么肯定是需要被引用的,有两种方式可以引用:
- 在xml配置文件中直接通过
@string/name
的方式引用 - 在java代码中通过
R.string.name
的方式引用,比如R.layout.activity_main
看一下 activity_main.xml
里面的代码