第二行代码学习笔记之第一章

第二行代码学习笔记之第一章

写在前面的话

最近买入了郭霖大神的第二行代码,准备系统的梳理一下自己的Android知识体系。因为之前都是项目中用到什么就学什么,比较分散,学的东西也是零散的。希望通过这次学习能够将自己之前的知识串联起来,形成自己的一个知识体系。计划写这一个该书笔记的系列博客,一是为了督促自己每天抽出时间来学习,二也是为自己留一份资料,方便以后查阅复习。
既然决定写博客就要尽力坚持下去,而且保证质量,让博客不仅仅是书中内容的摘抄,而是尽可能的加入自己的理解,写好每一个书中的Demo。接下来进入正文:

第一章

概要

Android整体的介绍,开发环境的配置,Android Studio安装使用,Android Studio中项目结构, Android日志工具

1、Android简介

1 . 1、Android系统架构

Android系统架构分为四层:
(1) Linux内核层:
Android系统基于Linux内核。
为Android硬件设备提供底层驱动,例如显示驱动,音频驱动,照相机驱动等;
(2)系统运行库层:
通过C/C++库为Android系统提供特性支持。例如:SQLite库提供数据库支持,Webkit库提供浏览器内核支持。
该层还有Android运行时库,提供核心库,允许用Java语言开发Android应用。Android运行时库还包含Dalvik虚拟机(5.0后是ART运行环境)。
(3)应用框架层:
提供各种API
(4)应用层:
手机中所有的应用程序,我们的开发就是在这一层

1 . 2、Android版本

Android至今为止已经发布到7.1版本,对应API版本为25。通常开发最低版本为4.0,对应API为15。

1 . 3、Android应用开发特色

Android系统为我们提供了那些东西,用来开发。
(1) 四大组件(待详细补充)
Activity(活动), Service(服务), BroadCast Receiver(广播接收者), Content Provider(内容提供者)

(2)丰富的系统控件

(3)SQLite数据库

(4)强大的多媒体
例如 音乐,视频,照相,录音,闹铃等

(5)地理位置定位

2、开发环境搭建

2 . 1 需要的工具

JDK:Java语言的软件开发工具包(包含Java的运行环境,工具集合,基础类库等内容)

Android SDK:Android开发工具包

Android Studio:Android编译器

3、创建第一个Android项目

3 . 1 项目目录结构解析

项目目录结构

(1) .gradle和.idea
放置Android Studio自动生成的一些文件。
(2) app
项目中的代码,资源几乎都在这个目录下。
(3) build
包含项目编译时自动生成的文件
(4) gradle( 可能能解决长时间build gradle问题)
包含gradle wrapper的配置文件
使用gradle wrapper不需要提前将gradle下好,Android Studio会自动根据缓存情况决定是否需要联网下载。默认不启用gradle wrapper,可以通过File ——> Setting ——> Build , Execution , Deployment ——>Gradle进行配置更改,打开gradle wrapper。
(5) .gitignore
指定版本控制忽视文件
(6) build.gradle
项目全局的gradle构建脚本
(7) gradle.properties
全局的gradle配置文件,这里配置的属性影响项目中所有的gradle编译脚本
(8) gradlew和gradlew.bat
在命令行界面执行gradle命令
gradlew Linux或Mac系统中使用
gradlew.bat Windows系统中使用
(9) xxx.iml
所有IntelliJ IDEA项目中都会自动生成的文件,用来标识这是一个IntelliJ.IDEA项目。( Android Studio是基于 IntelliJ.IDEA开发的)
(10) local.properties
指定本机中SDK路径,通常自动生成
(11)setting.gradle
指定项目中所有引入的模块

3 . 2 app目录下内容解析

app目录结构

(1) build
编译时自动生成的文件
(2) libs
放置第三方jar包
(3) androidTest
编写Android Test测试用例,项目自动化测试的一种方式
(4) java
放置所有Java代码
(5) res
项目资源目录
(6) AndroidManifest.xml
项目配置文件
(7) test
编写Unit Test测试用例,项目自动化测试的另一种方式
(8) .gitignore
控制版本忽略文件
(9) app.iml
IntellJ自动生成的文件
(10) build.gradle
app模块的gradle构建脚本
(11) proguard-rules.pro
指定项目代码的混淆规则

3 . 3 详解build.gradle文件

Android Studio是采用Gradle构建项目的,Gradle是一个非常先进的项目构建工具。
最外层builde.gradle文件

buikd.gradle文件

(1) repositories闭包
jcenter():代码托管仓库,很多Android开源项目将代码托管到jcenter,声明这行配置后,可以方便的引用开源项目。
(2) dependencies闭包
使用classpath声明了一个Gradle插件。使用这个插件来让Gradle构建Android项目,因为Gradle并不是专门为构建Android项目来开发的,Java,C++等项目也可以用Gradle来构建。
app目录下的build.gradle文件

build.gradle文件

(1) 第一行应用了一个插件
一般有两种值可选:
com.android.application一个应用程序模块
com.android.library表示这是一个库模块
(2) android闭包
配置项目的各种属性
compileSdkVersion:用于指定项目的编译版本
buildToolsVersion:用于指定项目构建工具版本
(3) defaultConfig闭包
applicationId:指定项目包名
minSdkVersion:最低兼容版本
targetSdkVersion:表示已经在该目标版本做过充分的测试,系统会为你启用该版本最新的功能和特性
versionCode:项目版本号
versionName:项目版本名
(4) buildTypes闭包
一般有两个子闭包debug和release,通过Android Studio直接运行项目生成的都是测试版安装文件
debug:生成测试版安装文件的配置,可以不写
release:生成正式版安装文件的配置
minifyEnabled:代码混淆
ProguardFiles:指定混淆时使用的规则文件
(5) dependencies :
指定当前项目的所有依赖关系。一共有三种依赖方式本地依赖,远程依赖,库依赖
compile fileTree:本地依赖声明,将libs下所有jar.后缀文件都添加到项目的构建路径中
compile com.android.support:appcompat-v7:24.2.1:远程依赖声明com.android.support是域名部分,与其他公司的库做区分。appcompat-v7是组名称,与同公司不同库做区分。24.2.1是版本号与同一个库不同版本做区分。
Gradle构建项目时会首先检查本地是否已经有这个库的缓存,如果没有会自动联网去下载,然后添加到项目的构建路径当中。

注意:
曾经遇到过项目在Android5.0以下设备中不能运行的问题,后来是在defaultConfig中加入: multiDexEnabled true就可以了。(貌似是65K问题,网上也没有合适的答案,不过目前能解决这个问题就好啦)

4、Android日志工具——Log

4 . 1 为什么用Log不用System.out

Log可以打印时间,可以添加过滤器,日志有级别区分
Log级别:
Log.v() verbose 所有信息,较为琐碎
Log.d() debug 调试信息
Log.i() info 较为重要的信息
Log.w() warning 警告信息
Log.e() error 错误信息
Log 的特性是为了让开发者能够快速锁定自己所需要的日志信息

5、Android Studio使用小技巧,快捷键

5 . 1 快速生成Log方法

直接输入 logv 按 Tab 键快速生成 Log.v() 方法。同理生成 Log.d()等方法。
直接输入 logt 按 Tab 键快速生成 “TAG”。

5 . 2 运行程序快捷键

Shift + F10

猜你喜欢

转载自blog.csdn.net/Android_03/article/details/54865533