《第一行代码》作为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下的整体项目结构图然后逐一分析
1: .gradle和 .idea 这两个都是AS自动生成的一些文件,我们无需关心,也不要去手动编辑
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) ,通常这个文件是不需要修改的 ,如下图,
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去打印日志,看应用运行信息方便调试,
如上图,这是AS自带的日志过滤器:
show only selected application : 表示只显示当前选中程序的日志、
Filebase : 是谷歌提供的分析工具,可以暂时不用理他、
No Filters : 相当于没有过滤器,也就是会显示所有的日志
Edit Filter Configuration : 会弹出过滤器配置界面(很实用的东西)
接下来,就是设置Log级别,依旧先上图
Verbose:这个是最低级别的日志,无论是什么操作,都会显示出来
debug:只有使用debug及以上级别方法打印的日志才会显示出来,以此内推,
那么,对应的代码是 Log.d(参数一,参数二);
参数一:也就是关键字,图上的红色方框,也就是对应的关键字,
参数二:也就是我们想要获取并打印在输出台上的日志,
比如我想获取Post请求,获取响应体的调试信息(这里假设使用Okhttp访问网络请求,日志关键字是 “okhttp”)那么,就可以写成这样:
Log.d ( "okhttp " ," 响应体:"+ response.body().String);
Ps:开发小技巧,在开发中,我们会经常使用到日志,但是,我们希望应用上线的时候,所有的测试日志都不显示。这个时候就有人说,简单,我一个个删就行(这我就呵呵哒),首先,你一个个删除日志,即花时间又花精力,况且,假设项目上线后出了些问题,之前的调试日志是有辅助排错的功能,但是你已经删除了之前的日志,不得已你又得重来或者Debug。
解决办法就是写一个工具类,方便开发测试,上线维护,如下图
嗯,简单粗暴,仔细明了。
好了,第一章就写到这里,如有错误,望纠正。
如果这篇文章对您有开发or学习上的些许帮助,希望各位看官留下宝贵的star,谢谢。
Ps:著作权归作者所有,转载请注明作者, 商业转载请联系作者获得授权,非商业转载请注明出处(开头或结尾请添加转载出处,添加原文url地址),文章请勿滥用,也希望大家尊重笔者的劳动成果