自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

light_sky的专栏

GitHub:https://github.com/lightSky,微博:http://weibo.com/lightSkyStreet

  • 博客(101)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 进入Material Design时代

进入Material Design时代关于Material Design是5.0系统的重头戏,是一种具有可视化,交互性,动效以及多屏幕适应的全面设计。并逐渐成为一种设计标准,本篇文章通过对2篇官方文章的翻译,全面介绍Material Design的所有特点以及其实现和兼容,并整理了十多个在GitHub上相关的开源库,帮助你更好更快的实现Material Design。如果你正在学习或者即将学习并应用Material Design设计风格,那么这篇文章将对会帮助你更全面的理解它。

2014-11-01 18:27:09 24584 13

翻译 GreenDao官方文档翻译上

笔记摘要:上一篇博客简单的介绍了

2014-04-24 22:27:53 14332 9

原创 Google Developing for Android系列文章翻译

前一段时间,Google官方发布了Developing for Android系列文章,共7篇,涉及内存,性能,网络,存储,framework,都是Android中比较重要的部分,这些点对于如何开发一个好的App非常重要,周末学习了,就全部翻译了出来,非常棒的文章,绝对值得细细品味,在另一个博客上,有翻译不准确的地方欢迎大家指出:http://www.lightskystreet.com/arch

2015-06-09 14:16:40 1269

原创 个人博客新站点

个人新站点 http://www.lightskystreet.com/这里的文章以后就不更新了,更多文章请移步新站点。

2015-02-15 07:58:20 1157

原创 开源项目Philm的MVP架构分析

请移步个人新Blog站点:http://www.lightskystreet.com/2015/02/10/philm_mvp/

2015-02-10 17:39:25 2400

原创 ViewPager动画详解

前言前两天看到鲍永章分享的Great animations with PageTransformer以及农民伯伯分享的Create ViewPager transitions 文章,都是通过ViewPager来实现酷炫的动画,而现在的App中ViewPager的动画使用也非常的广泛。正好最近一直研究动画,那么就趁热打铁,分析一下相关的开源库吧。本篇文章介绍的ViewPager动画,

2015-01-12 09:46:58 4884 2

原创 Android View绘制机制

前言:该篇文章来自一个开源项目android-open-project-analysis,该项目的目的是分析优秀开源项目的实现原理。在此项目中我分析的是ViewPagerIndicator ,其中涉及到了View的绘制机制,因此抽取出来,以便后期的其它Buddy分析类似的项目时可以直接引用,就不必再重复讲述这一块内容了。相同的,该开源项目单独建立了一个tech目录,用于放置那些公共的知识点,V

2015-01-12 09:26:06 2900 2

原创 开源一个基于ViewPager的无限轮循动画指示器

在对自定义控件还模糊的时候,看到ViewPagerIndicator和android-auto-scroll-view-pager,决定自己做一个轮循效果的指示器。项目放在GitHub很久了,但一直都不完善,前段时间看到了AndroidImageSlider和CircleIndicator项目,又将自己的项目在功能性和健壮性上充实了下,目前还不支持直接从Gradle和Maven引入。效果图:

2015-01-11 22:47:09 6150 23

原创 Property Anim详解

Property Animation官方说了Property Animation是一个很强劲的动画框架,几乎可以为所有的事物加上动画效果。你可以定义一个动画去改变任何对象的属性,不管该对象是否在屏幕上,都可以进行绘制。一个属性动画在某一个时间段,改变的是一个对象的一个属性值(一个对象的一个字段)。在属性动画系统,为动画提供了以下属性:Duration:

2014-12-04 13:36:05 10305 18

原创 传统View动画与Property动画基础及比较

前言:关于动画方面的知识也整理一段时间了,如题,这篇文章简单的介绍了View和Property动画的概念,如何在项目中创建资源文件,以及如何在代码中使用它们,本次整理动画的重点放在了Property动画上,下一篇文章将详细的分析Property动画几个重要的类,并分析几个开源库的实现,敬请期待。View anim (Tween/Frame)Tween动画

2014-12-03 11:22:40 2539

翻译 AppCompat V21:将 Materia Design 兼容到5.0之前的设备

