首页
Shen Lin
取消

使用 Statically 配合 Github 做一个带 CDN 的图床

Jekyll 写博客有个好处,就是可以直接调用 assets 下面的图片,但是部署到 Github 之后,由于众所周知的原因,在国内的访问速度可能会被图片加载拖慢,这个时候套上 Statically 可以加快访问速度,啪一下很快啊,一个图床就诞生了。 使用方法 把文章里要引用的图片,假设叫 screenshot.jpg,放到网站根目录的 assets/img/posts 。...

Apple Silicon Mac 找不到 jekyll 以及 webrick 错误的解决方案

周末入了一台 M1 芯片的 2020 款 Macbook Air,这两天陆陆续续把各种环境都搭得差不多了。 Ruby Ruby 方面,如果你使用 homebrew 安装,脚本会自动识别你的机器,我得到的是 3.0.1p64 版本,看起来这个版本已经是完整支持 Apple Silicon 的版本了。 $ ruby -v ruby 3.0.1p64 (2021-04-05 revision...

2016 Macbook Pro 13' 安装 AORUS GTX1080 8G Gaming Box 完整教程

最近为了吃鸡入了一块 AORUS GTX1080 8G Gaming Box,本来打算上 Dell 的 外星人Alienware ALPHA(阿尔法)R2,可是实在是太太太太太贵了,再加上当时买这台 Macbook 的时候我升到了 i7 + 16G RAM,感觉也没必要为此新买一台电脑,因为理论上来讲目前的配置,只差一块给力的显卡就能顺利吃鸡,于是就有了接下来要做的。 前言 因为苹果的一...

Android Architecture Components 入门(一)—— Android Room Library 简单使用

Google 在今年的 IO 大会重点介绍了它们最新推出的 Android Architecture Components,其中最重要的一个就是 Room。在 Ormlite、GreenDao,甚至 Realm 大行其道的今天,Google 自己也总算造了一口锅自己背上了(只求 Google 日后不要轻易弃坑)。 这篇文章没有太多深奥的源码分析,因为我下午看完官方文档之后,还是觉得有点复杂...

WDMyCloud 3T NAS 添加迅雷远程下载(Mac 用户)

WDMyCloud 买了将近一年时间了,本来准备只给 Mac 做 Time Machine 备份用的,奈何 3T 空间实在撑不满,多着也是浪费,再加上平时白天上班,家里带宽闲着也是闲着,于是今天折腾了一下给他添加了迅雷远程下载功能,亲测可用。 首先需要说明的是,网上大部分教程抄来抄去,几乎全是 Windows 下操作的版本,其实对于 Mac 用户而言,完全不用 PuTTY,因为 Mac 自...

解决 DialogFragment show() 方法导致的 IllegalStateException

问题 钱包 2.0.0_beta 版本上线之后,我们给新获得理财权限的用户增加了一个欢迎对话框。按照 Google 官方关于开发对话框时的指导,钱包把所有会用到的 Dialog 全部采用 DialogFragment 进行了封装,并且放到了一个包下进行管理。 DialogFragment 的用法非常简单,而且内部封装好了show() 方法,很容易就可以把对话框展现出来,就像这样 pub...

关于 AsyncTask 的常见问题(Common questions on AsyncTask )

本文由 Lin Shen 译自 Common questions on AsyncTask,原文作者 Colt McAnlis, 转载请务必注明出处! 关于 AsyncTask 的常见问题 我在 Google 工作最喜欢的一点,就是把一些比较复杂的概念,分解成一小部分一小部分,这样就可以确保每一位工程师都能清楚地理解。在我最近的《Android 性能优化典范》视频中,我提到了...

Android Overscroll Viewpager

Project Home https://github.com/shawnlinboy/android-OverscrollViewPager/ Description 最近项目里接到一个需求,效果如下: 简而言之,需要在 ViewPager 滑到最左或者最右的时候,仍然支持可滑动。 具体就是根据是在 ViewPager 最右边向右滑了,还是在最左边向左滑了,做出响应。这就要求对...

使用 tools:node 替换 AndroidManifest.xml 中的节点

今天下班前被组里的小伙伴问了一个问题: 如果一个工程需要定义两个 flavor,每个 flavor 需要用一份单独的 AndroidManifest.xml,应该怎么配置? 这个问题,熟悉 gradle 的同学应该是能轻松搞定的。我们知道,gradle 在编译 apk 的时候支持给每个不同的 flavor 指定 src、res、甚至 AndroidManifest.xml 文件都...

Best Practise for Updating UI on AsyncTask

好久不更新博客,上来讲一下最近踩道的一个坑,顺便感觉可以普及一下在 AsyncTask 更新 UI 时的正确姿势 最近我负责的一个模块,后台数据统计总在报 Glide 加载图片的时候报错导致停止运行,堆栈大概是这个样子的: java.lang.RuntimeException: Unable to destroy activity {MY PACKAGE NAME}: java.lang...