韩老师安卓笔记

# Android教程
这是一个基于Android平台开发的基础案例集。旨在用于给初学者快速了解Android平台的开发。


开发工具和平台


* Android Studio 2.0以上
* java语言
* android sdk
* gradle 2.0以上
* git
* github


## 问答


#### 案例集面向谁?
主要是面对高校以及一些对Android开发零基础的人群。


## 目录
1. LayoutDemo 关于android中布局相关案例集,包括:线性布局,表格布局,相对布局,绝对布局以及Frame布局
2. ComponentUI 关于android中核心控件以及控件事件处理的相关案例集。


## 开发者


* zzxb


## 版本
V 1.0.0


## 核心知识点


#### 学习前准备
1.[下载android studio IDE](http://www.android-studio.org/index.php/download/androidstudio-download-baidudisk/)
2.熟悉最基本的面向对象语言开发JAVA
3.学习android开发的知识体系,如下图




#### android studio 开发工具的安装
参考[安装与配置](http://stormzhang.com/devtools/2014/11/25/android-studio-tutorial1/)


#### 关于Gradle知识的了解
在首次安装Android Studio或首次创建Android工程时,会自动下载一个软件,你会发现很慢,甚至你会认为软件处于假死状态,请注意,不要强制关闭软件,因为这样会导致日后工程不能使用等问题。那么,到底是自动下载什么呢?为什么这么慢呢?


1.首先自动下载的是一个自动化构建的工具,它叫Gradle,与[Maven](https://github.com/zzxb/tec-docs/blob/master/Maven_install.md)是一样的功能。


2.下载慢是因为Gradle这个软件在Google端,需要科学上网才能提高或者顺利下载。建议大家,在学习android的时候一定要学会科学上网方式。


那么,到底什么是Gradle?


Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。


Android Studio除了要下载Gradle,还需要下载一个插件[gradle-plugin](https://developer.android.com/studio/releases/gradle-plugin.html),它是后期在Android Studio编译打包代码最重要的插件.


###### 注意:初学者首次使用Android Studio时,很多不能正常运行的工程大部分都是由于Gradle和Gradle-plugin下载不完整导致。


#### Android Studio的使用
1.首页介绍,如下图:






2.新建工程,已在安装Android Studio中介绍了。


3.打开已存在的工程。如下图:






4.进入主界面,各Bar介绍






5.菜单栏,如下图:






6.工程项目透视图有多种,常用两种,如下图:


 


7.代码编辑区,如下图:






8.用于观察后台日志或监控程序执行过程以及性能的监控控制台,如下图:






9.对Gradle自动构建手动的操作,使用Gradle生命周期控制台,如下图:






###### 以上就是对于Android Studio IDE界面的介绍,下面我们来看看,基于Android Studio的目录结构。
首先,Android Studio中没有像Eclipse或MyEclipse中WorkSpace(工作空间)的概念,只有工程或项目的概念,在Android Studio中的工程包含多个Moudle(模块).每个模块都可以独立运行或被引用。Android Studio强烈建议一个工程或项目多Moudle(模块)的设计,这样更加的便于维护和开发。


那么,我们来看一下目录结构,以及它们的作用。


1.我们再来回顾一下Android工程透视图,如下图:






app模块是我们关注的重点


2.mainifests目录下mainifest.xml,如下图:






该文件是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试),同时用于控制Android应用的名称、图标、访问权限等整体属性。


3.java目录是源代码目录,如下图:






4.res目录是所有android模块下所有资源文件的集合,比如:layout布局xml配置文件,图片资源文件集合,资源信息或国际化配置信息文件。






那么,我们逐个看一下各个子目录作用以及文件。


###### drawable目录,将图片等资源放在drawable-hdip中,将一些和XML文件相关的内容(图片选择器、文字颜色选择器、自定义形状等)放在drawable中。




###### layout目录,放置所有界面的布局xml文件。




###### 具体布局样例,如图:




###### mipmap目录,用于存放原生图片(图ic_launcher.png),缩放上有性能优化;




###### values目录,讲所有字符串资源文件,颜色等资源文件




###### strings.xml 字符串资源文件




###### colors.xml 颜色资源文件




###### dimens.xml 颜色资源文件




5.Gradle Script目录,关于所有Gradle的配置文件。






###### build.gradle(project)
设置整个工程的gradle配置文件


###### build.gradle(Module)
设置工程中某个模块的gradle配置文件,这个文件是我们关注的重点,尤其是当我们引入第三方类库时,要在这个文件中配置。如下图:






###### gradle-wrapper.properties
配置gradle的基本信息,例如:安装目录等信息。一般,我们很少修改。


###### gradle.properties
配置gradle编译运行以及性能的配置文件


###### local.properties
配置android sdk目录位置


#### 关于android运行
对于android程序运行,目前有两种方式:虚拟机和真机运行


虚拟机,这种方式可以在android studio中配置,也可以直接使用第三方虚拟机,比如:[genymotion](https://www.genymotion.com/)和[海马玩](http://droid4x.haimawan.com/)等.介于genymotion访问速度非常慢的原因,大家也可以使用海马玩。第三方虚拟机的方式不需要配置安装直接运行,android studio会以真机运行方式执行安装和运行。


真机运行,这种方式用USB线连接电脑的方式直接安装运行。


##### 我建议使用这种方式,因为真机运行可以更准确的测试程序兼容性、性能等情况。


###### 推荐一个基于chrome的第三方插件-Vysor,这是一个可以将真机屏幕投射到电脑上的插件,可以用于演示项目。


#### 1. LayoutDemo之android布局


##### 有哪些布局类型?
Android系统中为我们提供的五大布局:LinearLayout(线性布局)、FrameLayout(单帧布局)、AbsoluteLayout(绝对布局)、TablelLayout(表格布局)、RelativeLayout(相对布局)。其中最常用的的是LinearLayout、TablelLayout和RelativeLayout。这些布局都可以嵌套使用。


##### LinearLayout(线性布局)
线性布局是按照水平或垂直的顺序将子元素(可以是控件或布局)依次按照顺序排列,每一个元素都位于前面一个元素之后。线性布局分为两种:水平方向和垂直方向的布局。分别通过属性android:orientation="vertical" 和 android:orientation="horizontal"来设置。


案例代码分析:


```xml
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center_vertical|center_horizontal"
    tools:context="zzxb.me.layoutdemo.MainActivity">


   

你可能感兴趣的:(android)