教你开发Android

其实这个目录结构初次看还是挺让人心慌慌的。

Android 现在引入了一个构建系统叫做 Gradle ,你可以理解为一个C/C++里面的Makefile 或者是node里面的 gulp 。

Android Studio 里面是分模块进行开发的,一个 app 可以只有一个模块,也可以有多个模块组成(比如一些自己开发的库)。如果我们的应用足够简单的话,那么就只有一个模块, Android
Studio
 默认创建的模块就叫 app ,可以看见,文件夹旁边还有个小手机的标志,代表这是一个 Android
Application
 模块,而不是一个Android Library 或者是其他模块。

看看我们的代码应该放哪,我们把注意力集中在这个文件夹

src 是 source 的意思,也就是源码所在的目录,我们主要就是在这个文件夹里写东西。

Main在哪?

我们来看看,我们要的 Main 函数在哪里?

首先我们看 src/main 目录下的 AndroidManifest.xml 文件。

AndroidManifest 是描述App的一个最最重要的文件,一些内容的定义,主题的设置都在这里,如果熟悉 node 的朋友肯定知道 package.json ,一样一样的。

我们看到下图,在AndroidManifest中,出现的 MAIN 和 LAUNCHER 字眼,Activity 有了他们两个的描述,它就成了你点击app的icon启动的第一个 Activity

在 src/main/java 文件夹中,找到 MainActivity ,打开,看见其中有一个onCreate 的函数

顾名思义,这个函数是在这个 Activity 创建的时候调用的,它首先调用了下父类的onCreate方法(不可省略),然后调用了 setContentView 方法,这个方法是告诉Android系统:我用哪个布局文件去渲染这个 Activity ,好了,到这里一个入口的Activity 就创建好了。

注:在 Android 系统中, Activity 类的对象不是用来给开发者直接去 new的,它的生命周期 由系统直接管控 因为我们不参与控制 Activity 的生命周期,因此它在什么时候回调什么函数变得异常重要。学习编程最好的去处就是官方文档,如果想更加深入了解Android
Activity生命周期的童鞋,我这里推荐看下官方对它的描述 传送门: http://developer.android.com/training/basics/activity-lifecycle/index....

界面如何自定义?

接下来说说 Android 中的布局系统,众所周知, Android 一开始的设计就是为了相对布局而生的。它提供了许多强大的布局特性,我们先学习下 Android 中最常见的两种布局:

  1. 线性布局(LinearLayout)
  2. 相对布局(RelativeLayout)

线性布局就是子控件按顺序依次排列,线性布局可以设置方向,从上到下(vertical)或者从左到右(horizontal)。相对布局就更自由了,如果你增加一个子控件,不设置任何属性,则子空间的位置在容器的左上角(0,0)处。如果想改变位置,可以通过在容器中的位置(比如左上,右上,左下,右下,中间,左对齐垂直居中,右对齐垂直居中等等),或者和兄弟结点的对齐方式来决定控件的位置。

布局相关的参考可以看这个链接:http://developer.android.com/training/basics/firstapp/building-ui.html

如何和控件交互

在 Activity 中,和 xml 相关的绑定在 setContentView 这步就算完成了。Activity 在这之后会回调一个叫 onContentChanged 方法,在这个方法中,你可以使用类似如下代码:

TextView textView = findViewById(R.id.textview);

来获得对指定控件的引用,其中 R.id.textview 是你在 xml 中指定的android:id ,通常情况下,在一个 xml 文件中,同样的 id 只允许出现一次。

获取到对控件的引用,我们就能调用一些控件里的方法获取我们要的内容,或者设置我们要的内容,比如我这里引用了一个 TextView ,则可以如下:

textView.getText()

获取到 textView 里面的内容。

以上就是最基础的 UI 部分的入门讲解。接下去,我们可以看看要写的App的整个结构。

http://www.haoqijie.com/u/4256/book

http://www.haoqijie.com/u/4258/book

http://www.haoqijie.com/u/4261/book

http://www.haoqijie.com/u/4262/book

http://www.haoqijie.com/u/4263/book

http://www.haoqijie.com/u/4264/book

http://www.haoqijie.com/u/4265/book

http://www.haoqijie.com/u/4266/book

http://www.haoqijie.com/u/4267/book

http://www.haoqijie.com/u/4268/book

http://www.haoqijie.com/u/4269/book

http://www.haoqijie.com/u/4270/book

http://www.haoqijie.com/u/4271/book

http://www.haoqijie.com/u/4272/book

http://www.haoqijie.com/u/4273/book

http://www.haoqijie.com/u/4274/book

http://www.haoqijie.com/u/4275/book

http://www.haoqijie.com/u/4276/book

http://www.haoqijie.com/u/4277/book

http://www.haoqijie.com/u/4278/book

http://www.haoqijie.com/u/4279/book

http://www.haoqijie.com/u/4280/book

http://www.haoqijie.com/u/4281/book

http://www.haoqijie.com/u/4282/book

http://www.haoqijie.com/u/4283/book

http://www.haoqijie.com/u/4284/book

http://www.haoqijie.com/u/4285/book

http://www.haoqijie.com/u/4286/book

http://www.haoqijie.com/u/4287/book

http://www.haoqijie.com/u/4288/book

http://www.haoqijie.com/u/4289/book

http://www.haoqijie.com/u/4290/book

http://www.haoqijie.com/u/4291/book

http://www.haoqijie.com/u/4291/book

