Jaqen's Blog

Jaqen's Blog

True mastery of any skill takes a lifetime

Android 屏幕适配笔记
基本概念 in 英寸,手机屏幕的物理尺寸。1 英寸等于 2.54cm。如果说手机屏幕是 5 寸,表示手机屏幕对角线长度为 5X2.54=12.7cm。 px 像素,英文单词 pixel 的缩写,屏幕上的点。常见的分辨率 320x480、480x800、720x1280、1080x1920 指的就是像素。 dpi 每英寸包含的像素个数,dots per inch 的缩写。比如 320X480 分辨率的手机,宽 2 英寸,高 3 英寸, 每英寸包含的像素点的数量为 320/2=160dpi(横向)或480/3=160dpi(纵向),160就是这部手机的dpi。 density ...
自动更新 hosts 实现科学上网
众所周知,在国内上 Google 查阅资料非常困难。于是出现了一些免费的工具和 VPN 服务帮我们访问,但要么是有流量限制,要么需要收费,而且有些 VPN 代理的速度也不是很快。 更改 hosts 方法实现科学上网是最简单可行的方式,但 hosts 会经常被封,每次手动更新很麻烦。所以,下面我介绍一个自动更新 hosts 的小工具,可以很方便的访问 Google。 1、首先安装 SwitchHosts,SwitchHosts 是一个用于快速切换 hosts 文件的小程序,非常实用,其强大之处在于它可以自动关联远程 hosts,自动更新。下载地址:https://oldj.github.i...
设计模式之工厂方法模式
简单工厂模式提供了专门的工厂类用于创建对象,实现了对象的创建和使用分离。但工厂类集中了所有产品对象的创建逻辑,职责过重;此外,如果增加新产品,需要修改工厂类的源代码,违背开闭原则。 工厂方法模式则可以很好的解决这一问题。在工厂方法模式中,不在提供统一的工厂类创建所有的产品对象,而是针对不同的产品提高不同的工厂。 模式结构图如下: 共包含以下 4 个角色: Product:定义产品的接口。也就是产品对象的公共父类。 ConcreteProduct:具体产品类,与具体工厂一一对应。 Factory:抽象工厂接口。它是工厂方法模式的核心。 ConcreteFactory:具体工厂类,返回一...
Chrome 插件推荐
近些年来,在众多浏览器大战中,Google 的 Chrome 浏览器的市场份额位居首位,而且依然呈现高速增长趋势。Chrome 浏览器的优点不必多言,谁用谁知道。 这里主要推荐本人常用的 Chrome 插件,能够帮助你更加便捷高效的使用 Chrome 浏览器。 1、Checker Plus for Gmail™ 这个插件的强大之处在于你无需打开 Gmail ,即可收到桌面邮件通知,方便地查看、撰写或删除邮件。 2、划词翻译 支持谷歌、百度、有道、必应四大翻译和朗读引擎,可以方便的查看、复制和朗读不同引擎的翻译结果。再也不用担心读不懂英文资料了。 3、OneTab 在 chrome ...
朴树《猎户星座》
朴树终于出新专辑了。专辑的名称叫《猎户星座》。4 月 28 号零点在网易云音乐预售数字专辑。 我第一次听到朴树的歌,是在 04 年,电视上播放丰田威驰的广告,放的就是朴树的 「Colorful Days」,当时觉得 MV 里的朴树酷极了。后来高中在学校,每个礼拜二和礼拜四下午放学后,校广播都会放 「Colorful Days」和 「生如夏花」。再后来上大学来到城市,耳边没有消失过的,总是他的歌。 这十多年,朴树一度沉寂,从公众视线中消失。我们这些歌迷一直都在等他,终于有幸看到他归来,热泪盈眶。 今天零点,新专辑第一首,「清白之年」公开,我在零点准时点开,歌曲平缓如徐徐微风,如潺潺流水从...
设计模式之简单工厂模式
简单工厂模式将有关创建和初始化产品对象的工作搬到一个工厂类中,客户端只需要根据参数调用工厂类的静态方法即可使用工厂类创建的产品对象,无需承担对象的创建工作。这样做的好处就是将对象的创建和使用分离开来,能够防止用来实例化一个类的数据和代码在多个客户端类中到处都是,利于系统维护。 模型结构图如下: 其中包含以下几个角色: Factory(工厂):负责实现创建所有产品实例的内在逻辑。提供了静态方法便于外界直接调用。 Product(抽象产品角色):工厂创建所有产品对象的父类,封装了所有产品对象的公有方法。 ConcreteProduct(具体产品角色):每一个具体的产品对象,需要继承抽象产...
设计模式之单例模式
什么是单例模式?单例模式是一种对象创建型模式。所谓创建型模式就是将对象的创建和使用分离,在使用对象时无需关心对象的创建细节,从而降低系统的耦合度,使得设计方案更易于修改和扩展。 单例模式三个要点:(1)某个类只能有一个实例。(2)必须自行创建这个实例。(3)必须自行向整个系统提供这个实例。 饿汉式单例类类加载进来就直接实例化对象,无需考虑多线程安全问题,但是浪费资源严重。 12345678910public class EagerSingleton { // 类加载进入内存就创建单一的 instance 对象 private static final EagerSingleto...
博客配置更新
今天,将博客主题由 next 换成了 scribble,关于博客的安装和 next 主题的配置详见 GitHub Pages + Hexo 搭建博客。 然后对博客添加了些许功能。 添加网易云跟帖由于多说评论即将停用,所以添加了网易云跟帖作为博客的评论系统。首先登录网易云跟帖,然后进入后台管理,填写站点信息,站点网址处需填自己申请的域名,填写 github.io 域名会提示站点名称或URL已经存在。然后点击获取代码,复制通用代码,拷贝至需要放置评论的位置即可。这里要注意本地服务器预览不到效果,部署后,才能看到评论。 绑定独立域名购买域名首先在万网上购买域名,当然也可以去 GoDaddy ...
2017 第一季度
今天是个好日子,与天气无关。 中午正准备午休,忽然收到吉林大学两位专家对毕业论文的盲审评价。 “论文选题与本学科当前发展与经济建设、社会发展有较为密切的联系,有一定的理论意义。运用的理论知识、研究方法和实验手段符合实际情况,理论论证较严密,实验设计较合理,方法和数据较为正确可靠。反映出作者较好地掌握了基础理论和专业知识,反映出作者具有独立从事科研工作的能力。论文观点正确,条理性好,层次清楚,有逻辑性,文笔较好,文字图表较规范。论文达到了硕士论文水平。同意参加论文答辩。” “选题有一定的理论意义和比较好的应用价值,有一定的创新性。 创新点明确,对学科相关知识有一定的了解和把握,写作比...
Android Activity 生命周期
本文目的在于详细总结 Activity 的生命周期。 返回栈Android 的 Activity 是可以层叠的,以返回栈(Back Stack)存放 Activity。默认情况下,当我们启动一个活动,它会在返回栈中入栈,处于栈顶的位置。当我们按下返回键或者调用 finish() 方法销毁一个活动,处于栈顶的活动会出栈,前一个入栈的活动会重新处于栈顶,用户看到的永远是栈顶的活动。 Activity 四种状态运行:活动位于返回栈的栈顶,对用户可见。 停止:该活动被另一活动完全遮盖,它对用户不可见,不再处于栈顶。在系统需要内存时可能会被终止。 暂停:当一个活动不再处于栈顶,但此活动仍然可见。也...
avatar
Jaqen Ng
True mastery of any skill takes a lifetime