再学Android(安卓)Studio
虽然用了好长时间的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而开发的一款软件,功能更强大,操作更方便,集成更好。不要怕麻烦,害怕去接触一个新的开发环境。
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
- Android中MediaMuxer和MediaCodec用例 - audio+video
- Android(安卓)adt v22.6.2 自动创建 appcompat_v7 解决方法,最低
- 关于Android的面试题目汇总