http://www.haoqijie.com/u/4292/book

http://www.haoqijie.com/u/4293/book

http://www.haoqijie.com/u/4293/book

http://www.haoqijie.com/u/4294/book

http://www.haoqijie.com/u/4295/book

http://www.haoqijie.com/u/4295/book

http://www.haoqijie.com/u/4296/book

http://www.haoqijie.com/u/4297/book

http://www.haoqijie.com/u/4298/book

http://www.haoqijie.com/u/4299/book

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-27 21:54:30

教你开发Android的相关文章

史无前例,详细视频讲解开发Android端APP开发!!

导读:本文记录了一个机友-小徐基于机智云APP开源框架,从搭建Java环境开始,教你下载JDk.下载AndroidStudio,到控制设备页面等,完成一款正式版安卓APP的开发过程.擅长硬件开发的小伙伴们,如果你想探索APP开发的奥秘,那就来看小徐分享的开发视频吧. 声明:           本人发视频是以个人分享精神.完全免费的心态发布的,这也是我个人生涯第一次录制视频并发布,课程好与坏咱们不谈,我尽最大的努力,把视频做好,把知识点传授给大家,但如果有用词不当,或讲错什么知识点,还请万分见谅

教你写Android网络框架之Http请求的分发与执行

前言 在<教你写Android网络框架>专栏的前两篇博客中,我们已经介绍了SimpleNet框架的基本结构,以及Request.Response.请求队列的实现,以及为什么要这么设计,这么设计的考虑是什么.前两篇博客中已经介绍了各个角色,今天我们就来剖析另外几个特别重要的角色,即NetworkExecutor.HttpStack以及ResponseDelivery,它们分别对应的功能是网络请求线程.Http执行器.Response分发,这三者是执行http请求和处理Response的核心. 我

教你写Android网络框架之Request、Response类与请求队列

转载请注明出处,本文来自[ Mr.Simple的博客 ]. 我正在参加博客之星,点击这里投我一票吧,谢谢~ 前言 在教你写Android网络框架之基本架构一文中我们已经介绍了SimpleNet网络框架的基本结构,今天我们就开始从代码的角度来开始切入该网络框架的实现,在剖析的同时我们会分析设计思路,以及为什么要这样做,这样做的好处是什么.这样我们不仅学到了如何实现网络框架,也会学到设计一个通用的框架应该有哪些考虑,这就扩展到框架设计的范畴,通过这个简单的实例希望能给新人一些帮助.当然这只是一家之言

哪位大兄弟有用 cMake 开发Android ndk的

一直用 Android studio 开发ndk,但是gradle支持的不是很好,只有experimental 版本支持 配置各种蛋疼.主要每次新建一个module都要修改配置半天.之前也看到过google 开发文档有提到 cmake 但是一直没用.哪位大兄弟用过,说下经验 哪位大兄弟有用 cMake 开发Android ndk的 >> android 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/android/1010000007205830/哪位

即刻开始使用Kotlin开发Android的12个原因(KAD 30)

作者:Antonio Leiva 时间:Jul, 11, 2017 原文链接:https://antonioleiva.com/reasons-kotlin-android/ 这组文章已到最后了,它们是非常实用的.今天我想谈谈为什么我认为学习Kotlin是非常有趣的. 虽然, Kotlin现在已是官方支持的开发Android APP的编程语言,而你仍可能觉得没有足够的理由进行改变.在这些年以来,Java已经证明其能力,为什么要改变? 这是我认为转换到Kotlin不是一个冒险的赌注,而是你可以做的

用C/C++开发android应用

在某些情况下,比如原来与很多c/c++的代码, 可能希望采用c/c++编写android应用程序.在这种情况下,一般使用NDK.但是由于android直提供了java接口,因此不能够直接调用android中的各种对象或者部件. 如何直接使用c/c++开发android应用? 可以使用cle和wrapandroid项目作为中间件. CLE项目提供了多种语言的通用接口,其中就包含对c/c++的支持. 本文简单介绍了如何使用CLE和wrapandroid编写GUI应用程序.CLE可以作为多种语言的通用

使用Kotlin开发Android

查看我的全部开源项目[开源实验室] 欢迎加入我的QQ群:[201055521],本博客客户端源码下载[请点击] 摘要 我首先声明我并没有使用Kotlin很长时间,我几乎是在学习的同时写了这些文章的.我并没有尝试任何其它的替 代语言,例如Go和Scala,所以如果你是真的考虑换一种开发语言的话,我建议你去搜索一下其他人对这些 语言的评价. 本文原创,转载请注明地址:http://blog.kymjs.com/ 正文 最近,新了解了一门编程语言,叫做Kotlin.Kotlin是Jetbrains公司

用Kotlin开发android平台语音识别,语义理解应用(olamisdk)

用Kotlin开发android平台语音识别,语义理解应用(olamisdk) http://blog.csdn.net/ls0609/article/details/75084994

用Kotlin开发Android应用(I):介绍

关于Kotlin,网上已有一些介绍的文章,包括Antonio Leiva的这组blog翻译稿.不过,我还是想跟进它们.翻译它们,以锻炼自己的英文翻译.各位高手发现问题,请及时“拍砖”. 原文题目:Kotlin for Android (I): Introduction(http://antonioleiva.com/kotlin-for-android-introduction/) 原文作者:Antonio Leiva(http://antonioleiva.com/about/) 原文发布:2