这是谷歌公司为安卓开发制造的编辑器,功能太强大了,太复杂了,乍一看去让人眼花缭乱,我这人又喜欢简洁的东西,一时间还真是头大。
其实我也不知道为啥要接触Android开发,因为我原本是一个iOS开发。大概是因为我缺钱吧,那就从头开始吧,不过我学习的节奏和别人完全不同,我喜欢优哉游哉地学习,并且喜欢寻找自己不懂的点攻克,别人一般是看不懂的。
好现在进入正题。
这就是传说中的Android Studio了
大体上它的工程目录结构和XCode下的iOS工程目录结构类似。
res下面的全是资源文件,像什么图标,动画都在这里面放着,没错就是那个叫drawable和mimmap的文件目录。
这里面放的是预定义的常量,功能有点像宏,如下图所示:
都是xml文件形式存在的,用标签标记的存在。
这个layout目录存的是什么呢?
从名字就可以知道它存储的是布局,确切地来说是静态布局。类比一下的话,就好像是iOS中的故事板和xib文件一样。
好,到此为止,这就是res目录的梗概。
搞过iOS的同学都知道新建的工程中都有这3个目录,它们都是源码文件。只不过第一个目录下存的是真正的工程源码文件,众所周知Android是用Java开发的,所以里面存放的就都是.java的源文件。剩下的带有test字样的目录都是测试框架,这个不用太关心,反正都是人工测的。
这个文件叫清单文件,是配置整个工程用的,类似于iOS工程中的plist文件一样,没啥好说的。
现在我要建立一个页面,在安卓中页面的学名叫做Activity,这个在iOS中被称作controller,反正大同小异。
首先说一下思路吧。
Android需要一个Java源码的文件,其实这个就是Activity,一般情况下为了方便你还需要一个xml的布局文件,就是在我刚才说的那个layout目录下。接下来你需要把你写的这个Activity注册到工程中,说白了就是要让工程知道有这个Activity。
好,现在首先建立一个布局用的xml文件,如下图所示:
这个就是我建立的静态布局文件,里面几乎啥都没有。
第一行<?xml version="1.0" encoding="utf-8"?>是xml的序言,就是告诉解析器按照1.0版本进行解析,并且它的编码是utf-8的,对写代码来说没啥用。
下面那个标签是Android的相对布局控件,这个稍后再讲。
那么到目前为止,Android页面的静态布局就已经构建OK了。
此处应该有掌声。
这是我建立的Java源码文件,但是从工程的角度讲这是Activity。
没错这就是很朴素的Activity源码啥都没有。
像我这样搞过iOS开发的人会本能地问为啥没有生命周期呢,确实没有。
但是能调出来,不需要你自己手写!记住,是不需要你手写的!!!
你可以向上图这样通过菜单的方式也可以通过快捷键ctrl+O调出下面这个菜单
然后选择你想要的生命周期方法,就会出现像下图一样的结果。
由于布局xml文件和Activity一开始是没有任何关系的,所以你需要使用下面这个方法,把2者关联到一起。
如下图所示:
查询一下Android的API可以知道,既然说到这里就顺便说说如何用Android Studio查看Android的API吧。
其实Android Studio在查询API这方面做得没有XCode好,因为XCode有本地的官方文档查起来不费劲,但是Android Studio只能查看网页,我就不喜欢网页。
不过还是给个地址吧https://developer.android.com/reference/classes.html。
下面看看这里面有什么,咱随便找一个章节来看看。
这就是某一章节的组成结构了,这一点还是和iOS的API布局有点像的。
现在我们来看看Activity里面都有啥。
你要想看具体API部分就直接看summary部分,如下图所示:
其他的部分都是讲解这个类到底是个啥玩意。
再来看看与静态布局xml有关的官方文档吧,咱们看看LinearLayout吧。
你可以选择搜索如下图所示:
因为xml里面有很多xml标签,你需要知道xml标签和JavaAPI之间的对应关系。
如下图所示在XML attributes部分有它们之间对应关系。
这样你再见到xml标签的时候就不会抓不着头脑了。
不过这个是官方原版API不翻墙你连不上,所以你自己还要会翻墙哦。
好了,插入部分结束,刚刚说到把Activity的Java源码和xml相关联。
你需要在Android工程的清单文件AndroidManifest.xml中注册你写的这个Activity才行。
如下图所示:
intent-filter里面的并不是每个Activity必须的,不过它是告诉编译器这个Activity是作为第一个Activity存在的,就是应用一启动出现的那个页面。
写好以后就ctrl+R运行吧,如下图所示:
这个是选择模拟器种类或者真机的对话框,粉简单,就不解释了。
安卓中的模拟器叫做emulator。
最简单的画面如下图所示:
现在再从总体上看一下工程的目录如下图所示:
现在我要在页面上添加一个按钮。
我选择静态布局的xml来添加。
现在的这个是新的layout布局文件里面的代码
我添加了如下代码
意思是说我生成了个button,它的大小是根据内容确定的,它的标题叫做“这就是个按钮”,它的背景颜色是黄色,它处于父视图的中心。
现在让我们运行一下看看效果。
现在我要实现点击这个按钮跳转到另外一个Activity页面,现在我重复先前的步骤生成同样的静态布局xml和Activity文件。
同样我要在工程的清单文件AndroidManfest.xml中注册这个Activity如下图所示。
OK就是这样的。
为了区别方便起见我把secondactivity的颜色设置为蓝色如下所示:
现在我要为先前那个按钮添加事件了,这个实在第一个Activity中的Java源码中实现的,我直接上代码了。
由于我已经在静态布局文件里面创建了控件,所以我就不需要再在Java源码文件中再次创建控件了,所以这个时候可以通过给该控件赋予一个唯一标识,这样在Java中就可以直接通过该标识获取该控件了,这个有点像iOS中给视图加tag的做法。
如下图所示:
在Java中获取该控件如下图所示:
红色箭头处是添加监听的代码,红色方框处是监听的实现,从iOS角度讲就是action。
哦,还是看看secondactivity中的Java源码吧,很简单的,如下图所示:
只有箭头处是我手写的代码,主要是为了把xml布局文件和Java源码绑定。
好,现在运行程序,请看。
现在点击按钮
然后再按一下模拟器上的返回键
就又回来了。
那么好了,这篇博客就到此结束了,算是进入Android开发的启蒙吧。