虽然用了好长时间的AS工具,但是却从来没有好好的研究一下这个开发环境,今天看了书上的介绍,就想做一下总结。

我们新建一个项目后,在这个项目下有很多文件,我对这些自动生成的文件一一做个介绍,不懂的可以看看。

1. .gradle和.idea

这两个目录下的文件都是我们在创建和配置项目时自动生成的,我们不需要去关心。

在进行版本控制的时候也不需要将这两个文件上传,因为其他去down你的项目后项目会自动生成,若每个人都上传这两个文件,可能会因为AS配置不同而产生不必要的冲 突。

2. app文件

项目中的代码,资源等内容几乎都是放在这个目录下的,我们的项目基本都是在这个目录下进行的。我介绍一下这个文件下的目录。

2.1 build

这个目录是编译时自动生成的,虽然东西很多很复杂,但是我们不需要去关心,在去做版本控制的时候不需要上传这个目录,否则既浪费时间又浪费空间。

2.2 libs

如果你的项目用到了第三方jar 包,需要把这些jar包都放在lib目录下,这些包会自动添加到构建路径中去。不过现在很多的jar以及库项目都可以在build.gradle中去引用,一句代码就可以把这个项目引用到项目中,不需要自己去下载。具体使用方法会在后续做介绍。

2.3 androidTest

此处是用来编写Android Test测试用例的,可以对项目进行一些自动化测试。如果你的项目不需要写测试代码,那么可以忽略不管。

2.4 Java

这个文件是存放我们所有Java代码的地方,你可以在这里建包和类文件

2.5 res

这个地方是存放项目所使用的资源文件的,比如图片,页面布局,字符串等。与Eclipse中的res布局基本相同,只是drawable-hdpi都改成了mipmap-hdpi。在AS中drawable是存放图片的,我个人认为是存放XML图片文件的,mipmap文件下存放不同分辨率的图片。如果美工只给我们一张图时,就把它放在mipmap-xxhdpi下就好了

layout文件是存放页面布局xml文件的。

values下存放的是字符窜文件,尺寸文件,颜色文件,你可以打开看一下,里面都会自动生成一些,你一看就会明白。

其实res可以存放更多的文件,比如动画文件anim。功能还是很多的。

2.6 AndroidManifest.xml

这个是你整个Android项目中的配置文件,在程序中定义的四大组件(Activity,Broadcast,Service,ContentProvider)都需要在这个文件中进行注册,还可以为应用程序添加权限声明。很多新手都会忘记在这里注册自己写的Activity文件。

2.7 test

这个目录是编写测试单元测试用例的,是对项目进行自动化测试的另一种方式。

2.8 .gitgnore

这个文件用于将app模块内的指定的目录或文件排除在版本控制之外的,比如刚刚我们说的build文件就可以把这个目录写进去。

2.9 app.iml

IntelliJ IDEA项目自动生成的文件,我们不需要去关心或修改这个文件中的内容,也不需要上传。

2.10 build.gradle

这是app模块的gradle构建脚本,牵涉到很多的配置,你打开之后,如果你英文没问题的,有一定的Java基础的话应该会明白。我只总结 一下dependcies闭包。

compile fileTree这行就是一个本地依赖声明,它表示将整个libs目录下所有.jar后缀的文件都添加到项目的构建路径中。

compile 'com.android.support:appcompat-v7:24.2.1 是一个远程依赖库格式 其中com.android.support是域名部分,用于和其他公司的库做区分;appcompat-v7是组名称,用于和同一个公司的不同库做区分;24.2.1是版本号。Gradle在构建项目时会检测是否有这库的缓存,没有会自动下载。

如果要依赖第三方库,比如helper库项目,compile project(':helper')加入这句话就可以了

testCompile 这个是声明测试用例库的,我们暂时用不到,忽略即可。

2.11 proguard-rules.pro

这个文件用于指定项目代码的混淆原则,当我们去打包发布这个项目时,不想被别人反编译,通常会将代码进行混淆,从而让破解者难以阅读,一般我们的debug版本是不去混淆的。区别是否加混淆是在build.gradle文件中去配置的,buildtype闭包中的debug和release子闭包中的minifyEnabled属性,true为混淆,false为不加混淆。

3. build

这个目录下的文件都是编译时自动生成的文件,不需要去关心,也没必要上传到版本控制中。

4. gradle

这个目录下包含了gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle提前下载好,而是会自动根据本地的缓存情况决定是否从网络下载gradle。Android Studio默认没有启用graldle wrapper的方式,如果需要打开,可以点击Android Studio 导航栏-》File-Settings-Build,Execution,Deployment-Gradle,进行配置修改。

5. .gitignore

这个文件与app下的.gitignore一样用来将指定的目录或文件排除在版本控制之外的。

6 build.gradle

这个文件是项目全局的gradle构建脚本,一般上这个文件是不需要修改的,除非去修改gradle的版本号,或者说你所引用的开源项目不在jcenter()代码托管库中。

7. gradle.properties

这个文件是全局的gradle配置文件,在这里配置的属性将会影响项目中所有的gradle编译脚本。

8.gradlew和gradlew.bat

这两个文件是用来在命令行界面中执行gradle命令的,其中gradlew是在Linux或Mac系统中使用的,gradlew.bat是在Windows系统中使用的。不过很少用到。至少我做了这么几个项目,都没用到过。

9 .iml文件

这个文件是自动生成的,用于表示这是一个IntelliJ IDEA 项目的,我们不需要去做任何修改,也不需要上传到版本控制中。

10 local.properties

这个文件是用于指定本机中的Android SDK路径的,通常是自动生成的,我们一般不做修改,除非你本机中的Android SDK位置发生了变化,修改成最新地址就好了。

11 settings.gradle

这个文件用于指定项目中所有引入的模块,一般简单的项目,我们只引用app模块,这种引入通常都是自动完成的,除非你引入了第三方库项目,一定要检查这个文件,如果没有自动引入,你可以手动引入。

终于介绍完了,看了这篇博客,相信你对Android Stuio有了全面的认识和理解,之前我们做项目都用的是Eclipse,现在AS已经很稳定了,建议换一下开发环境,一来是Google已经放弃更新Eclipse中的插件,而来Android Studio 是为了Android而开发的一款软件,功能更强大,操作更方便,集成更好。不要怕麻烦,害怕去接触一个新的开发环境。

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. 一款常用的 Squid 日志分析工具
  3. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  4. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  5. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  6. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  7. Android中MediaMuxer和MediaCodec用例 - audio+video
  8. Android(安卓)adt v22.6.2 自动创建 appcompat_v7 解决方法,最低
  9. 关于Android的面试题目汇总

随机推荐

  1. Android与IOS异同点对比(1)------ 显示
  2. android前端怎样php后台交互(基础篇)
  3. android 事件分发机制详细解析
  4. Android 事件处理
  5. Android手机添加根证书
  6. Android状态check、focused、pressed、se
  7. Android将允许纯C/C++开发应用(上)
  8. 【译】Android(安卓)Bluetooth
  9. ANDRIOD学习笔记之nand、root以及主要调
  10. 去除启动edittext时候默认的焦点