AppCompat V21:将 Materia Design 应用于5.0之前的设备android 5.0今天发布。在很多很棒的更新中,包括了新的UI组件和创建 Material Design 主题的能力。为了使你能够将新的设计中更新到旧的系统中,我们同时更新了包含 AppCompat 的support libraries。在这篇文章中,我将总体说明一下appCompat的新特性并

2014-10-18 17:06:25 24613 5

转载 Activity生命周期详解及最佳实践

根据你的activity的复杂度,你也许不需要实现所有的生命周期方法。然而,你需要知道每一个方法的功能并确保你的app能够像用户期望的那样执行。如何实现一个符合用户期待的app。你需要注意下面几点:当使用你的app的时候,不会因为有来电通话或者切换到其他app而导致程序crash。当用户没有激活某个组件的时候不要消耗宝贵的系统资源。当离开你的app并且一段时间后返回,不要丢

2014-09-25 10:41:46 2141

翻译 Android硬件加速

http://developer.android.com/guide/topics/graphics/hardware-accel.html硬件加速Android 3.0 (API level 11), 开始支持所有的View 的canvas都会使用GPU,但是硬件的加速会占有一定的RAM。在API >= 14上,默认是开启的,如果你的应用只是标准的View和Drawabl

2014-09-01 09:37:54 13905

转载 自定义View步骤--来自GitHub组织android-training-course-in-chinese

Android的framework有大量的Views用来与用户进行交互并显示不同种类的数据。但是有时候你的程序有个特殊的需求,而Android内置的views组件并不能实现。设计良好的类总是相似的。它使用一个好用的接口来封装一个特定的功能,它有效的使用CPU与内存,等等。为了成为一个设计良好的类,自定义的view应该:遵守Android标准规则。提供自定义的风格属性值并能够被A

2014-08-22 10:44:20 2252

原创 Android Studio 简单介绍和使用问题小结

google在2013的I/O开发者大会上引入的该开发工具。现在是0.5.8版本。现在github的很多项目都使用了Android Studio开发,所以如果你还用Eclipse,就需要把整个项目拆分,然后在工程中include依赖包,是非常费事的,有时候弄了半天还不一定能成功导入。而且Android开发者工具的未来的趋势一定也是转向Android Studio。所以种种原因,不得不学

2014-05-17 22:04:53 51065 7

原创 获取设备唯一ID的几种方式

博客摘要:很简单,就是获取手机的A

2014-05-05 23:19:01 52168

翻译 SharedPreferences最佳实践

博客摘要:该文章是我在Android W

2014-04-26 09:07:09 3593

翻译 GreenDao官方文档翻译下

第五篇 查询查询会返回符合某些特定标准的实体。你可以使用原始的SQL定制查询语句,或者更好的方式:使用GreenDao的QueryBuilder API。该查询也支持lazy-loading的结果集。这样在操作大量结果集的时候可以节省内存和性能。QueryBuilderQueryBuilder可以帮助你构建自定义的查询语句,而不使用SQL的情况。并不是每个人都喜欢书

2014-04-25 21:27:29 13678 4

原创 SQLite数据库框架ORMLite与GreenDao的简单比较

摘要:最近准备使用数据库做个缓存,但不知道哪个好用些

2014-04-24 21:56:26 19824 6

原创 通过反射的方式挂断电话

思路:要想挂断电话,必然会用到电话服务:getSystemService(TELEPHONY_SERVICE);但查看源码时,发现 @Override public Object getSystemService(String name) { return mBase.getSystemService(name);  }继续查找:

2013-05-08 21:28:12 2816

原创 Android学习 —— 数据的存储与访问方式四: ContentProvider

笔记摘要:         对于私有数据的访问,除了文件读取方式(当然在创建的时候需要设置足够的权限),还可以通过ContentProvider来进行访问,ContentProvider 在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider 对你应用中的数据进行添删改查。Cont

2013-04-19 23:49:30 1501

原创 Android学习 —— 多种适配器方式实现ListView

笔记摘要:          本文主要对ListView列表显示的实现进行了分析,对于列表显示,分为两个部分,第一个部分是整体布局,也就是ListView所在的布局,但ListView中的一个个横条Item布局也需要我们自己去构建,所以需要创建一个Item的布局文件,然后通过配置器来引入,当然也引入一些数据,最后为ListView设置适配器即可。适配器有多种,这里就介绍了几种不同的适配器:Ar

2013-04-19 22:47:44 1894

