- 博客(19)
- 资源 (4)
- 收藏
- 关注

原创 Hash算法总结
Hash是什么,它的作用先举个例子。我们每个活在世上的人,为了能够参与各种社会活动,都需要一个用于识别自己的标志。也许你觉得名字或是身份证就足以代表你这个人,但是这种代表性非常脆弱,因为重名的人很多,身份证也可以伪造。最可靠的办法是把一个人的所有基因序列记录下来用来代表这个人,但显然,这样做并不实际。而指纹看上去是一种不错的选择,虽然一些专业组织仍然可以模拟某个人的指纹,但这种代价实在太高了。
2017-04-18 11:07:21
123334
25
原创 Android启动保护模式实践
一般初始化app的第三方类库或者so库操作都会放在Application的onCreate()方法里,因为此时Application才算创建完成,在这里初始化是自然而然的。
2016-09-18 13:36:20
1591
原创 全局实现点击TitleBar滚动到顶部
前几天产品拿着Android App问我们为什么他点击通知栏或者TitleBar都不回滚动到顶部,这不是系统自带的么?这还真不是,苹果是自带功能,而有些安卓厂商也有自实现(例如锤子或魅族?),但毕竟不是Android系统自带,所以我们就考虑在我们应用实现此功能。与系统功能不同,我们是在应用里的TitleBar里实现点击滚动到顶部的,单界面实现这个功能并不...
2016-08-25 21:18:09
1535
翻译 WebP的工作原理
说到互联网的图片格式,JPG一直以来都是标准格式。然而在2013年,Google(和一些开源贡献者)创建了一种新的图片编解码算法,叫做WebP,它旨在同样的的图片质量下比JPG压缩得更小。
2016-07-13 21:33:48
5196
翻译 更小的VertorDrawable
如我们所见,矢量图(VertorDrawable)可以很好的减少我们APK的大小。它只需要一个文件就可以解决不同分辨率显示图片的问题,不像普通图片那样需要切几套图。但不得不说,它还可以更小。
2016-07-13 21:31:49
859
翻译 VectorDrawable的工作原理
我们已经讨论了Android世界里两种应用最广泛的图片格式(JPG&PNG)了,不放值得注意的是,实际上还有一些压缩级别是这两种格式算法无法达到的。说到这,我们得先停止对图片概念的想象,多了解一点算法。栅格化图片
2016-07-03 18:16:11
1896
转载 减少 JPG 文件大小
减少 JPG 文件大小如果你是一个现代的开发者,无论你是网站开发、移动开发、还是一些奇怪的系统管理程序,你一定会使用 JPG 文件。JPG 是你工作的一部分,并且对于用户体验有着极其重要
2016-06-28 22:04:46
7635
翻译 JPG的工作原理
JPG格式是1992年出现的最先进的图片压缩技术之一。此后,它就成为互联网图片的主力。这当然和JPG背后的技术有关,JPG的工作原理异常复杂,它需要深入理解人眼是如何调整对色彩和图像边缘的感知。在研究这些
2016-06-28 21:45:39
10811
5
翻译 Android的APPT工具会优化PNG吗?
AAPT工具可能会在构建期间自动对res/drawable/文件夹下的图片资源做无损压缩。例如,一张真彩色(RGB)的PNG
2016-06-07 21:09:04
1080
翻译 减少PNG图片大小
我在谷歌工作的其中一个好处是可以浏览很多的Android程序,看看这些程序有哪些共同的地方可以优化。后来我注意到一个可怕的趋势:越来越臃肿的PNG文件。正如上一篇文章说的,PNG是一种很屌和可扩展的图片格式,图片
2016-06-06 22:11:17
5408
翻译 PNG格式图片原理
便携式网络图型( Portable Network Graphics [PNG])在过去几十年已经变成App开发里重要的组成部分。它广泛的运用在游戏开发、网页开发和Android开发里,但也可能被大量的滥用。
2016-05-27 15:38:02
25543
原创 遇到一个代码混乱不堪的Android项目该怎么办?
好久没写博客,这段时间换了工作,有很多事情需要学习和处理,现在终于有点时间来总结这段时间所做的事情。新东家是一家创业不久,正处于上升期的公司...
2015-10-25 13:34:11
2883
1
原创 从源码带看Volley的缓存机制
Volley已默认使用磁盘缓存DiskBasedCache内部结构它由两部分组成,一部分是头部,一部分是内容;先得从它的内部静态类CacheHeader(缓存的头部信息)讲起,先看它的内部结构...
2015-05-24 21:03:01
5562
翻译 处理Android程序运行时的配置变化
Android程序在运行期间设备的配置是可能发生改变的(例如屏幕的方向,键盘可用性,和语言等)。当这些配置发生变化时,Android会重启正在运行的Activity(先调用onDestory(),紧接着调用onCreate())。这个设计是为了让你的程序在配置发生变化时,使用不同的资源自动去适配新的配置机器。
2015-04-26 21:23:11
2128
原创 仿知乎安卓客户端滑动删除撤销ListView
新版的知乎安卓客户端有一个有趣的功能,就是在一个item里,向右滑动时整个item会越来越透明,滑动到一半时,整个item就不见了,放开手指就是删除,删除后还可以撤销,第一次看见这个功能觉得很有意思,用了几天业余时间,我仿造里一个,效果如下:那下面就来想想看怎么实现的...
2015-03-15 17:08:04
2437
原创 请注意,Volley已默认使用磁盘缓存
之前学习volley框架,用ImageLoader可以设置内存缓存,用一个LruCache,就可以避免OOM且图片读取速度快,爽极了。后来想,如果只是内存缓存的话,那退出程序或者内存不够大了,缓存的图片不就被清理掉了,这样每次启动程序就又得去网上下载图片,流量好贵的。于是找到了磁盘缓存框架DiskLruCache,这是一个挺著名的开源框架,网易云阅读等APP之前都用它来缓存图片,关
2015-01-26 21:24:02
6111
2
原创 《代码大全》读后感
最近买了几本经典编程书,有《head first 设计模式》《人月神话》《程序员修炼之道》《代码大全》,《代码大全》是第二本看完的。 看的期间不断有所悟,书中多处让我惊讶「原来是这样子」。不过由于工作之余时间有限,这本大著看了快两个月才完了,现在仅凭印象把之前悟到的写下来,算是总结。 如果要用一句话概括《代码大全》的话,我以为是「为人写代码,而不是机
2014-11-08 16:01:07
2397
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人