《第一行代码——Android》(第三版)第一章读书简记|青训营笔记

182 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的的第1天
在同学的推荐下,准备阅读郭霖老师的《第一行代码——Android》(第三版)一书以系统性地入门安卓客户端开发,读完第一章并在书本指引下配置了环境,并简单熟悉了Android Studio和工程文件的结构。遂记录第一章中主要的知识框架,以便之后的学习翻阅。

1.Android简介

系统架构

Linux内核层:为Android设备的硬件提供了底层的驱动
系统运行库层:通过C/C++为Android系统提供了主要特性支持
应用框架层:提供构建应用程序时的API
应用层:安装在设备上的应用程序 image.png

四大组件

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

过滤器(可自行配置)
通过日志级别筛选
通过关键字筛选(支持正则表达式)