原创 Android学习 —— 数据的存储与访问方式二: SharedPreferences(偏好参数保存)

SharedPreferences    主要用于软件配置参数的保存,它是一个轻量级的存储类,特别适用于保存软件配置参数,使用该类保存数据,数据存放的文件类型为XML,文件存放路径:     /data/data//shared_prefs目录下。    因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(name,

2013-04-17 20:43:58 1120

原创 Android学习 —— 数据的存储与访问方式一: 文件存取

笔记摘要:在Android中主要提供了四种数据存储与访问的方式,文件、SharedPreference(偏好参数保存)、SOLite数据库、内容提供者(Content provider)和网络,    本篇文章先介绍使用文件的方式进行数据的存储和访问,其中重点介绍了它的四种操作模式。使用文件进行存储方式一:通过openFileOutput()直接把数据输出到

2013-04-17 20:02:25 1514

原创 数据库 -- 由数据库连接池引出的三种设计模式

笔记摘要:     这里首先对数据库连接池的优化进行了说明,同时自己编写了一个数据库连接池,在实际开发中,为了获取标准的数据源,我们需要去实现javax.sal.DataSource接口,     在实现过程中对于链接对象的close方法进行了不同的实现,以便在关闭close的时候,将连接对象放回连接池,而不是关闭掉,针对这一问题,提供了3种不同的解决     方案,涉及了3种设计模式

2013-03-31 22:00:59 5285

原创 JDBC入门

JDBC简介SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。由一系列的抽象类和接口组成。一般位于JDK的java.sql和javax.sql包中开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动,不同的数据库对于JDBC的实现是不同的)。 一、第一个JDBC程序

2013-03-31 20:57:29 942

原创 javaWeb -- web中的乱码问题集

笔记摘要:    本文总结了最近web学习中遇到的一些中文乱码问题,其实问题的关键就是,文件保存时的编码,以及服务端对提交的数据进行的编码,和浏览器的编码,只要这三个编码问题搞清楚,就能够彻底解决中文乱码问题,当然以后还会遇到其它类型的乱码问题,相信万变不离其宗。一、HttpServletResponse向客户端输出中文数据的乱码问题response向客户端输出数据

2013-03-23 23:25:50 952

原创 javaWeb -- 文件路径的书写以及URL编码

