这是我参与「第四届青训营 」笔记创作活动的的第1天
在同学的推荐下,准备阅读郭霖老师的《第一行代码——Android》(第三版)一书以系统性地入门安卓客户端开发,读完第一章并在书本指引下配置了环境,并简单熟悉了Android Studio和工程文件的结构。遂记录第一章中主要的知识框架,以便之后的学习翻阅。
1.Android简介
系统架构
Linux内核层:为Android设备的硬件提供了底层的驱动
系统运行库层:通过C/C++为Android系统提供了主要特性支持
应用框架层:提供构建应用程序时的API
应用层:安装在设备上的应用程序
四大组件
Activity:应用程序的门面
Service:后台运行(无法看到)
BroadcastReceiver:接受和发送于其他应用的广播消息
ContentProvider:应用程序之间数据共享
其他
丰富的控件系统:漂亮的界面
SQLite数据库:自带的轻量级、运算速度极快的嵌入式关系型数据库(支持SQL语法)
强大的多媒体:多媒体服务
2.环境搭建
开发工具
JDK、Android SKD、Android Studio
在Studio上创建第一个项目
配置好SDK以及AVD(Android Virtual Device)的相关组件以及路径
【经典配置环境时折磨自己半天发现是犯了很简单的错误】
运行并启动模拟器!
分析程序
将项目结构模式切换为Project,以查看真是的目录结构
Project下的项目结构
.gradle和.idle:自动生成的文件(无须关心)
app:项目中的代码、资源
-
build :与外层类似(无须关心) -
libs :第三方jar包 -
androidTest :编写Android Test测试用例(对项目进行一些自动化测试) -
**java :java目录是放置我们所有Java代码的地方(Kotlin代码也放在这里)【其中包含系统自动生成的MainActivity文件】** -
res :子目录下包含项目中的**图片(drawable)、布局(layout)、字符串(values)** -
**AndroidManifest.xml :整个Android项目的配置文件【在程序中定义的所有四大组件在这个文件里注册,以及在这个文件中给应用程序添加权限声明】** -
test :来编写Unit Test测试用例(对项目进行自动化测试的另一种方式) -
.gitignore :作用和外层的.gitignore文件类似 -
app.iml(iml用于标识Intellij IDEA文件,无需修改) -
build.gradle :app模块的gradle构建脚本(分析了解) -
proguard-rules.pro:用于指定项目代码的混淆规则
build:编译时自动生成的文件(无须关心)
gradle:gradle wrapper配置文件(可以启动联网下载或离线模式)
.gitignore:用来将指定的目录或文件排除在版本控制之外 【版本控制:第六章】
build.gradle:项目全局的gradle构建脚本(分析了解)
gradle.properties:全局的gradle配置文件(配置属性将影响项目中所有gradle脚本)
gradlew(Linux/Mac)和gradlew.bat(Windows):命令行界面中执行gradle命令
HelloWorld.iml(iml用于标识Intellij IDEA文件,无需修改)
local.properties:用于指定本机中的Android SDK路径(自动生成,无需修改)
settings.gradle:用于指定项目中所引入的模块(自动生成,极少情况修改)
掌握日志工具
Android中的日志工具类是Log,有五个方法对应从低到高的五个级别:v(verbose)、d(debug)、i(info)、w(warn)、e(error)
Log.*()方法中传入了两个参数:
第一个参数是tag(一般为当前类名),主要用于对打印信息进行过滤
第二个参数是msg,即想要打印的具体内容
为什么不使用println()
虽然Studio中可以输入sout来方便地输出
但这样存在大量缺点:
日志开关不可控制、不能添加日志标签、日志没有级别区分
善于利用Logcat中的技巧来查看log
过滤器(可自行配置)
通过日志级别筛选
通过关键字筛选(支持正则表达式)