使用Android Studio构建Hello World工程

这是谷歌公司为安卓开发制造的编辑器,功能太强大了,太复杂了,乍一看去让人眼花缭乱,我这人又喜欢简洁的东西,一时间还真是头大。
其实我也不知道为啥要接触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开发的启蒙吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,757评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,478评论 1 289
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,540评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,593评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,903评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,329评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,659评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,383评论 0 195
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,055评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,337评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,864评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,227评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,820评论 3 231
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,999评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,750评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,365评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,260评论 2 258

推荐阅读更多精彩内容