Android阅读手札:第一行代码(第一章)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 《第一行代码》作为Android开发入门的经典书籍,是我们非常好的阅读选择,初学者可以迅速了解相关知识,老司机也可以温故知新巩固基础。笔者使用该书的第二版,也就是绿色封面的第一章节《开始启程》作为笔者读书文集笔记的第一篇。

《第一行代码》作为Android开发入门的经典书籍,是我们非常好的阅读选择,初学者可以迅速了解相关知识,老司机也可以温故知新巩固基础。笔者使用该书的第二版,也就是绿色封面的第一章节《开始启程》作为笔者读书文集笔记的第一篇。

第一章关键词:

Android简介,Android架构,Android搭建快速开发环境,Android Studio了解,日志工具Log使用



Android简介:

目前是世界上市场占有率最高的移动操作系统,单纯从软件开发而言,包含电商,音视频,直播,物流,阅读,小说,SDK等研究领域;软硬件领域涉及包含,车载系统,穿戴设备等等

Android的架构分为:

1:Linux内核层:

为Android设备的各种硬件提供了底层的驱动,比如显示驱动,音频驱动,蓝牙驱动,Wi-Fi驱动等等

2:系统运行层:

通过C/C++(又是万能的C)为Android系统提供主要的特性支持。如Squlite库提供了数据库的支持,OpenGL|ES提供3D绘图的支持,Webkit库提供浏览器内核支持等等,还有Android运行时库,允许使用Java语言编写Android应用(现在支持使用Kotiln)等等

3:应用框架层:

构建应用程序使用到的各种API,自带的一些应用就是使用这些API完成的

4:应用层:

也就是自己编写的apk,短信程序,游戏之类应用的程序等


Android搭建快速开发环境:

1:由于现在开发人员大都使用Java语言来编写Android开发程序(虽然Kotlin语言的出现打破了现在的格局,但是Java依旧占据着主导开发地位)所以,JDK,配置环境变量,基本的CMD命令行,Java语言基础,等基本内容还是需要自己花时间去掌握的

2:Android SDK,就是谷歌为Android提供的开发工具包,在Android Studio中,这个可以自己按照喜好和开发过程中依据实际情况去下载(截至目前,笔者使用的Android Studio版本是3.0,SDK的最高版本是8.0)