路径的书写1.绝对路径:看路径是给谁用的,如果是给服务器用的就不用写web应用名,如果是给浏览器用的一定要带上web应用名2.利用类加载器加载资源时,路径是相对于classes文件夹的示例:有一文件:index.jsp在Tomcat服务器的Day05的WEBRoot路径下 public class Demo18Servlet extends HttpServlet { pu

2013-03-17 18:21:41 1468

原创 javaWeb -- HTTP协议

笔记摘要:作为web开发的前奏,这里介绍了什么是HTTP协议,HTTP请求与HTTP响应信息的介绍一、什么是HTTP协议客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP

2013-03-17 18:11:19 1114

原创 javaWeb -- 虚拟主机以及虚拟目录映射的配置

笔记摘要:         这里介绍了Tomcat服务器的结构,WEB应用的基础知识,一个简单的WEB应用应该由哪些部分构成,以及在Tomcat中如何配置虚拟主机和设置虚拟目录映射        以及它们各自的默认应用 的配置方式一、Tomcat目录结构二、WEB应用程序        WEB应用程序指供浏览器访问的程序,通常也简称为web应用,是为了提供某一特

2013-03-15 00:20:38 2368

原创 javaWeb -- XML详细介绍

笔记摘要:    这里主要介绍了XML的概念,语法,以及DTD(XML文件约束)技术1.xml概述        1.1 xml:xml一种数据存储格式,这种数据存储格式在存储数据内容的同时,还能够保存数据之间的关系        1.2 xml保存数据的方法:xml利用标签来保存数据的内容,利用标签之间的嵌套关系来保存数据之间的关系。        1.3 xml

2013-03-11 23:41:27 1192

转载 工作VS生活:要融合,不要平衡

工作VS生活:要融合,不要平衡作者:托马斯·卡莫洛·普雷姆兹克  2013年02月26日 11:04为什么每个人都如此关心工作与生活之间的平衡呢?  坊间传言,按照上世纪50年代流行心理学的说法,工作狂都贪婪自私,注定死于心脏病。  事实并不真是这样。就像大卫·奥格威(David Ogilvy)曾经说:“人们死于厌烦、心理冲突和疾病,但他

2013-02-27 10:12:05 1115

转载 算法 洗扑克牌(乱数排列)

From Gossip@caterpillarAlgorithm Gossip: 洗扑克牌(乱数排列)说明洗扑克牌的原理其实与乱数排列是相同的,都是将一组数字(例如1~N)打乱重新排列,只不过洗扑克牌多了一个花色判断的动作而已。解法初学者通常会直接想到,随机产生1~N的乱数并将之存入阵列中,后来产生的乱数存入阵列前必须先检查阵列中是否已有重复的数字,如果有这个数就不

2013-02-26 21:42:30 2222

转载 算法 Shaker排序法 - 改良的气泡排序

From Gossip@caterpillarAlgorithm Gossip: Shaker 排序法 - 改良的气泡排序说明请看看之前介绍过的气泡排序法:     for(i = 0; i         flag = 0;         for(j = 0; j             if(number[j+1]                 SW

2013-02-26 19:50:39 1885

转载 算法 shell排序法 - 改良的插入排序

From Gossip@caterpillarAlgorithm Gossip: Shell 排序法 - 改良的插入排序说明插入排序法由未排序的后半部前端取出一个值,插入已排序前半部的适当位置,概念简单但速度不快。排序要加快的基本原则之一,是让后一次的排序进行时,尽量利用前一次排序后的结果,以加快排序的速度,Shell排序法即是基于此一概念来改良插入排序法。解法

2013-02-26 19:23:03 926

转载 算法 快速排序

Algorithm Gossip: 快速排序法(一)说明:快速排序法(quick sort)是目前所公认最快的排序方法之一(视解题的对象而定),虽然快速排序法在最差状况下可以达O(n2),但是在多数的情况下,快速排序法的效率表现是相当不错的。快速排序法的基本精神是在数列中找出适当的轴心,然后将数列一分为二,分别对左边与右边数列进行排序,而影响快速排序法效率的正是轴心的选择。

2013-02-26 16:58:31 786

原创 算法 -- 几种基本排序深入探究

笔记摘要:            这里介绍了三种排序方式:冒泡排序,选择排序和插入排序。对排序的原理进行了详细分析,并对于各种排序的效率进行了分析和总结,最后通过一个插入排序的容器类对Soilder对象数组按照姓名进行了插入排序来进行总结。一、冒泡排序1.“编程复杂度”很低,很容易写出代码;2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的序列

2013-02-16 16:41:16 944

原创 java基础 -- Java 类中各成分加载顺序 和 内存中的存放位置

一、什么时候会加载类?使用到类中的内容时加载:有三种情况1.创建对象:new StaticCode();2.使用类中的静态成员:StaticCode.num=9;  StaticCode.show();3.在命令行中运行:java StaticCodeDemo二、类所有内容加载顺序和内存中的存放位置利用语句进行分析:1.Person p=

2013-02-15 10:29:09 1076

原创 多线程并发库高级应用 之 java5中的线程并发库--线程锁技术

笔记摘要:      这里介绍了java5中的线程锁技术:Lock和Condition,实现线程间的通信,其中的读锁和写锁的使用通过一个缓存系统进行了演示,对于Condition的应用通过      一个阻塞队列进行演示。线程锁技术:Lock & Condition 实现线程同步通信          所属包:java.util.concurrent.loc

2013-02-01 09:42:39 1148

原创 Android--使用AIDL和远程服务实现线程通信

笔记摘要:    在Android中,每个应用都有自己的进程,当需要在不同的进程之间传递对象时,由于java不支持跨进程内存共享,因此要传递对象,需要把对象解析成操作系统能  够理解的数据格式,以达到跨界对象访问的目的。在javaEE中,采用RMI通过序列化传递对象,在Android中,则采用AIDL(Android Interface Definition Language:

2013-01-31 15:06:05 1989

Search Everything

一款小巧功能强大的搜索工具,只要你电脑里有啥,就能搜到啥

2013-05-08

重构-改善既有代码的设计

重构-改善既有代码的设计,重构代码,程序员内功修炼,经典著作

2013-04-17

颜色搭配器

根据自己搭配的颜色,可以自动生成对应的色标,对于没有审美价值的程序员来说,是个不错的选择

2013-04-17

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除