自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

郭霖的专栏

每当你在感叹,如果有这样一个东西就好了的时候,请注意,其实这是你的机会...

原创 我的新书,《第一行代码 Android 第3版》已出版!

《第一行代码——Android》这本书自2014年出版以来,已经过了6个年头了。期间Android系统版本经历了4.0到10.0系统的巨大升级,开发技术也发生了翻天覆地的变化。在2016年的时候,我曾对书中的内容进行了大幅度的更新,出版了这本书的第2版,也就是所谓的《第二行代码》。而如今,再隔4年...

2020-04-02 10:13:08 32698 94

原创 分享我成为GDE(Google开发者专家)的经历

GDE的全称是Google Developer Expert,是Google在全球范围内开展的一个开发者专家认证项目。如果你对Google的某个技术领域非常擅长,同时在这个领域有比较高的影响力的话,那么就有可能成为Google官方认证的开发者专家。 由于我知道绝大部分的国内开发者对于GDE的了解...

2020-10-21 07:35:19 2693 15

原创 volatile关键字在Android中到底有什么用?

当一个程序运行的时候,数据是保存在内存当中的,但是执行程序这个工作却是由CPU完成的。那么当CPU正在执行着任务呢,突然需要用到某个数据,它就会从内存中去读取这个数据,得到了数据之后再继续向下执行任务。 这是理论上理想的工作方式,但是却存在着一个问题。我们知道,CPU的发展是遵循摩尔定律的,每1...

2020-10-12 07:44:28 1756 10

原创 浅谈Kotlin的Checked Exception机制

现在使用Kotlin的Android开发者已经越来越多了。 这门语言从一开始的无人问津,到后来成为Android开发的一级语言,再到后来Google官宣的Kotlin First。Kotlin正在被越来越多的开发者接受和认可。 许多学习Kotlin的开发者之前都是学习过Java的,并且本身Ko...

2020-09-29 07:35:50 4366 13

原创 原来在Android中请求权限也可以有这么棒的用户体验

