Android - 第一章 基本认识
1. 分析目录
1.1 自动生成无需关心
.gradle .idea bulid build.gradle
1.2 需要了解的
- .gitignore 该文件用来将指定的目录或者文件排除子啊版本控制之外。
- gradle.properties 该文件是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本。
- gradlew 和 gradlew.bat 用来子啊命令行界面执行gradle命令,gradlew在Linux或Mac系统中使用,gradlew.bat在Windows系统中使用。
- xxxx.iml iml文件是所有IntelliJ IDEA项目都会自动生成的一个文件,用来标识这个是一个IntelliJ IDEA项目,无须修改。
- local.properties 指定本机的Android SDK路径,如果Android SDK位置改变则需修改。
- settings.gradle 用来指定项目中所有引入的模块。一般都是自动完成。
1.3 app目录下
- build 编译中自动生成,无须修改。
- libs 项目中第三方jar包的目录,自动添加到构建路径中。
- androidTest 用来编写Android Test 测试用例,可以对项目进行一些自动化测试。
- java 放置java 代码的地方。
- res 资源目录,drawable 图片,layout 布局,values 字符串、样式、颜色等配置,mipmap 放应用图标。
- AndroidMainifest.xml 整个Android项目的配置文件,四大组件需要在这注册,可以给application添加权限声明。
- test 用来编写Unit Test 测试用例。
- .gitignore 作用与外层的.gitignore文件类似。
- app.iml IntelliJ IDEA项目都会自动生成的一个文件.
- build.gradle app模块的gradle构建脚本,指定很多项目构建相关的配置。
- proguard-rules.pro 指定项目代码的混淆规则,代码开发完成后打成安装包的保密措施。
2. 详解res中资源
例子:引用res中字符串方式:
- 在代码中通过R.stirng.hellow_world可以获得该字符串的引用。
- 在XML中通过@string/hello_world可以获得该字符串的引用。
例子:
<application
android:allowBackup=“true”
android:icon="@mipmap/ic_launcher"应用图标
android:lablel="@striing/app_name"应用名称
android:supportRtl=:true"
…
</application>
3.详解build.gradle文件
Gradle 是一个项目构建工具,使用力基于groovy的领域特定语言DSL来声明项目设置,摒弃了XML的配置。
最外层build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.toos.build:gradle:2.2.0'
}
allprojects {
repositories {
jcenter()
}
}
jcenter 代码托管仓库。
classpath 声明一个Gradle插件,说明使用Gradle来构建Android项目。
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buldToolsVersion "24.0.2"
defaultConfig {
applicationId "com.exanple.helloworld"
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildType {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependences {
compile fileTree(dir: 'libs', include: ['*, jar'])
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit: junit:4.12'
}
第一行应用一个插件:
com.android.application 表示这是一个应用程序模块,可以直接运行;
com.android.library 表示这是一个库模块,只能作为代码库依附别的应用程序模块来运行。
android闭包:配置项目构建的各种属性:
compileSdkVersion 指定项目编译版本;
buildToolsVersion 指定项目构建工具版本;
defaultConfig 闭包:项目更多细节
applicationId 指定项目包名;
minSdkVersion 指定项目最低兼容的Android系统版本;
targetSdkVersion 指定的值表示在该目标版本已经做过测试;
versionCode 指定项目的版本号;
versionName 指定项目的版本名。
buildType闭包:指定生成安装文件的相关配置;
debug 子闭包:指定生成测试版安装文件的配置(可以忽略不写);
release 子闭包:指定生成正式版安装文件的配置
minifyEnabled 指定是否对项目的代码进行混淆;
proguardFiles 指定混淆时使用的规则文件,proguard-android.txt 是Android SDK目录下的,所有项目通用的混淆规则,proguard-rules.pro 是当前项目根目录下编写的特有混淆规则。注意,通过Android Studio 直接运行项目生成的都是测试版安装文件。
dependencies 闭包:指定当前项目所有依赖关系。
三种依赖方式:
- 本地依赖:可以对本地的jar包或目录添加依赖关系;
- 库依赖:可以对项目中的库模块添加依赖关系;
- 远程依赖:可以对jcenter库上的开源项目添加依赖关系。
compile fileTree 表示将libs目录下所有.jar后缀的文件都添加到项目的构建路径中;
compile 远程依赖,
com.android.support是域名部分,
appcompat -v7是组名称,区分同一公司不同的库,
24.2.1是版本号,区分同一库不同版本;
compile project(‘:helper’)依赖helper库模块;
testCompile 声明测试用例库;
4. 使用日志工具Log
4.1 五个等级
verbose
debug
info
warn
error
4.2 快捷键
logt + Tab 补全生成当前类名的一个TAG常量;
logd + Tab 补全生成debug级别打印日志,以此类推。
4.3 logcat过滤器
过滤日志