1.1 了解全貌——Android王国简介
1.1.1 Android 系统架构
1.1.1 Android 已发布版本
1.1.3 Android 应用开发特色
1.2 手把手带你搭建开发环境
1.2.1 准备所需要的工具
1.2.2 搭建开发环境
1.3 创建你的第一个Android项目
1.3.1 创建HelloWorld项目
1.3.2 启动模拟器
1.3.3 运行HelloWorld
1.3.4 分析你的第一个Android程序
1.3.5 详解项目中的资源
1.3.6 详解build.grdle文件
1.4 前行必备——掌握日志工具的使用
1.4.1 使用Android的日志工具
1.4.2 为什么使用Log而不是用System.out
1.5 小结与点评
Android从面试以来已经发布了二十几个版本了,在这几年的发展过程中,谷歌建立了一个完整的生态系统。手机厂商,开发者,用户之间相互依赖,共同推荐Android的蓬勃发展。
Android大致分为四层架构:
Linux内核层:底层驱动,如显示,音频,相机驱动等
系统运行库层:通过C/C++库为Android系统提供特性支持(虚拟器,OpenGl|ES库,WebKit等)
应用框架层:提供各种API
应用层:所有安装在手机上的应用程序都是属于这一层的,如系统自带的联系人,短信等程序。
详细请看:https://blog.csdn.net/m0_37240709/article/details/76069176
项目结构
所有以drawable开头的文件用来放图片的,所有以mipmap开头的文件夹用来放应用图标的
程序运行后会根据屏幕的分辨率加载哪个文件下的内容
不同于Eclipse,Android Studio 是采用Gradle来构建项目的,它使用了一种基于Groovy的领域特定语言(DSL)来声明项目设置,摒弃了传统基于xml(如Ant和Maven)的各种烦琐设置。
最外层目录下的build.gradle文件,代码如下:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
这些代码都是自动生成的,通常情况下不需要修改这个文件中的内容。两处repositories闭包中都声明了jcenter(),jcenter是一个代码托管仓库,从而使得我们在项目中可以引用任何jcenter上的开源项目。dependencies闭包中使用classpath声明了一个Gradle插件,因为Gradle并不是专门为构建Android项目而开发的,Java、C++等很多种项目都可以使用Gradle来构建。如果想要使用Gradle来构建Android项目,则需要声明com.android.tools.build:gradle:2.3.3这个插件,其中,后面是插件的版本号。
app目录下的build.gradle文件,代码如下:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "27.0.0"
defaultConfig {
applicationId "com.example.helloworld"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:26.+'
testCompile 'junit:junit:4.12'
}
首先第一行应用了一个插件,一般有两种值可选:com.android.application表示这是一个应用程序模块;com.android.library表示是一个库模块。应用程序模块是可以直接运行的,库模块只能作为代码库附于在别的应用程序模块来运行。
android闭包:
compileSdkVersion:指定项目的编译版本。
buildToolsVersion:指定项目构建工具的版本。
defaultConfig闭包:
applicationId:指定项目的包名
minSdkVersion:指定项目最低兼容的Android系统版本
targetSdkVersion:指定项目的目标版本
versionCode:指定项目的版本号
versionName:指定项目的版本名
buildTypes闭包:
通常只会有两个子闭包:debug和release。其中debug闭包可以忽略不写。debug闭包用于指定生成测试版安装文件的配置;release闭包用于指定生成正式版安装文件的配置。
release闭包
minifyEnabled:指定是否对项目的代码进行混淆。
proguardFiles:指定混淆时使用的规则文件。proguard-android.txt是在Android SDK目录下,里面是所有项目通用的混淆规则;proguard-rules.pro是在当前项目的根目录下,里面可以编写当前项目特有的混淆规则。
dependencies闭包
指定当前项目所有的依赖关系。
compile fileTree:声明本地依赖,表示将libs目录下所有.jar后缀的文件都添加到项目的构建路径中。
compile:声明远程依赖。
testCompile:声明测试用例库。
日志工具类是Log(android.util.log)
System.out缺点:打印不可控制,打印时间无法确定,不能添加过滤器,日志没有级别区分。。。
那么Log就把Syso的所有缺点都改掉了吗?虽然谈不上全部,但我觉得已经做得相当不错了。
同时我们也可以通过Logcat配置打印信息 过滤器等。
郭霖总结:
你现在一一定会觉得很充实,甚至有点沾沾自喜。确实应该如此,因为你已经成为一-名真正的Android开发者了。通过本章的学习,你首先对Android 系统有了更加充足的认识,然后成功将Android开发环境搭建了起来,接着创建了你自己的第一一个 Android项目,并对Android项目的目录结构和执行过程有了一定的认识, 在本章的最后还学习了Android日志工具的使用,这难道还不够充实吗?
不过你也别太过于满足,相信你很清楚,Android 开发者和出色的Android 开发者还是有很大的区别的,你还需要付出更多的努力才行。即使你目前在Java 领域已经有了不错的成绩,我也希望在Android的世界你可以放下身段,以一只萌级小菜鸟的身份起飞,在后面的旅途中你会不断地成长。
现在你可以非常安心地休息一段时间, 因为今天你已经做得非常不错了。储备好能量,准备进人到下一章的旅程当中。
我的总结:
因为本身就是在做Android程序,所以第一章对于我来说,又加深了一些印象。