android学习第一天--Android Studio的项目工程简介

1.android工程目录结构

android学习第一天--Android Studio的项目工程简介
mainfests:

     AndroidManifest.xml:APP的配置信息

java:主要为源代码和测试代码

generatedJava:

R:保存项目中使用的资源的id
buildConfig:应用是否可以debug

res:主要是资源目录,存储所有的项目资源

    drawable:存储一些xml文件,-*dpi表示存储分辨率的图片,用于适配不同的屏幕。
                       -mdpi:320x480
                       -hdpi:480x800、480x854
                       -xhdpi:至少960x720
                       -xxhdpi:1280x720
    layout:布局文件夹,保存布局文件,Android中所有布局文件都是xml文件
    mipmap:存储原声图片资源
    values:存储app引用的一些值
                 - colors.xml:  存储了一些color的样式                   
                 - strings.xml: 存储了引用的string值
                 - styles.xml:   存储了app需要用到的一些样式

Gradle Scripts:build.gradle为项目的gradle配置文件

2.Project工程目录结构

android学习第一天--Android Studio的项目工程简介
build:系统生成的文件目录,最后生成的apk文件就在这个目录,这里是app-debug.apk

libs:为项目需要添加的*.jar包或*.so包等外接库

src:项目的源代码,其中android test为测试包,main里为主要的项目目录和代码,test为单元测试代码

3、Packages工程目录结构

android学习第一天--Android Studio的项目工程简介

4、AndroidManifest.xml

android学习第一天--Android Studio的项目工程简介
AndroidManifext描述了package中暴露的组件像activity,serveice等,他们各自的实现类,各种能被处理的数据和启动位置。此外还能声明程序中的contentproviers,intentreceivers,还能指定permissions和instrumentation等等。

xmlns:android:定义android的命名空间。
package:指定本应用内java主程序的包名,这里就是com.example.lf.day01_00_test了。
application:声明了每一个应用程序的组件及其属性。
android:allowBackup:将程序加入到系统的备份和恢复架构中。
android:icon:显而易见表示APP的图标了。
android:label:许可列表。
android:supportsRtl:启用各种RTLAPI来用RTL布局显示应用,这个是android4.2的新特性。     
android:theme:android的主题。
activity:android:name表示当前的activity的名字,因为工程为MainActivity,所以这个名字就为这个,之后有新的activity的话,也需要添加才可以使用。
intent-filter:包含了action,data和category三种。
                      action:只有android:name属性,常见的是android.intent.action.MAIN,表示此activity是作为应用程序的入口。  
                      data:指定了希望接受的intent请求的数据URI和数据类型。

category:android:name属性,常见的是android.intent.category.LAUNCHER,决定应用程序是否显示在程序列表里。

5、layout的activity_main.xml

android学习第一天--Android Studio的项目工程简介
RelativeLayout:相对布局。

xmlns:android定义:android命名空间。
xmlns:tools:tools命名空间,用来预览一些布局属性的添加喝删除后的效果。
android:layout_width:指定了控件的宽度,可选择match_parent,fill_parent,wrap_content,其中match_parent和fill_parent的意思相同,官方更加推荐使用match_parent。match_parent表示让当前控件的大小和父布局的大小一样,也就是由父布局来决定当前控件的大小。wrap_content表示让当前控件的大小能够刚好包含住里面的内容,也就是由控件内容决定当前控件的大小。
android:layout_height:同上。
android:paddingLeft,android:paddingRight,android:paddingTop,android:paddingBottom:站在父view的角度描述问题,它规定它里面的内容必须与这个父view边界的距离。此外还有margin,它是站在自己的角度描述问题,规定自己喝其他的view之间的距离,如果同一级只有一个view,那么它的效果基本上就和padding一样了。

TextView:android的控件。

    android:text:textview显示的内容,这里就是hello world了。
   android:layout_height/width="wrap_content"
    		① fill_parent
    		设置一个视图的布局为fill_parent将强制性地使视图扩展至父元素大小。
    		② match_parent
    		Android 中match_parent和fill_parent意思一样,但match_parent更贴切,于是从2.2开始两个词都可以
    		用,但2.3版本后建议使用match_parent。
    		③ wrap_content
    		自适应大小,强制性地使视图扩展以便显示其全部内容。以TextView和ImageView控件为例,设置为
    		wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小。