第一章 开始启程——你的第一行Android代码
1.1 了解全貌——Android王国简介
1.1.1 Android系统结构
1.Linux内核层(各种驱动)
提供驱动:显示驱动、音频驱动、蓝牙驱动等
2.系统运行库层(各种管理器)
3.应用框架层(各种API)
提供各种API(Application Programming Interface,应用程序编程接口)
4.应用层(所有安装在手机上的应用程序)
1.1.2 Android已发布的版本
4.0以上 最新7.0
1.1.3 Android应用开发特色
1.四大组件(活动、服务、广播接收器、内容提供器)
2.丰富的系统控件(漂亮的界面)
3.SQLite数据库
4.强大的多媒体(音乐、视频、相机、闹钟等)
5.地理位置定位(GPS)
1.2 手把手带你搭建开发环境
1.2.1 工具
1.JDK (JDK是Java语言的软件开发工具包,包含了Java的运行环境、工具集合、基础类库等内容)
2.Android SDK(谷歌提供的Android开发工具包,通过它来使用Android相关的API)
3.Android Studio
1.2.2 搭建开发环境
Android Studio
各版本下载:http://www.android-studio.org/index.php/download/hisversion(要能上外网,比如谷歌))
教程:http://www.jianshu.com/p/a31bf4240aa8
https://www.cnblogs.com/kangjianwei101/p/5621238.html#dl(Android SDK Manager和AVD Manager使用 )
1.3 创建你的第一个Android项目
1.3.4 分析你的第一个Android程序
模式:Project
外层目录:
1..gradle和.idea(自动生成的文件,不用管)
2.build(编译时自动生成的文件,不用管)
3.app(项目的代码、资源基本都在这里,开发工作基本在这里进行)
4.gradle(gradle wrapper的配置文件)
5..gitignore(将指定目录或文件排除在版本控制之外)
6.build.gradle(项目全局的gradle构建脚本,通常不需要修改)
7.gradle.propeties(全局的gradle配置文件)
8.gradlew和gradlew.bat(用来在命令行界面中执行gradle命令,其中gradlew是在Linux和Mac系统中使用的,gradlew.bat是在Windows中使用的)
9.HelloWorld.iml(不用管)
10.local.propeties(不需要修改)
11.settings.gradle(很少修改)
app(工作重点)
1.build(和外层build类似,不用管)
2.libs(第三方jar包)
3.androidTest(用于androidTest)
4.java(所有java代码)
5.res(各种资源,图片,布局等)
……
1.3.5详解项目中的资源resource
drawable 图片
layout 布局
mipmap 应用图标
values 字符串、颜色、样式等
使用:
1.代码中:R.string.helloworld
2.XML:@string/helloworld
1.3.6详解build.gradle文件
(1)最外层目录下的build.gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
- .两处repositories闭包都声明了jcenter(),jcenter是一个代码托管仓库,声明了之后可以轻松使用jcenter上的开源项目;
- dependencies闭包中使用了classpath声明了一个Gradle插件。
(2)app目录下的build.gradle
com.android.application 应用程序模块 可以直接运行
com.android.library 库模块 只能作为代码库依附于别的应用程序模块来运行versioncode 1 指定版本号
versionname “1.0” 指定版本名- buildTypes闭包的release子闭包,用于项目代码的混淆。
- dependencies闭包(指定当前项目的所有依赖关系)
三种依赖关系:
- 本地依赖:对本地的jar包或目录添加依赖关系(ex:compile fileTree(dir:’libs’,include:[*.jar]) );
- 库依赖:对项目中的库模块添加依赖关系(ex:compile(‘:helper’) );
- 远程依赖:对jcenter库上的开源项目添加依赖关系(compile ‘com.android.support.appcpmpat-v7:24.2.1’)。