Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in trouble...

Translator

Translator Translator is a simple translation app based on Tencent Machine Translation API. Only macOs version is available at this moment. ...

Android的clipToXXX

最近处理工作bug的过程中,有一个需求是这样的,两层view,父view包含着子view,然后子view能显示出的区域,要以父view的背景来过滤。没看懂是不是?参考下图:简单说,就是子view的背景显示区域,不能超过父view的背景区域。 clipToOutline经过一番搜索尝试,终于查到,可以通过clipT...

Kotlin Native从初识到放弃

此贴用于记录对Kotlin Native从初识到放弃的过程,因为还不清楚这一平台的开发能力上限多高,不排除用的好,会一直用下去。以下Kotlin Native会用KN来代替。 开始首先,下载IDEA,我这里用的是社区版,社区版已经足以应对大多数情况了。然后,新建一个KN的项目。IDE会自动生成hello worl...

难忘的bug

此贴是为了记录日常开发过程中,遇到的一些让人难忘的bug。 MediaPlayer: surface has already been released kotlin ?.的陷阱与缺陷 surface has already been released场景:MediaPlayer做跨进程的视频播放发现的,由于...

Intent.FLAG_ACTIVITY_***解密

最好先看这一篇[Launch Mode](/android/LaunchMode.html)。 我们将重点针对FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_CLEAR_TASK、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_SINGLE...

发布Android库到MavenCentral教程

JCenter已经宣布,即将在2020年5月1日,停止新的库的提交,在2022年2月21号以前,连库的解析服务也停止,所以,把以前的库或者未来的新库替换到MavenCentral是当务之急了。 我参考的教程来自以下两篇文章: Publishing your first Android library to Mav...

IRouter——自己手撸一个路由框架

现在最流行的路由框架应该是阿里的ARouter,这几乎是组件化应用的必备了。但是ARouter用起来稍微有一点不爽,不爽在以下两点: 没有一个规范化的api式的调用方式:项目大了,调用路由的方法分布在项目各处,难以查找; 对startActivityForResult支持不够友好:按照传统方式,在onActiv...

LiveEventBus源码分析

不再分析了,理解了LiveData后,不难理解这个框架。 阅读本文前,请先阅读[《Jetpack之LiveData源码分析》](/源码分析系列/LiveEventBus源码分析.md)。因为LiveEventBus是基于LiveData构建的。 源码地址:LiveEventBus 典型用法...

Glide源码分析与自我实现(二)——缓存与BitmapPool

本文基于Glide 4.11.0 参考文章:Glide 源码分析解读-缓存模块-基于最新版Glide 4.9.0 注意:由于版本差异问题,本文有些部分与参考文章有差异。 缓存模块是Glide中非常重要的部分,Glide图片加载的高效性,几乎有一半功劳都在这里了。 一般来说,Glide有三级缓存,就是内存缓存、...