PermissionX这个开源项目起源于我今年出版的新书[第一行代码 第3版》,本来的主要目的只是为了带领读者朋友们学习如何开发并发布一个开源库。然而随着我发现这个项目不仅有学习的价值,还可以真正投入到实际项目的使用当中,于是后面又对PermissionX进行了多个版本的迭代,目前已经成为了一个非...

2020-09-15 07:28:00 4868 11

原创 Jetpack新成员,App Startup一篇就懂
原力计划

Android 11系统已经来了,随之而来的是,Jetpack家族也引入了许多新的成员。 其实以后Android的更新都会逐渐采用这种模式,即特定系统相关的API会越来越少,更多的编程API是以Jetpack Library的形式提供给我们的。这样我们就不需要专门针对不同的系统版本去写很多的适配逻...

2020-08-25 07:00:29 4866 7

原创 Android数据库高手秘籍(十二),LitePal的索引功能
原力计划

我发现今年我的技术产出真的是很不错,自从《第一行代码 第3版》出版之后,我空余出来了大量的时间,不仅频繁地更新和维护自己编写的开源库,还参加了多场GDG活动与大家分享技术。 目前我手上正在维护的开源库主要是LitePal和PermissionX这两个,属于交叉维护的状态,升级完了这个就抓紧去写另外...

2020-08-11 08:13:46 4778 12

原创 为什么说在Android中请求权限从来都不是一件简单的事情?
原力计划

周末时间参加了东莞和深圳的两场GDG,因为都是线上参与,所以时间上并不赶,我只需要坐在家里等活动开始就行了。 等待的时候一时兴起,突然想写一篇原创,聊一聊我自己在写Android权限请求代码时的一些技术心得。 正如这篇文章标题所描述的一样,在Android中请求权限从来都不是一件简单的事情。为什么...

2020-07-28 07:27:35 12396 22

原创 PermissionX重磅更新,支持自定义权限提醒对话框
原力计划

截至目前为止,PermissionX已经迭代更新了三个版本,而最新的1.3.0版本更是加入了非常重要的自定义权限提醒对话框的功能。如果你觉得之前PermissionX自带的权限提醒对话框太丑,从而无法投入正式的生产环境,那么这次你将可以充分发挥自己的UI实力,打造出一个漂亮的权限提醒界面

2020-07-21 07:14:34 5176 7

原创 PermissionX现在支持Java了!还有Android 11权限变更讲解
原力计划

各位小伙伴们早上好,不知道你们有没有惊讶于我的速度,因为不久之前我才新发布的开源库PermissionX今天又更新了。 是的,在不到一个月的时间里,PermissionX又迎来了一次重大的版本更新。如果你觉得一个月还不算快的话,可别忘了,两周之前我还发布了LitePal的新版本。对于我来说,这个...

2020-06-16 08:05:32 9199 24

原创 Android数据库高手秘籍(十一),LitePal支持事务功能了
原力计划

LitePal内部的API在很早之前就支持了事务功能,因为要保证数据操作的原子性,不能出现部分成功部分失败的情况。 然而,LitePal之前却从来没有提供过对外的事务接口,但是广大开发者却实实在在会有事务方面的需求。 举个最常见的事务例子,你正在开发一个转账功能,需要先从一个账户中减去先一定的...

2020-06-02 07:23:40 6535 9

原创 Android运行时权限终极方案,用PermissionX吧
原力计划

没有人愿意编写处理Android运行时权限的代码,因为它真的太繁琐了。 这是一项没有什么技术含量,但是你又不得不去处理的工作,因为不处理它程序就会崩溃。但如果处理起来比较简单也就算了,可事实上,Android提供给我们的运行时权限API并不友好。 以一个拨打电话的功能为例,因为CALL_PHO...

2020-05-19 08:03:13 15983 33

原创 Android 10适配要点,深色主题
原力计划

在不久之前,我才发布了一篇Android 10适配的文章,讲的是作用域存储的相关内容。 而除了作用域存储之外,深色主题也是Android 10中的一大亮点,并且是需要开发者进行适配的。因此本篇文章我们就来探讨关于深色主题的内容。 另外说明一下,本篇文章主要摘自《第一行代码——Android 第...

2020-05-12 22:17:58 9480 11

原创 什么?RecyclerView中获取点击位置的接口被废弃了?
原力计划

什么?holder.adapterPosition被划线不推荐使用了? 《第三行代码》这才刚刚出版,竟然就有API被弃用了,我决定对这个问题好好研究一下,并加急写一篇文章进行分析。 仔细一看,holder.adapterPosition这不就是我们平时在RecyclerView里面用于获取点击...

2020-04-21 07:41:24 7522 17

原创 Android 10适配要点,作用域存储
原力计划

距离Android 10系统正式发布已经过去大半年左右的时间了,你的应用程序已经对它进行适配了吗?在Android 10众多的行为变更当中,有一点是非常值得引起我们重视的,那就是作用域存储。这个新功能直接颠覆了长久以来我们一直惯用的外置存储空间的使用方式,因此大量App都将面临着较多代码模块的升级...

2020-04-14 08:42:48 18742 33

原创 写一篇最好懂的HTTPS讲解

大家早上好,有段时间没更新文章了。 其实疫情期间在家呆了一个多月的时间不能出门,时间倒是挺多的,我也利用这段时间写了几篇新文章。但由于新写的这些文章大都是配合着新书中的内容的,受疫情的影响我写的新书迟迟不能出版,导致这些文章也无法发布,等得我好是焦急。希望疫情早日结束,大家都能快点恢复到正常的生...

2020-03-03 07:44:56 31657 91

原创 Kotlin vs Flutter,我到底应该怎么选?

在移动应用开发方面,Kotlin和Flutter是目前比较火热的两门技术。其中,Kotlin是由Jetbrains研发,后被Google大力扶持,Flutter则是由Google自己独立研发的。从目前Google官方的态度来看,这两门技术都被无限看好,Google也是在它们身上投入了大量的资源。但...

2020-01-17 08:05:15 22985 21

原创 2019年终总结,所有的时间只为做好一件事

又到了一年的最后一天,按照往年的惯例,是时候该写一下今年的年终总结了。另外今年的元旦假期比较特殊,只放周三一天假,因此我们很快又会在2020年见面了。 年终总结主要是回顾过去的一年主要做了哪些事情,那么这一年时间以来,对于我来说最重大的事情莫过于编写《第一行代码 第3版》了。 其实在2...

2019-12-31 07:26:43 9834 22

原创 Android 9.0系统新特性,对刘海屏设备进行适配

其实Android 9.0系统已经是去年推出的“老”系统了,这个系统中新增了一个比较重要的特性,就是对刘海屏设备进行了支持。一直以来我也都有打算针对这个新特性好好地写一篇文章,但是为什么直到拖到了Android 10.0系统都发布了才开始写这篇文章呢?当然,一是因为我这段时间确实比较忙,今年几乎绝...

2019-11-26 08:05:40 14869 19

原创 华为方舟编译器官网正式上线,写一篇你应该知道的科普文章

8月31日,早上9点,华为方舟编译器官网就这么悄然上线了。网上甚至没有大面积的新闻报道,我是隔天才知道的这个消息。 在今年4月份华为P30系列的发布会上,华为首次对外公开了正在自主研发一款开源的统一编程平台,可以大幅提升Android应用程序在手机上的运行效率,称之为方舟编译器,随即在业内引起了...

2019-09-03 07:58:47 12945 30

原创 总是听到有人说AndroidX,到底什么是AndroidX?

本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每个工作日都有文章更新。 Android技术迭代更新很快,各种新出的技术和名词也是层出不穷。不知从什么时候开始,总是会时不时听到AndroidX这个名词,这难道又是什么新出技术吗?相信有很多朋友也会存在这样的疑...

2019-08-26 08:06:59 148444 51

原创 看一看Facebook工程师是怎么评价《第一行代码》的

大家好,我是一名Facebook的工程师,同时也是《第一行代码——Android》的忠实读者。 虽然我最近几年是在国外读书和工作的,但是和很多人一样,我也非常喜欢郭霖的博客以及他写的《第一行代码——Android》。 事实上,这本书在我面试 Facebook 的时候给我提供了很大的帮助。为此,...

2019-08-16 07:56:50 13189 15

原创 Kotlin的面向对象编程,深入讨论继承写法的问题

很多人可能都不知道,或者是已经忘记这件事了,但是我自己承诺过要写的东西,我是不会忘记的。 记得是在去年十月份的时候,我在腾讯课堂做了一场线上直播课程,给大家讲解Kotlin的基础知识。不过当时我并没有做过提前试讲,只是在PPT上规划了一下大体内容,因此时间预估得非常不准确。本来计划是准备直播...

2019-05-20 08:55:57 9664 35

原创 一篇文章带你看遍Google I/O 2019大会

为期三天的Google I/O 2019大会终于在上周落下了帷幕,每年的Google I/O大会都可以说是一场全球的开发者盛宴。不过可惜的是,由于和美国存在时差,I/O大会的直播时间正好是我们这边的深夜,因此对于大多数的人来说可能都只能通过回放的方式来观看I/O大会。另外由于会议全程都是使用的英文...

2019-05-13 07:21:24 18468 30

原创 分享一个我开发的MVVM架构的开源小项目

大家好,今天跟大家分享一个我编写的MVVM架构的开源小项目。话说这个小项目已经提前跟大家预热很久了,也是被不少朋友催了很多次。我之前在公众号里透漏过这个项目能够帮助大家更好地理解MVVM架构,当然我也希望确实如此。虽说这篇文章重点是向大家介绍这个开源小项目的,但是我并不希望就写得如此简单,我准备把...

2019-03-01 07:56:31 25912 39

原创 我的开源项目,趣享GIF源代码已正式公开

大家早上好,猪年春节将至,先跟大家拜个早年。自从上个月发布了我编写了两年之久的开源项目趣享GIF的App版本,不少朋友都一直在博客、微信公众号上催问我什么时候开放源代码?为了能够尽量将源代码公开,我这一个多月也是没少忙活,基本上是每天下班就开始抓紧写代码,尽量能早一天是一天。可能有些朋友不明白,项...

2019-01-29 07:28:50 19723 69

原创 2018年终总结,释放了积压两年的心情

时光如梭,今天是2018年的最后一个工作日,等下次我们上班的时候就是2019年了。2018年你都做了哪些事情,实现了什么目标呢?或许大家也会跟我一样感觉每天都忙忙碌碌的,但却又想不起来这一年到底忙了些什么,那么这个时候写个年终总结就是一个不错的选择。从2013年开始,这已经是我连续第6个年头写年终...

2018-12-29 07:21:02 17600 55

原创 两年沉淀,我的开源项目已上线!

今天跟大家谈谈情怀。 话说我从13年开始写博客写到现在,也写出了一些成绩。成为了博客专家,出版了自己的书,推出了自己的开源框架,还有着自己的微信公众号。我相信有很多朋友可能都是通过我的书或者是我的博客入门和学习Android开发的,但是我自己却始终有一个遗憾,我虽然帮助了许多人学会了开发Andr...

2018-12-14 08:11:04 27369 116

原创 Android数据库高手秘籍(十),如何在Kotlin中更好地使用LitePal

自从LitePal在2.0.0版本中全面支持了Kotlin之后,我也一直在思考如何让LitePal更好地融入和适配Kotlin语言,而不仅仅停留在简单的支持层面。 Kotlin确实是一门非常出色的语言,里面有许多优秀的特性是在Java中无法实现的。因此,在LitePal全面支持了Kotlin...

2018-10-12 07:07:03 14255 43

原创 Android指纹识别API讲解,一种更快更好的用户体验

我发现了一个比较怪的现象。在iPhone上使用十分普遍的指纹认证功能,在Android手机上却鲜有APP使用,我简单观察了一下,发现Android手机上基本上只有支付宝、微信和极少APP支持指纹认证功能,就连银行和金融类的应用都基本不支持,甚至很多开发者都不知道Android系统是有指纹认证的官方...

2018-08-28 07:27:26 37263 57

原创 Android数据库高手秘籍(九),赶快使用LitePal 2.0版本吧

今天很高兴告诉大家一个好消息,LitePal又出新版本了。 算了一下,上个版本1.6.1已经是半年前推出的了,而整个开源项目自2014年推出以来,我已经维护了有四年之久。这四年以来,我不断地完善着LitePal的代码,修复各种大家提出的bug,以及补充各式各样好用的新功能。而今天,时隔半年,Li...

2018-06-11 07:34:42 35801 43

原创 Android通知栏微技巧,8.0系统中通知栏的适配

大家好,今天我们继续来学习Android 8.0系统的适配。 之前我们已经讲到了,Android 8.0系统最主要需要进行适配的地方有两处:应用图标和通知栏。在上一篇文章当中,我们学习了Android 8.0系统应用图标的适配,那么本篇文章,我们自然要将重点放在通知栏上面了,学习一下Androi...

2018-04-17 07:39:11 76093 136

原创 Android应用图标微技巧,8.0系统中应用图标的适配

大家好,2018年的第一篇文章到的稍微有点迟,也是因为在上一个Glide系列结束之后一直还没想到什么好的新题材。现在已经进入了2018年,Android 8.0系统也逐渐开始普及起来了。三星今年推出的最新旗舰机Galaxy S9已经搭载了Android 8.0系统,紧接着小米、华为、OV等国产手机...

2018-03-13 07:56:38 72048 137

原创 2017年终总结,一个不顺心的槛年

2017就这样在不知不觉中又过去了。由于明天大家就都放假了,因此今年的年终总结我只好提前两天发布吧。这已经是我第五个年头写年终总结了,不像我五前年刚来到CSDN开始写博客的时候那么干劲十足,现在的我也到了听听《时间都去哪了》竟会觉得伤感的年纪了。我发现人的心态真的是会随着年龄的变化而产生巨大的变化...

2017-12-21 18:54:22 31180 68

原创 Android图片加载框架最全解析(八),带你全面了解Glide 4的用法

本篇将是我们这个Glide系列的最后一篇文章。 其实在写这个系列第一篇文章的时候,Glide就推出4.0.0的RC版了。那个时候因为我一直研究的都是Glide 3.7.0版本,再加上RC版本还不太稳定,因此整个系列也都是基于3.7.0版本来写的。 而现在,Glide的最新版本已经出到了4.4....

2017-12-19 07:58:32 49947 65

原创 Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能

我们的Glide系列文章终于要进入收尾篇了。从我开始写这个系列的第一篇文章时,我就知道这会是一个很长的系列,只是没有想到竟然会写这么久。在前面的六篇文章中,我们对Glide的方方面面都进行了学习,包括基本用法、源码解析、缓存机制、回调与监听、图片变换以及自定义模块。而今天,我们就要综合利用之前所学...

2017-10-26 18:32:02 34989 43

原创 Android图片加载框架最全解析(六),探究Glide的自定义模块功能

不知不觉中,我们的Glide系列教程已经到了第六篇了,距离第一篇Glide的基本用法发布已经过去了半年的时间。在这半年中,我们通过用法讲解和源码分析配合学习的方式,将Glide的方方面面都研究了个遍,相信一直能看到这里的朋友现在已经是一位Glide高手了。 整个Glide系列预计总共会有八篇文章...

2017-10-09 09:30:05 27061 31

原创 Android图片加载框架最全解析(五),Glide强大的图片变换功能

大家好,又到了学习Glide的时间了。在前面四篇文章的当中,我们已经学习了Glide的基本用法、Glide的工作原理和执行流程、Glide的缓存机制、以及Glide的回调机制等内容。如果你能将前面的四篇文章都掌握好了,那么恭喜你,现在你已经是一名Glide好手了。不过Glide的这个框架的功能实在...

2017-08-29 07:50:56 46236 59

原创 Android图片加载框架最全解析(四),玩转Glide的回调与监听

大家好,今天我们继续学习Glide。在上一篇文章当中,我带着大家一起深入探究了Glide的缓存机制,我们不光掌握了Glide缓存的使用方法,还通过源码分析对缓存的工作原理进行了了解。今天是这个Glide系列的第四篇文章,我们又要选取一个新的功能模块开始学习了,那么就来研究一下Glide的回调和监听...

2017-06-20 07:53:26 56925 81

原创 Android图片加载框架最全解析(三),深入探究Glide的缓存机制

Glide的缓存设计可以说是非常先进的,考虑的场景也很周全。在缓存这一功能上,Glide又将它分成了两个模块,一个是内存缓存,一个是硬盘缓存。 这两个缓存模块的作用各不相同,内存缓存的主要作用是防止应用重复将图片数据读取到内存当中,而硬盘缓存的主要作用是防止应用重复从网络或其他地方重复下载和读取...

2017-05-23 08:37:16 78018 118

提示
确定要删除当前文章?
取消 删除