3:IDE,也就是Android开发工具,Eclipse,myEclispe,Android Studio,IDEA,笔者都用过,早期那可就是Eclipse的天下,但是由于谷歌不在更新ADT,导致现在的Eclipse配置Android环境稍微麻烦一些(因为有些公司,研发团队依旧使用Eclipse开发),当然,笔者也自己配置好了Eclispe Adt(链接:http://pan.baidu.com/s/1cIwIlw   密码:ah4m)直接解压出来使用即可;MyEclispe就稍显麻烦,首先你得破解啊(毕竟要收费,在大天朝免费才是最受欢迎的),破解之后得安装ADT,得,笔者也给大家准备好了(有需要的私聊)那么,作为目前Android开发工具的主导,Android Studio的使用那就是需要花时间掌握的,最后谈谈Idea,使用起来跟Android Studio一样,体验极佳。


Android Studio初步了解:

安装和配置需要自己去网上寻找,当然笔者也准备好了详细的安装文档,快捷键文档,安装过程遇到的常见问题共计三份文档(链接:http://pan.baidu.com/s/1miAAMog 密码:0vgv)


跟之前Eclipse工程目录结构不一样是,Android Studio(以下简称AS)使用了Gradle来构建项目,它使用了一种基于Groovy 的领域特点语言来声明项目配置,我们直接先上AS下的整体项目结构图然后逐一分析


img_dc91f79e4b16d43f2e54f546775c072e.png
整体结构图

1: .gradle和 .idea 这两个都是AS自动生成的一些文件,我们无需关心,也不要去手动编辑


img_051ef3a5c36f1496a1dca144b2924bc5.png
app目录

2:  app目录下内容挺多(见上图),我们逐个分析,build是编译时生产的文件,libs目录主要是第三方jar包,src 目录下(包含Java,res, AndroidManifest.xml)就是编写具体的代码和资源文件,配置清单文件等等,具体的内容大家可以自己去看看; .gitigone文件用于将app模块内的指定目录或文件排除在版本控制之外;app.iml,是IntelliJ IDEA项目自动生产的文件,我们不需要关心或修改这个文件;

build.gradle(蓝色框),这个包含APP的编译SDK版本,是否开启混淆,导入第三方依赖等等;.proguard-rules.pro,是用于指定项目的混淆规则

3:  build,包含编译时自动生成的文件 ; gradle目录包含gradlewrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载好 ; .gitigone文件用于将app模块内的指定目录或文件排除在版本控制之外;

4:  build.gradle,这里是全局的gradle构建脚本,引用 jcenter,mavenCentral 代码托管仓库,申明插件的版本号,(这里的版本号就是2.2.3) ,通常这个文件是不需要修改的 ,如下图,


img_f8f261ea31970732d51e2014860e71e5.png
项目的Gradle

5:  gradle.properties,这里是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本;gradlew和gradlew.bat 这两个文件用来在命令行界面执行gradle命令的,其中gradlew是在Linux或Mac系统中使用,gradlew.bat是在Window系统中使用的;app.iml 这个文件是所有IntelliJ IDEA项目中都会生成的一个文件,用于标识这是一个IntelliJ IDEA项目。我们不需要修改这里面的任何内容;local.properties 这个文件主要是用于指定本机中的Android SDK路径,通常内容都是自动生成的,我们并不需要修改。settings.gradle,这个文件用于指定项目中所有引入的模块,由于就只有一个app模块,因此该文件也就只引用这一个模块

拓展   .jks文件,就是签名文件,给APK打签名包需要使用到的(一定要保存好,一定要保存好)


日志工具Log:

在AS中,我们使用强大的Log去打印日志,看应用运行信息方便调试,


img_fa23604a50e3155b31638758fef8c2a7.png
LogCat过滤器

如上图,这是AS自带的日志过滤器:

show only selected application : 表示只显示当前选中程序的日志、

Filebase : 是谷歌提供的分析工具,可以暂时不用理他、

No Filters : 相当于没有过滤器,也就是会显示所有的日志

Edit Filter Configuration : 会弹出过滤器配置界面(很实用的东西)

接下来,就是设置Log级别,依旧先上图


img_32efe5f28d422e10fe1adc84a80feb89.png
Log级别

Verbose:这个是最低级别的日志,无论是什么操作,都会显示出来

debug:只有使用debug及以上级别方法打印的日志才会显示出来,以此内推,

那么,对应的代码是  Log.d(参数一,参数二);

参数一:也就是关键字,图上的红色方框,也就是对应的关键字,

参数二:也就是我们想要获取并打印在输出台上的日志,

比如我想获取Post请求,获取响应体的调试信息(这里假设使用Okhttp访问网络请求,日志关键字是 “okhttp”)那么,就可以写成这样:

Log.d ( "okhttp " ," 响应体:"+ response.body().String);


Ps:开发小技巧,在开发中,我们会经常使用到日志,但是,我们希望应用上线的时候,所有的测试日志都不显示。这个时候就有人说,简单,我一个个删就行(这我就呵呵哒),首先,你一个个删除日志,即花时间又花精力,况且,假设项目上线后出了些问题,之前的调试日志是有辅助排错的功能,但是你已经删除了之前的日志,不得已你又得重来或者Debug。

解决办法就是写一个工具类,方便开发测试,上线维护,如下图


img_6e94695c9a83aee99d538fe801b87309.png
Logger工具类

嗯,简单粗暴,仔细明了。

好了,第一章就写到这里,如有错误,望纠正。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7月前
|
JSON 编译器 开发工具
VS Code阅读Android源码
VS Code阅读Android源码
527 1
|
7月前
Android4.1.0实战教程---自动阅读小说
Android4.1.0实战教程---自动阅读小说
92 1
|
7月前
|
XML Java Android开发
Android App开发手机阅读中实现平滑翻书效果和卷曲翻书动画实战(附源码 简单易懂 可直接使用)
Android App开发手机阅读中实现平滑翻书效果和卷曲翻书动画实战(附源码 简单易懂 可直接使用)
399 0
|
7月前
|
XML Java Android开发
Android App开发手机阅读中PDF文件渲染器的讲解及使用(附源码 简单易懂)
Android App开发手机阅读中PDF文件渲染器的讲解及使用(附源码 简单易懂)
247 0
|
7月前
|
XML Java Android开发
Android App开发手机阅读之使用贝塞尔曲线实现给主播刷礼物特效(附源码和演示视频 简单易懂 可直接使用)
Android App开发手机阅读之使用贝塞尔曲线实现给主播刷礼物特效(附源码和演示视频 简单易懂 可直接使用)
87 0
|
7月前
|
XML Java Android开发
Android App开发手机阅读中贝塞尔曲线的原理讲解及实现波浪起伏动画实战(附源码和演示视频 可直接使用)
Android App开发手机阅读中贝塞尔曲线的原理讲解及实现波浪起伏动画实战(附源码和演示视频 可直接使用)
127 0
|
缓存 安全 Android开发
[Android 毕业设计/课程设计] 小而美的阅读客户端 App
[Android 毕业设计/课程设计] 小而美的阅读客户端 App
|
Android开发
Android实现在线阅读PDF文件
Android实现在线阅读PDF文件
306 0
|
Java Android开发
Android之AsyncTask 源码阅读
Android之AsyncTask 源码阅读
Android之AsyncTask 源码阅读
|
存储 前端开发 Java
Android ClassLoader 源码阅读
Android ClassLoader 源码阅读