第一章 开启启程—你的第一行代码
知识梳理
android开发应用特色
四大组件
- Activity
- Service
- 前台服务
- 后台服务
- Broadcast Receiver
- 前台广播
- 后台广播
- Content Provider
丰富的系统控件
SQLite数据库
强大的多媒体
地理位置定位
Android Studio的注意点
项目结构结构
build 编译时自动生成,
gradle gradle wapper配置文件
build.gradle 项目全局的构建脚本/代码都是自动生成的
buildscript{ respostitories{ jcenter() //托管平台,配置以后,就可以引用任何jcenter上的开源项目 } dependencies{ clsspath 'com.android.tools.build:gradle:2.2.0' //gradle 并不是专门未Android研发,使用该插件,可以让Android开发使用 } } allprojects{ repostitories{ jecener() } }
gradles/gradlew.bat 命令行界面执行gradle命令,其他gradles是Linux和Max运行的 ,gradles是运行在Windows上的
local.properties Android SDK的路径
setting.gradle 指定项目所有引入的模块
app
build
libs 使用第三方jar包 ,放入自动添加到构建路径中
src
AndroidTest
main
java
res
AndroidManifest.xml 配置文件,四大组件都需要在这个文件中注册
<activity android:name=".HelloWorldActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
test 自动化测试的一种
.gitignore
app.iml IDEA自动生成的,不需要关心
build.gredle
apply plugin: 'com.android.application' //应用了一个插件 application(应用程序模块) library(库模块) android { compileSdkVersion 24 //指定项目的编译版本 24指Android7.0的SDK编译 buildToolsVersion "24.0.2" //指定项目构建工具的版本 defaultConfig { applicationId "com.example.helloworld" //指定项目的名称 minSdkVersion 15 //指定项目最低兼容的版本号 15指最低兼容到androdandorid4.0 targetSdkVersion 24 //表示你在该版本做过充足的测试,系统将为你启动新的功能 24 versionCode 1 //指定项目的版本号 versionName "1.0" //指定项目的版本名 } buildTypes { //执行生成安装文件的相关配置 通常有两个子闭包 debug(指定生成测试版安装文件的相关配置)(可以不写) release(指定生成正式版安装文件的相关配置) release { minifyEnabled false //指定是否对项目的代码进行混淆 true 是 false 否 proguardFiles getDefaultProguardFile('proguard-android.txt'), //指定混淆的文件 'proguard-rules.pro' } } } dependencies { //指定当前项目所有的依赖关系 通常有3种 本地依赖/库依赖/远程依赖 compile fileTree(dir: 'libs', include: ['*.jar']) //本地依赖,将本地所有.jar后缀的全部添加到项目的构建路径中 compile 'com.android.support:appcompat-v7:24.2.1' //远程依赖声明, testCompile 'junit:junit:4.12' }
proguard-rules.pro 指定项目的混淆规则
Android日志的工具log
❑ Log.v()。用于打印那些最为琐碎的、意义最小的日志信息。对应级别verbose,是Android日志里面级别最低的一种。
❑ Log.d()。用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。对应级别debug,比verbose高一级。
❑ Log.i()。用于打印一些比较重要的数据,这些数据应该是你非常想看到的、可以帮你分析用户行为数据。对应级别info,比debug高一级。
❑ Log.w()。用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下这些出现警告的地方。对应级别warn,比info高一级。
❑ Log.e()。用于打印程序中的错误信息,比如程序进入到了catch语句当中。当有错误信息打印出来的时候,一般都代表你的程序出现严重问题了,必须尽快修复。对应级别error,比warn高一级。
工具log的两个小技巧
- 在onCread( )方法外面输入logt+Tab健,自动生成一个常量
- 在需要打印日志的地方 输入logt +Tab健,自动生成日志语句