一、Android入门前篇

Android入门前篇

Android开发相关工具

  • 开发集成环境
    • Android Studio
      Android Studio,以下简称as.as 是Google官方出品用于开发Android 应用的集成开发环境。as基于 InteliJ IDEA。根据维基百科所描述,IntelliJ IDEA 是当前Java开发效率最快的IDE工具.基于InteliJ IDEA的as相比Eclipse开发起来,确实要舒服很多。Android Studio提以下功能
      • 基础的编码功能.
      • 构建产生多种Apk.例如可以同时构建调试Apk和已签名Apk
      • 众多的代码模版,可以让你快速编写代码,省去编写规范化代码的时间,例如Getter和Setter.
      • 强大的布局图形化编辑器,支持多种屏幕同时预览.
      • 支持Gradle构建系统、内置lint工具.下面将会介绍。
      • 混淆、应用签名功能
      • 内置 Google Cloud Platform.更易于集成Google Cloud Platform.
    • Eclipse
      跨平台开源集成开发环境,安装Android Developer Tool(ADT)后可成为Android应用的集成开发环境。但是现在已渐渐被as代替,目前Google已停止更新,这里也不做过多描述。
  • 开发工具包

    • JDK
      Java Development Kit.Java开发工具,Android应用基于Java语言进行开发,所以Java DK是必不可少。
    • Android SDK
      Android SDK提供了众多丰富的开发工具,以下是具体分类:
      1. Android API。平台级API,由于Android系统是持续不断更新的,所以平台API也是不断更新的。
      2. SDK Tool。Android虚拟机、开发者工具例如管理虚拟机、项目工程、sdk 管理器等、调试工具 例如 adb连接桥。构建工具,例如 prguard混淆工具、图片工具 draw 9-patch.等。
      3. Platform Tool。平台级工具,也是会随着不同的Android系统版本更新,平台级的工具有Logcat 等.
  • 其他重要工具

    • Gradle
      Gradle是基于Apache Ant和Apache Maven的项目自动化构建工具.Apache Ant和Maven亦是构建工具。Gradle区别于上面两种构建构建工具,是因为其是基于Groov的特定领域语言来声明项目配置,而非传统的XML。Gradle对于依赖的管理十分强大。
    • Lint
      Lint是现在十分常用的静态程序分析工具,可以静态检查你编写的Android源代码是否存在错误

一个简单的Android工程

我们看看Android常见工程的文件(夹)结构和相应的作用
一、Android入门前篇_第1张图片

详细描述查看下面列表:

目录/文件 说明 描述
MyFirstApp 工程根目录文件夹 该工程的所有文件均在该文件夹下面
/.idea IDEA开发环境配置文件夹 上面我们说过android studio 是基于IntelliJ IDEA的,所以这里有IDEA环境配置文件夹不足为奇。
../app/ Phone Module模块 .在Android Studio有Module模块这样一个概念.模块中包含了源码、资源文件、构建文件等文件,所有的模块均放置在工程根目录下面。
../app/build/ 构建根文件夹 构建完毕的android可运行程序-apk.就是放在这个文件夹的output文件夹里面。还有混淆后的mapping文件均放置在文件夹内。
../app/libs/ 第三方依赖库文件夹 例如我们需要使用一些第三方功能,例如地图功能,那么在这个文件夹我们将会放置地图的jar包或者.so包.
../app/src/ 源代码文件夹. 我们编写的所有源代码都放置在这个文件夹里面。包括.java源代码.由于源码区十分重要,下面会重点介绍源码区
../main/Java/ Java源码区 我们编写的所有Java编码都存放在该区域。例如图中的MainActivity就是一个Java 类源码。
../main/res/ Android资源区 在Android应用资源是十分重要的。我们详细介绍下main/res/文件夹下面的子文件
../anim 动画效果资源文件夹
../color 颜色组文件夹
../drawable 位图资源文件夹
../mipmap 图标资源文件夹.
../layout 布局资源文件夹
../menu 菜单信息文件夹
../raw 二进制文件文件夹 其实在main/文件夹下可能会存在一个assets/文件夹,该文件夹存也可以存放了一些二进制文件,例如播放铃声使用的mp3文件。但是不同于assets/文件夹存放的资源的是,raw中的资源可以通过Android 引用资源的方式(R.xx)直接引用.
../values/ 存放键值对文件夹 在android中可以一定的格式引用键来获取相应的值。
../AndroidMainifest.xml Android清单列表文件 描述Android应用的核心文件,Android四大组件基本都需要在里面声明,除了广播之外,下面会简介的说明四大组件。


上面介绍了Android常见的工程目录,但是如果我们需要把Android工程转换成可以运行的apk文件,那么我们则需要把Android工程构建成apk文件。下面我们从构建的视角看Gradle构建系统下的Android工程目录(Android Studio建立的新工程默认通过Gradle构建),我们也是看看下面的文件(夹)结构和相应的作用:

一、Android入门前篇_第2张图片

具体说明查看下表:

目录/文件 说明
gradle/ gradle版本相关文件
build.gradle gradle构建文件,配置gradle构建系统的参数
gradle.properties gradle配置文件
gradlew unix unix gradle启动脚本
gradlew.bat windows gradle启动脚本
local.properties 本地相关的构建系统配置文件,例如配置sdk路径
hello_world.iml 模块描述文件
setting.gradle 包含了需要构建子工程/模块的文件


Android四大组件以及Intent

当我们对Android开发集成环境与Android 工程项目结构有一个初步的认知之后,我们看看Android基础的四大组件,以及他们在Android系统中相应的作用。

1、Activity。Activity承载界面元素的显示并与用户进行一些例如点击、滑动、长按的交互,这亦是四大组件中唯一一个用户可以直接感知的组件。
2. Service。当我们下载的同时去做其他时候的时候,Android应用可能开启了Service去运行一些需要长期运行的任务。例如这里开启了Service去运行下载任务。Service对于用户来说是不可感知的,它只会默默在后台做自己的事情,不会去干扰前台界面的运行。
3、Broadcast 当我们需要反馈下载进度的时候,Broadcast将下载进度反馈到通知栏,让你可以实时查看当前下载进度。

上面讲述的就是四大组件中的:Activity、Service、Broadcast.这是Android应用中十分常用的三个组件。另外还有一个组件-ContentProvider。Android通讯录数据存储其实是比较复杂的,因为一台手机可能存在多个帐号,一个帐号可能有多个联系人,多个联系人可能又同时存在多个号码、并且其他附加信息。但是Android系统把实现存储的细节给隐藏掉了,然后通过提供Content Provider.来提供对通讯录数据的访问。Content Provider把存储的细节隐藏起来,然后给我们提供一个访问通讯录联系人的简单接口,这样我们就可以不用理会后台存储实现细节而去简单的访问通讯录数据。当然这只是一方面,另一方面 Content Provider又提供了跨进程的数据共享。例如一些第三方的应用就是通过Content Provider实现对通讯录数据的操作。

好了,话说到这,我们来统一认识一下Android四大组件

  • Activity. 呈现界面、并且与用户进行交互的组件,是唯一一个用户可直接感知的组件。不用想在什么场景下我需要用到它,因为你会用到的。
  • Service .默默在后台执行任务的服务类组件。在一段时间内具有持续性,在做一些需要在后台运行,并且不影响到前台操作的时候,你会需要用到它的。
  • Broadcast.见名知意,广播,十分形象,用于各种场景的信息广播组件。当你需要在Android系统内通知谁谁,我做了什么的时候,就会需要用到它。Android系统内大量使用到了Broadcast组件,你电量掉了多少,你连上了谁家的wifi等等,Android系统这个大嘴巴都会把这些广播出去。当你从WIFI切换到了3G,一些细致的应用就可以根据网络切换的广播提示你是否需要继续下载你的小电影。
  • Content Provider.用于数据共享、并简化了数据访问操作的组件,你需要用到这个组件的场景可能比较少。你做了一个应用,然后你想把应用的数据分享给其他应用访问,而不让他们知道这些数据是怎么存储,存储在哪里,那你就可以使用它了。

通过上面的实例描述,我们已经对Android四大组件的作用以及使用场景有了一个初步的认识,然后,问题来了,我们怎么启动它们?点击手机桌面上的图标,桌面应用帮你发出了一个“启动某个应用程序”的讯号。这个讯号就是Intent.
Android系统中 Activity、Service、Broadcast均是通过Intent这个讯号进行动作传递的。我们需要一个Intent来启动Activity,一个Intent来启动一个Service,一个Intent来发送/接收广播数据。总而言之,Intent是这三个组件唯一的桥梁。
最后,谢谢阅读!

附录(查阅文章):
Android Manager Project
Android API Gudie Provider
Android Tools
Wiki IntelliJ_IDEA
Wiki Gradle

你可能感兴趣的:(android,idea,android应用)