分析你的第一个安卓程序
每一个项目都有Android 和 Project 两个常用项目结构,默认新建项目为android结构,这是被android studio转换过的,这种项目结构简洁明了,点击小三角可以切换项目结构,Project为真实目录
详解项目中的资源
现在我们对Project项目结构这些内容进行详细的讲解
1. gradle和idea:是android studio 自己生成的一些文件,不需要太关心
2. app:项目中的代码,资源,内容都是放在这个目录下,开发工作都会从这个目录下进行
3. build:它包含了编译时自动生成的文件
4. gradle:包含了gradle wrapper 的配置文件,它会根据你的电脑缓存情况决定是否联网下载,如果需要打开,导航栏->file->setting->build,execution,Deployment->gradle 里面有它的文件地址,建议拷贝出来
5. .gitignore:这个文件是用来将指定的目录或者文件排除在版本之外,
6. build.gradle:这个是全局的gradle构建脚本,通常这个文件的内容是不需要修改的,在下面会进行详细的解说
7. gradle.properties:在这里的配置属性将会影响到项目中的所有的gradle编译的脚本
8. gradlew和gradlew.bat 这两个文件是用来在命令行界面中执行gradle命令的,其中gradlew是在linux和mac系统使用,gradlew.bat是在windows系统中使用的
9. Local.properties:用于指定本机中的android sdk路径,通常内容是自动生成的,我们不需要修改,如果android sdk的位置发生的变化,那么就将这个文件中的路径改成新的就行
10. Setting.gradle:这个文件用于制定项目中所有引入的模块,由于项目中就只有一个app模版,一般这个东西是自动完成的,一个模版会添加一个字符串
app目录
现在就对app目录下的内容进行详细的分析
1. build这个目录和外层的build目录想死,也是包含了一些在编译时自动生成 的的文件,不过里面的内容不需要我们的关心
2. Libs:用来存放第三方jar包,并且自动添加到构建路径里面
3. AndroidTest:此处是编写androidtext测试用例的,可以项目进行一些自动化测试
4. Java:用来存放我们java代码的地方
5. res:这个里面就是你项目中需要用到的所有资源都要存放在这个目录,图片放在drawable下面,布局放在layout下面,字符串放在values目录下面
6. AndroidManifest:这是整一个安卓项目的配置文件,你在程序中定义的所有四大组件都需要在这个文件里注册,另外还可以在这个文件中给引用添加权限声明(比如你需要使用ImageView添加网络图片,需要internet权限),以后每次添加一个activity,你看我下面有两个activit,android studio 会自动注册,但eclipse需要手动注册,但保持一个好习惯,就每次创建一个activity都看一下去.
<intent-fileter>里的两行的两行代码非常重要,这个是存放项目的主活动(当前项目的主活动就是MainActivity),只能有一个,比如点击手机上的应用图标,首先启动的就是这个活动
点击右上角
运行后发现有helloword字样,这是默认的
现在开始研究我们的代码
打开MainActivity发现它是继承与AppCompatActivity,这是一种向下兼容的阿阿Activity,项目中的所有活动必须继承它或者它的子类,但是我们发现没有文字样式,安卓程序的设计讲究逻辑和视图分离,于是我们按住ctrl+邮件点击3发现进入
找到①hello word样式了吧哈哈,它被包含在一个文字控件②,以后你就会学到,这个空间的父类空间是一个布局控件③.你试着改一下hello word 再运行,你会发现,字体改变了!!!!!
接下来我们讲res项目它是resource的缩写,顾名思义就是资源文件
不用紧张,不太难,很简单!!!!
所有以drawable开头的文件夹都是用来存放图片的,所以mipmap开头的文件夹都是用来存放应用图标的所有values开头的文件夹都是用来存放字符串,文字样式,文字颜色的的,layout是用来存放布局文件,比如我们上面讲的activity_main就是一个布局文件,它在你创建项目的时候就已经创建好了.
为啥有这么多mipmap开头的文件夹呢,是为了让程序有更好的兼容各种设备,在做一个程序的时候最好能给一张图片提供几个不同的分辨率版本,分别放在这些文件夹下,然后当程序运行的时候,会根据设备的分辨率的不同而选择加载哪个文件夹下面的图片,一般我们把图片都放在mipmap-xxhdpi里面就行