这个界面很熟悉吧,没错这就是我们的android studio的欢迎界面,但是些都是些什么意思呢,嘿嘿,其实博主的英语也很菜的,比如有24个英文字母哈。
先从第一行开始解释:
第一行的就是创建一个新的android studio的项目(为什么是android studio的项目呢,因为我们之前都是用eclipse开发的嘛,里面的文件格式不太一样,所以就是创建android studio项目了。)
第二行的就是打开一个android studio的项目,比如同学从网上下了一个Demo(即例子)我们直接点第二个然后选择下的那个Demo就OK啦!
第三行的就是直接翻译的话就是”查看下版本控制”,看到后面那个小三角了么,点击下,就会出现,github,CVS,Git,Google Cloud,Mercurial,Subversion那么这些是什么呢,这些其实是一些”仓库”,它们可以帮我们保存代码,我们可以点击它们,按照固定的格式就可以打开我们的之前保存在这些”仓库”的代码,非常便捷!但是,放在上面的代码有些是开源的,所以重要的代码不要放上面哦~
第四行就是导入我们之前在eclipse中编写的项目。
第五行就是导入一个android样本。
既然我们是创建项目那我们就毫不犹豫的点第一个啦!
那么这个界面又是做什么的呢?
不要着急嘛,虽说博主的英语很渣,但是这点儿还是可以看的懂的。
标号为1的:我们要创建一个android项目,那么这个项目一定得有名字吧,没错,你猜对了,这个就是项目的名字,不信看英语,application name 即:应用程序的名字。
标号为2的;我们若是纯翻译的话就是,公司的名称,这个就相当于一个限定符,会加到包名里面去。
标号为3的:就是包名了。
标号为3的:就是这个项目在硬盘上的存储路径了,后面有三个点可以自己设置哦~
设置完后直接Next!
我们在手机上下载应用时是不是有的应用在下面声明,本应用只适于5.X.X以上适用,让当初没有钱买新手机的同学们拿着4.X.X多的系统干瞪眼对吧,以后这个系统适用版本同学你就可以制定啦,不过博主最近在看郭神(郭霖)的第一行代码知道,现在市场上最低的android版本为4.0的,所以自己制定版本虽好,但也要符合市场规律哦~
其他的选项是用来开发可穿戴设备,电视,汽车程序的,由于现在这几个领域在国内并没有普及,我们就先空着吧。接着点Next!
这个界面我们可以选择一种模板,但是由于我们是刚接触android嘛,所以复杂的我们也玩不转,所以就默认的就好,就是那个Empty Activity!继续点Next!
这里我们可以设置Activity类的名字,也可以设置布局的名字,由于我们没有什么特殊需要,默认就好,终于到头啦(因为Next已经不能点了嘛),点击finish稍等一会儿就好了!
当出现这个界面时便代表我们的项目创建成功了,但是要等待一下看见最底下的进度条了么,最好等进度条都完成了,我们再做其他的操作,毕竟现在android studio的编译速度还是很慢的,比如有的大神说,自从用了android studio我便多了几次喝咖啡的时间,当然有android studio的插件可以提高android studio的编译速度的。
下面为了防止同学用的是iphone手机,我们还是来创建一个android模拟器吧,当然使用android手机的同学可以略过哦~
请同学们在第二行菜单中找一下图示那个红色箭头所指的图标,然后点击它!
点击中间那个create:
这里我们在phone的选项中,选择一下我们模拟器的大小,这个不会影响后边的哦,同学们高兴就好,想要大的就大的,想要小的就要小的,比如博主特别羡慕有Nexus 6P的人,所以就给自己选了个6P。
选择好后,点击Next就好了。
接下来就到了为我们的模拟器选择系统的时候了,但是博主只下了7.0的所以博主就为我的模拟器装7.0的系统啦,同学们要注意右边有没有红色的提示哦,比如这个提示就是博主没有为模拟器选择内存大小,当然还会有其他的提示的,同学们只要点击后,根据提示一步步操作就好啦,没有什么难度的,毕竟我们都把android的环境搭建成功了呢,选择好后,直接点Next!
到这个界面我们的模拟器就要创建成功了,这一界面没什么说的,无非就是为我们的模拟器起个名字啦,再或者设置下横屏竖屏啦,同学开心就好,想怎么设怎么设,想怎么起名就怎么起名,高兴就好!哈哈!
好了,到这一界面我们的模拟器就是创建完成了,现在我们启动它吧,看到模拟器后面那个绿色的三角了么,没错,点击它,我们的模拟器就启动成功啦!下面上效果图:
模拟器正在开机……
OK,模拟器开启成功!
现在我们项目有了,模拟器也有了,那我们直接看看执行结果吧,可能有的同学会疑惑,代码还没写呢,难道能有结果?哈哈,我们先执行看看嘛,若是没有结果,我们再改也不迟!
还是第二行菜单,不过这次我们要点的是红色箭头所指的那个绿色的三角了,点击它!
在这里我们选择我们的模拟器就好啦!(用真机的小伙伴请选择自己的手机哦~,如果是真机的话,那么这里就是自己手机的型号了!)然后点击OK!
等待android studio编译成功,和下载到模拟器(或真机)成功……
程序下载完成后就是这个样子啦,哈哈,神奇吧,我们没有写一句代码,下载到模拟器(或真机),Hello World!竟然出来了,究竟是为什么呢,现在让我们一块儿来看一下吧!
在我们项目的最左边有一个Project点击它!
我们会看到这个界面,任何一个新建的项目都会默认使用android模式的项目结构,但这并不是项目的真实结构,这个是被android studio转换过的,这种项目结构简单明了,适合快速开发,但是对于我们这些菜鸟小白来说,理解这些并不容易啊,谁让我们是小白呢?当然啦,我们是可以更换项目结构模式的,点击android区域就可以切换啦!
这里我们把项目结构模式切换成Project,这就是项目真实的目录结构了。
哎,对于我们这些刚接触android的菜鸟小白来讲还是不懂嘛,没关系,博主还是会一点儿的,我来给同学们一一讲解下吧!
.gradle 和 .idea:这两个目录放置的都是 android studio自动生成的一些文件,我们就不用关心啦,当然最主要的是不用我们去手动编辑。
app:这个目录中放置的是项目中的代码,资源等内容,我们后面的开发工作也基本都是在这个目录下进行的,待会儿还会对或者目录单独进行讲解说明的。
build:这个目录也不需要过多的关心,它主要包含了一些在编译时自动生成的文件。
gradle:这个目录包含了gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradl下载好,而是会自动根据本地的缓存情况决定是否需要联网下载gradle。android studio默认没有启用gradle wrapper的方式,如果需要打开,可以点击android studio导航栏->File->Settings->Build,Execution,Deployment->Gradle,进行配置更改。
.gitignore:这个文件是用来将制定的目录或文件排除在版本控制之外的。关于版本控制我们后边的博客在说哈!
build.gradle:这是项目全局的gradle构建脚本,通常这个文件中的内容是不需要修改的。一会儿我们再详细分析gradle构建脚本中的具体内容。
gradle.properties:这个文件是全局的gradle的配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本。
gradlew和gradlew.bat:这两个文件是用来在命令行界面中执行gradle命令的,其中gradlew是在Linux或Mac系统中使用的,gradlew.bat是在Windows系统使用的。
Applicationtest.iml(注意名字是和项目名称一样的,这个并不是死的):iml文件是所有IntelliJ IDEA 项目都会自动生成的一个文件(android studio 是基于IntelliJ IDEA开发的),用于标识这是一个IntelliJ IDEA项目,我们并不需要修改这个文件中的任何内容。
local.properties:这个文件用于指定本机中的,android SDK路径,通常内容是自动生成的,我们并不需要修改。但是当你本机中的android SDK位置发生变化了,那么就将这个文件中的路径改成新的位置即可。
settings.gradle:这个文件用于指定项目中所有引入的模块,由于我们的这个项目只有一个模块,因此该文件也就只引入了app这一个模块。通常情况下模块的引入都是自动完成的,需要我们手动改这个文件的场景可能比较少。
现在整个项目的外层目录都介绍完了,但是你可能已经发现了,除了app目录外,其他大多数的文件和目录都是自动生成的,需要我们改动的很少,所以……app目录下的内容才是我们的工作重点嘛,展开app目录如下:
build:整个目录和外层的build目录类似,主要也是包含了一些在编译时自动生成的文件,不过它里面的内容会更多更复杂,我们不需要过多的关心。
libs: 如果我们的项目中使用到了第三方jar包,我们就需要把这些jar包都放在libs目录下了,放在整个目录下的jar包都会被自动添加到构建路径里去。
androidTest: 此处时用来编写android Test测试用例的,可以对项目进行一些自动化测试。
java: 这个肯定是用来放置我们所有java代码的地方,展开该目录,就会看到我们刚才创建的MainActivity文件就在里面。(未必是MainActivity,因为这个名字是我们自己起的嘛)。
res:整个目录下的内容就有点多了,简单说的话,就是我们在项目中使用到的图片,布局,字符串,等资源都要存放在整个目录下。当然这个目录下还有很多子目录,图片放在drawable目录下,布局放在layout目录下,字符串放在values目录下,所以我们并不用担心res目录会乱。
AndroidManifest.xml:这个是我们整个android项目的配置文件,在程序中定义的所有四大组件都需要在这个文件中注册,另外还可以在这个文件中给应用程序添加权限声明,由于这个文件我们将来会经常用到,所以以后再做详细介绍啦!
test:此处是用来编写Unit Test测试用例的,是对项目进行自动测试的另一种方式。
.gitignore:这个文件用于将app模块内的指定的目录或文件排除再版本控制之外,作用和外层的.gitignore文件类似。
app.iml:IntelliJ IDEA项目自动生成的文件,我们不需要关心和修改这个文件中的内容。
build.gradle:这是app模块的gradle构建脚本,这个文件中会指定很多项目构建相关的配置,我们一会儿会详细分析gradle构建脚本中的具体内容。
proguard-rules.pro:这个文件用于指定项目代码的混淆规则,当代码开发完成后打成安装包文件,如果不希望代码被别人破解,通常会将代码进行混淆,从而让破解者难以阅读!
OK,现在我们已经把所有的目录大致的了解了一下,理解不了没关系,我们后面还有很长的路呢,万里长征第二步,还有9000多步呢,待我们走完后,肯定会比现在深刻的,现在我们来看看我们的Hello World到底是怎么出来的吧!
注:以上所有的目录解释,均来自于郭霖的第一行代码第二版。
我们刚才在分析app目录中的AndroidManifest.xml,文件时说过,这个是我们整个android项目的配置文件,在程序中定义的所有四大组件都需要在这个文件中注册,换种说法就是,我们若是不在该文件中配置,则我们的android项目无法运行。所以我们在看”Hello World”怎么出来的时候,我们的第一步则是打开该文件找到如下代码:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这段代码表示对MainActivity活动进行注册,下面和包含的代码则代表将该活动设置为主活动页,那么什么是活动呢?活动android程序中的门面,android程序就是有各种活动组成的东西,只要你在android应用中看得到的部分其实都是活动,因此在刚才的模拟器中看到的Hello World!其实就是在MainActivity这个活动当中,既然找到了,那我们就去相应的java文件夹中去找它吧!打开MainActivity.java代码如下:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
在这段代码中,我们可以看到,MainActivity 继承了AppCompatActivity,这是一种向下兼容的Activity,然后重写了onCreate方法,这个方法是什么呢,下篇博客我会讲解下activity的生命周期,然后同学们就会知道onCreate是干什么的啦,现在我们主要先看下Hello World这个字符串是怎么出来的哈,然后调用了setContentView方法绑定了activity_main布局,那么Hello World字符串会不会在这个布局中呢,没事儿,我们一步步找嘛,总之MainActivity中已经没什么可看的了,我们去布局中找吧,还记得布局在哪儿么?我们一步一步来哈,不着急打开:app->src->main->res->layout,看看有没有activity_main,哈哈,它果然在这儿,但是打开后它是这个样子的:
这可怎么办,还是看不到Hello World!嘿嘿!看到上图那两个箭头了么?当前我们在1,界面,我们点2试试,哈哈,这次是不是又看到代码了,我把代码贴出来哈:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.llx.lenovo.applicationtest.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</RelativeLayout>
嘿嘿!布局先不用管哈,我们的目的是找Hello World嘛~,看下面那个控件,对就那个TextView的,它里面是不是有一个这样的属性:android:text=……,看内容,哈哈,“Hello World!”终于找到它了,现在同学明白为什么我们一句代码都不用敲,就建个项目再建了虚拟机然后把程序下载进去,Hello World 就出来了吧!
项目下的build.gradle详解:
这个里面只需要改classpath就好了,比如你的AS版本为2.2.3那么就改成2.2.3,这个可以向下兼容但是不可以向上兼容的,每个人的gradle不一样,所以,我们从github上下载下来的源码通常是需要改这里的。
app目录下的build.gradle详解:
先来解释1吧:
指的是当前编译API的版本,然后下面对应的就是编译工具了。github下载下来源码的话,有时会修改。
2:
就是当前项目的包名了,没什么说的。
3:
min…就是适配的最低API;target……就是适配的最高API了。
4:
当创建一个项目的时候,会默认的添加V7包的,若是我们要添加一个V4包的话,那么版本应该和V7的一样!
忘解释了,尴尬尴尬,原因是一个初学Android的同学问我,我才想起我有一篇基础的博客,过来瞅,发现少了点儿东西,这才补上。
罪过…罪过……
OK,这篇博客就到这里了,同学们若是有什么不懂的,可以在下面评论区中留言哈,我看到后会回的,另外对android有兴趣的同学可以加我们刘博主的群:555974449,群里面有很多大神的,而且很热情,很热心的,大家不懂的可以问的。
注:以上内容有借鉴郭霖所著的第一行代码第二版。