极简(主义),即Minimalism, 它可以是一种设计原则(如KISS, Less is More),也可以是一种生活方式(minimalist lifestyle),更可以升华为编程的哲学(如Unix尊崇的KISS原则)。
此处只谈极简主义生活方式中信息极简,想要详细了解极简主义生活方式的,可以出门右转问知乎。:)
极简(主义),即Minimalism, 它可以是一种设计原则(如KISS, Less is More),也可以是一种生活方式(minimalist lifestyle),更可以升华为编程的哲学(如Unix尊崇的KISS原则)。
此处只谈极简主义生活方式中信息极简,想要详细了解极简主义生活方式的,可以出门右转问知乎。:)
很久之前就了解到冯大辉弄的这个Startup News, 有点类似国外Hacker news的技术分享平台,也经常浏览。后来发现Startup News的Android客户端是开源的,而网络上也有很多这种技术资讯的分享平台(如推酷,极客头条等),所以想了解下这样的资讯平台的客户端是怎样实现的,所以就有了以下对Startup News的源码的简单分析和极客头条客户端的开发。
由于个人水平和时间有限,所以只是简单分析了SN的功能如何实现,学习其中实现方法和编程规范,至于SN用到actionbarsherlock,没使用过,而且现在有ToolBar代替,就没有详细了解了。
Square开源了一个内存泄露自动探测神器——LeakCanary,它是一个Android和Java的内存泄露检测库,可以大幅度减少了开发中遇到的OOM问题,对于开发者来说,无疑是个福音,下面对该库的readme进行简单的翻译:
“A small leak will sink a great ship.” - Benjamin Franklin
小漏不补沉大船。——本杰明 富兰克林
今天刷微博,发现各位Android开源大神都在转发一条关于Square开源的自动探测内存泄露库LeakCanary的信息。
自动探测内存泄露,这也太牛逼了吧!进入@扔物线110 分享的链接了解了下,对原文作简单翻译:(翻译水平有限,凑合看吧-_-)
什么是依赖注入?
首先了解下什么是控制反转?控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。而控制反转有两种,最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。(from wikipedia)
思考方式:
1.这种模式怎么理解?(尽量简单易懂)
2.类图怎样画?(代码怎样写)
3.举个栗子?(使用场景)
4.使用这种模式有什么优缺点?(遵循什么原则)
##行为型模式
###14.观察者模式(Observer)
(1)理解
对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
(2)类图
续 设计模式思考 I
思考方式:
1.这种模式怎么理解?(尽量简单易懂)
2.类图怎样画?(代码怎样写)
3.举个栗子?(使用场景)
4.使用这种模式有什么优缺点?(遵循什么原则)
##结构型模式
###7.代理模式(Proxy)
(1)理解
多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介。
(2)类图
##前言
最近复习设计模式,花了不少时间,由于项目经验还比较少,虽然看得懂,能理解,但鉴于个人比较偏实践,不善于记忆,隔一段时间后,却很快就忘记了o(╯□╰)o,到真正自己说的时候也说不出来……与其看别人的总结,不如自己再根据别人的博客再思考整理一番,或许这样比反复看的效果会好些吧。下面是根据别人的博客和以下几点思考方式来重新整理的笔记:
1.这种模式怎么理解?(尽量简单易懂)
2.类图怎样画?(代码怎样写)
3.举个栗子?(使用场景)
4.使用这种模式有什么优缺点?(遵循什么原则)
##设计模式六大原则
1.开闭原则(Open Close Principle)
开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。
###为什么需要了解?
通过apktool反编译获取别人app里面的图片资源和xml文件的布局设计来进行学习。
###需要条件(windows平台下)
1.配置好Java环境
2.下载最新版的apktool的jar包:
https://bitbucket.org/iBotPeaches/apktool/downloads
3.测试用的任意.apk安装包: xxx.apk
##简述
SQLiteDatabase是一个可以进行增(Create)、查(Retrieve)、改(Update)、删(Delete)数据,即CRUD操作的类。
下面教程将向你展示如何使用SQLiteDatabase在Android中实现CRUD操作。
工具使用:
Android studio 1.1.0
TODO
在这个教程中,我们将创建一个app,允许对一个student表进行增查改删的数据操作。
很容易吗?是的,如果你知道怎样做的话 :)
##表结构
这个student表将用于存储学生的详细数据,为了简单,只创建3个域,如下图: