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

《第一行代码》作为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自动生成的一些文件,我们无需关心,也不要去手动编辑


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) ,通常这个文件是不需要修改的 ,如下图,


项目的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去打印日志,看应用运行信息方便调试,


LogCat过滤器

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

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

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

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

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

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


Log级别

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

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

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

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

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

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

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


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

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


Logger工具类

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

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

如果这篇文章对您有开发or学习上的些许帮助,希望各位看官留下宝贵的star,谢谢。

Ps:著作权归作者所有,转载请注明作者, 商业转载请联系作者获得授权,非商业转载请注明出处(开头或结尾请添加转载出处,添加原文url地址),文章请勿滥用,也希望大家尊重笔者的劳动成果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,392评论 25 707
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,396评论 2 45
  • 生命里有了你才是美好的, 一天中有了你才是开心的, 明天能看见你才是期待的, 昨天遇见了你才是有回忆的, 一天天,...
    春天de菠菜阅读 166评论 0 1
  • 说实话,古往今来,侦探破案式小说不知凡几,但能形成一个独立鲜明的人物形象,令大家印象深刻的着实的不多,甚至可以说是...
    竞走的蜗牛阅读 678评论 0 0
  • 每次写简书都是晚上睡觉前写,一多半有点不太想写,二也不知道从哪里开始写,所以每次也是放到最后实在拖不下去了,才...
    如水2016阅读 237评论 0 0