0%

翻译 By Long Luo

原文链接:Introducing Smoothie

smoothie

Pattrn UI中的很大一部分是在滑动时从云端获取图片列表。所以我花了相当长的一段时间去调试,以获得滑动时的体验尽可能的流畅。在过去的几周里,我一直在试图解耦代码,完成了一个很小的库:Smoothie

***Smoothie*提供了一个简单的API来异步加载ListView/GridView的项目,以和UI线程分离。它做了所有你所期望做的事情,加载项目变得可见,取消要求回收的View对应的项目等。但它所完成的还不止这些。

**Smoothie手势识别:在Fling手势时,它会必须发起加载项目请求;在滑动列表时,当你的手指按下时,将会启用增量加载项目请求。此外,它支持当前屏幕外项目预加载功能,当你滑动时,可以减少加载占位符类型的项目数。说穿来,***Smoothie***使用了一个支持可以阻塞队列动态优先执行的的线程池。在屏幕上滑动时,屏幕外即将可见的项目加载请求将动态的获取更高的优先级。

那么,怎么使用它呢?很简单:

阅读全文 »

翻译By Long Luo

原文链接:Performance Tips for Android’s ListView

译者注:
1. 由于这是技术文章,所以有些词句使用原文,表达更准确。
2. 由于水平有效,有些地方可能翻译的不够准确,如有不当之处,敬请批评指正;
3. inflation这个词一直找不到特别好的中文翻译。

ListView如何运作的?

ListView是设计应用于对可扩展性和高性能要求的地方。实际上,这就意味着ListView有以下2个要求:

  1. 尽可能少的创建View;
  2. 只是绘制和布局在屏幕上可见的子View。

理解第一点很简单:通过布局xml文件在创建View并显示是很昂贵耗时耗资源的操作。尽管布局文件已经编译打包成了二进制形式以便于更高效的语法解析,但是创建View仍然需要通过一个特殊的XML树,并实例化所有需要响应的View。

ListView通过回收一些不可见的Views,通常在Android源码中称为“ScrapView(废弃的View)”来解决这个问题。这及意味着开发者只需要简单的更新每行的内容而不需要针对每个单独的行的布局来创建View。

为了实现第二点,在我们滑动屏幕时,ListView通过使用View回收器来增加低于或者高于当当前窗口的Views,并当前活动的Views移动到一个可回收池中。这样的话,ListView只需要在内存中保持足够多的Views去填充分配空间中的布局和一些额外的可回收Views,即使当你的Adapter有上百个items的适合。它会使用不同的方法去填充行之间的空间,从顶部或者底部等等,具体取决于窗口是如何变化的。

下面这个图很直观的展示了当你按下ListView的时候发生了什么:

ListView

通过上述介绍,相比我们已经熟悉了ListView的这种机制,让我们继续前往技巧部分。正如上述介绍的,在滑动时,ListView通过动态的创建和回收很多View,实现了尽可能地让Adapter的*getView()轻量。所有的技巧都是通过多种方法让getView()*更快。

阅读全文 »

By Long Luo

在一个Android应用中,Layout是开发中的一个很重要环节,Layout是组成UI不可缺少的一部分。

Android UI核心类

在Android应用构建UI的方法有以下几种:

  1. 单纯使用JAVA代码
  2. 使用XML完全定义界面
  3. 结合使用两者,在XML中定义,在JAVA中引用和修改

Android SDK中关于UI的核心类:

Android.view.View和android.view.ViewGroup

android中的常见UI控件均会扩展View和ViewGroup其中有一部分是专门用来控制其子View位置和大小,这些类我们称为布局管理器。

ViewGroup

  1. LayoutParams是ViewGroup内部类,包含了ViewGroup的布局参数,用来告诉它们的父类它们想怎么在父类中布局(大小和位置),所有在LayoutParams及其子类中定义的布局参数在xml中定义都是通过layout_***定义的。

LayoutParams只提供了两个参数设定:

layout_width  元素的高度(fill_parent | match_parent | wrap_content | *dip)
layout_height 元素的宽度(同上)		 		   
  1. MarginLayoutParams也是ViewGroup一个内部类,它继承了LayoutParams类,用来扩展LayoutParams的属性,设置参数。

MarginLayoutParams添加了四个参数设定:

layout_marginLeft       相对于本元素左边界的偏移
layout_marginRight     	相对于本元素右边界的偏移
layout_marginTop,    	相对于本元素上边界的偏移
layout_marginBottom  	相对于本元素下边界的偏移

以上的两种Layout参数,所有布局中的子ViewGroup和子View都可以使用

阅读全文 »

By Long Luo

最近没怎么写东西的缘故是因为担心自己看的东西太少,读的东西太少,而想的太多。2014年的第一月也很快就要过去了,而我还没有对自己过去的一年里做出一点小结,就在这里随便扯几点吧!

比如我的大学好友雷大才子,精通几门外语,学富五车,不仅文章写得好,又懂音乐,还会写诗作画,更是一名勤劳的Blogger,每次看他的博文,总能学到很多东西。

一、Destiny

年轻的时候我看到网上一些晒东晒西的帖子,总想:“等我到了他那个年纪,应该比TA出色的多吧!”

但在工作了几年之后,我不得不认识到:和一些人相比,一方面由于家庭草根身份出身的巨大差距,另外一方面之前20多年的积累,导致除非出现巨大的机遇,否则人生绝无逆转的可能。关于这种巨大的差距,包括眼界、资源、机遇、圈子等,在第三节里面我会再认真的阐述。

被认为是20世纪最有影响力的经济学家之一的Frank H. Knight有个著名的观点:“决定一个人富有的三个条件,一是出身,二是机遇,三是努力,而这三者之中,努力是最微不足道的。

