一、Androidstudio安装目录下文件结构二、AndroidStudio项目目录结构•一个App的最简单的目录结构分为:APP部分和非APP部分。1、app文件夹以外的文件:•把这么多文件先分成三块1.编译系统(Gradle)2.配置文件3.应用模块1、app文件夹以外的文件:文件(夹)名用途.gradleGradle编译系统,版本由wrapper指定.ideaAndroidStudioIDE所需要的文件build代码编译后生成的文件存放的位置gradlewrapper的jar和配置文件所在的位置.gitignoregit使用的ignore文件build.gradlegradle编译的相关配置文件(相当于Makefile)gradle.propertiesgradle相关的全局属性设置gradlew*nix下的gradlewrapper可执行文件graldew.batwindows下的gradlewrapper可执行文件local.properties本地属性设置(key设置,androidsdk位置等属性),这个文件是不推荐上传到VCS中去的settings.gradle和设置相关的gradle脚本2、app模块里的文件文件(夹)名用途build编译后的文件存在的位置(包括最终生成的apk也在这里面)libs依赖的库所在的位置(jar和aar)src源代码所在的目录src/main主要代码所在位置(src/androidTest)就是测试代码所在位置了src/main/assetsandroid中附带的一些文件src/main/java最最重要的,我们的java代码所在的位置src/main/jniLibsjni的一些动态库所在的默认位置(.so文件)src/main/resandroid资源文件所在位置src/main/AndroidManifest.xml每个安卓应用程序必须有一个AndroidManifest.xml文件,配置文件的根元素,告诉android系统我们的应用程式的资讯。build.gradle和这个项目有关的gradle配置,相当于这个项目的Makefile,一些项目的依赖就写在这里面proguard.pro代码混淆配置文件2、app模块里的文件三、3个重要文件•1、activity_main.xml::•2、MainActivity.java文件:•3、androidmanifest.xml文件:•1、activity_main.xml•布局文件,使用XML格式配置android项目的布局(界面的外观、格式)2、MainActivity.java文件•编写java代码,用于实现界面的交互3、AndroidManifest.xml文件•全局配置文件、告诉android该应用程式的资讯,和第二个文件关联体现几个问题:•Androidxml资源文件中@、@android:type、@*、?、@+含义和区别一.@代表引用资源1.引用自定义资源。格式:@[package:]type/nameandroid:text=@string/hello2.引用系统资源。格式:@android:type/nameandroid:textColor=@android:color/opaque_red注意:其实@android:type/name是@[package:]type/name的一个子类二.@*代表引用系统的非public资源。格式:@*android:type/name系统资源定义分public和非public。public的声明在:sdk_path\platforms\android-8\data\res\values\public.xml@*android:type/name:可以调用系统定义的所有资源@android:type/name:只能够调用publi属性的资源。注意:没在public.xml中声明的资源是google不推荐使用的。三.?代表引用主题属性另外一种资源值允许你引用当前主题中的属性的值。这个属性值只能在style资源和XML属性中使用;它允许你通过将它们改变为当前主题提供的标准变化来改变UI元素的外观,而不是提供具体的值。例如:android:textColor=?android:textDisabledColor注意,这和资源引用非常类似,除了使用一个?前缀代替了@。当你使用这个标记时,你就提供了属性资源的名称,它将会在主题中被查找,所以你不需要显示声明这个类型(如果声明,其形式就是?android:attr/android:textDisabledColor)。除了使用这个资源的标识符来查询主题中的值代替原始的资源,其命名语法和@形式一致:?[namespace:]type/name,这里类型可选。四.@+代表在创建或引用资源。格式:@+type/name含义:”+”表示在R.java中名为type的内部类中添加一条记录。如@+id/button的含义是在R.java文件中的id这个静态内部类添加一条常量名为button。该常量就是该资源的标识符。如果标示符(包括系统资源)已经存在则表示引用该标示符。最常用的就是在定义资源ID中,例如:@+id/资源ID名新建一个资源ID@id/资源ID名应用现有已定义的资源ID,包括系统ID@android:id/资源ID名引用系统ID,其等效于@id/资源ID名android:id=@+id/selectdlgandroid:id=@android:id/text1android:id=@id/button3