我更喜欢英语的Destiny,因为让我想起一个词:Destination,我想一个人的命运也就意味着这个人一生中最终能到达什么样的地方。一个人就像森林里的一棵树苗,最初你长在什么地方,加上你的天性,除非特别的机遇,你能够长到多高是可以预见的

我很羡慕凤姐,有其是我这种间歇性缺乏自信的人,更需要学习凤姐的自信和强大的内心,相比漂在大城市的广大千千万屌丝蚁族来说,凤姐完成了大改变,不仅不用再重复父辈的贫困,很大程度的改变了社会地位,也不需要像天朝这种Hard模式活动这么累了。

即使凤姐不去USA,比起绝大多数打工仔打工妹来说,凤姐上电视台,接受各种采访,人生经历也足够丰富。

2013的经历也许足够丰富,只是自己缺乏总结,导致又被同样的石头绊倒了2次。是时候好好回顾下了,做出改变。

除了老婆孩子不能变之后,其他的统统都要变。
									---李健熙
阅读全文 »

By Long Luo

又是一个周末,说明这一周又飞速的过去了,我的时间沙漏的沙子实在是过的太快了,尤其是在这个年龄,几乎是哭着送走每一天的

上午起床后想把WordPress Android客户端自己编译出来的,下载好了之后,可是编译遇到大问题,现在还没用解决,希望再花一个小时可以搞定。

最近想做一个项目:主页和博客应用。可以做到展示我写的博客,给自己2周的时间,我相信我可以完成的。

这一周发生了很多事,周五晚上的年会,啥大奖都没中。

我希望下周可以把**《暗时间》**这本书看完,这本书确实写的非常好,相见恨晚。

下午3点的时候去了世界之窗附近的一家音乐培训机构,体验了45分钟的吉他教程,收获相当大。吉他老师保养的非常好,33岁,但看起来也就20几岁的样子,香港出生,但现在已经移民到枫叶国去了。

阅读全文 »

By Long Luo

旅行,就是从自己活腻的地方跑到别人活腻的地方去。
						         ---题记

来深已经4年多了,但是东部华侨城一直没去过,一方面是个人一直对一些人造的风景不是特别感冒,然后一方面就是远加门票价格高。部门组织了今天去东部华侨城一日游的活动,于是就顺便游玩了下OCT,在此记录下感想。

早上6:30爬起来,洗漱完毕,看了下天气,7°~15°,温度不高也不低,但是自己也没有比平常多穿衣服,也确实也没啥衣服,一直都是那几件衣服,再冷的天气都那样。最后证明今天不是游华侨城的好日子。

好大的风,一天的时间就把我的手吹裂了,护手霜需要get。

一、人造的风景

一直以来,喜欢的风景,要么是各大城市的中心区,不管是繁华的商业区,还是车水马龙的主干道,抑或是鳞次栉比的商店,当然少不了美味小吃;要么就是没有人工雕琢痕迹的景区公园,比如九寨沟、雪山、森林公园、海滩等。国内很多景点都把原有的文物古迹给拆了,然后复刻一个,简直是令人发指啊,完全是一堆不懂艺术的公园在胡搞啊!

对于OCT这种定义在休闲娱乐的主题公园来说,恰恰需要在宣传时宣传其人造风景,比如大峡谷什么亚洲第一大、第一长、第一快等等。没去过茶溪谷,但是对于大部分没去过欧洲旅游的普通大众来说,也是一种廉价体验欧洲小镇的好途径。

反正对于我来说,惊险刺激性的体验一次就够了,除非特殊原因,不会想参加第二次。

阅读全文 »

By Long Luo

While I was watching the live NBA finals, the PM gave me a call said that there were two emergency problems needed to handle.

As I had lunch in the nearby restaurant, I have to go to office to handle the problems.

After I completed the problems at about 4 PM. I decide to watch the movie since I have 2 movie tickets left whose deadline is the end of the month. However, there were seldom films in the Pacific Cinema. I made a choice to watch the Switch which starred by Andy Lau, Chiling Lin and Jingchu Zhang.

In terms of plot, action and scripts, the movie is really a tragedy. Its best comes the fascinating Chiling Lin and other charming actress with some splendid view. The chiling lin shows serval models with kinds of roles in the movie. The jingchu zhang with some girls are also attractive.

That is it.

—By Long Luo 5th, July, 2013 @Shenzhen

By Long Luo

南国风光,
千里风吹,
万里雨飘。
望行人大树,唯有低头。
街道上下,顿成滔涛。

风挟巨浪,
雨打狂沙,
旅行目标皆取消。
最强风,
问国各路航班,
何时飞高?

人力如此之渺,
徒然闲坐凭栏眺。
叹年华渐逝,
二十有六。
未有寸功,
无人可抱。

双亲已老,
匹马赴深,
何时回乡让其傲?
勤学习,
多总结思考,
莫负今朝!

阅读全文 »

NOTE: This is Simplelified Chinese Edition Document of Markdown Syntax. If you are seeking for English Edition Document. Please refer to Markdown: Syntax.

声明: 这份文档派生(fork)于繁体中文版,在此基础上进行了繁体转简体工作,并进行了适当的润色。此文档用 Markdown 语法编写,你可以到这里查看它的源文件。「繁体中文版的原始文件可以查看这里 。」–By @riku

注: 本项目托管于 GitCafe上,请通过"派生"和"合并请求"来帮忙改进本项目。

Markdown 语法说明 (简体中文版) / (点击查看快速入门)

阅读全文 »

By Long Luo

一、RSA说明

***RSA***公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。

RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

二、RSA算法实现

RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。

阅读全文 »