<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[冯小卫]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/coding_or_coded</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; coding_or_coded]]></copyright><item><title><![CDATA[skip32]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/11604611</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/11604611</guid><author>coding_or_coded</author><pubDate>Thu, 12 Sep 2013 15:21:21 +0800</pubDate><description><![CDATA[在某些应用场景下，需要对数字进行加密，skip32无疑是一种很实用的算法，网上有python的源码（https://bitbucket.org/anuraguniyal/skip32.py/src/403577f22bc2300b30b746526f52b6cf3c8cad51/skip32.py?at=master），可惜没有java的版本。下面送上自己写的java版本：


import]]></description><category></category></item><item><title><![CDATA[微信 SDK   不能 分享]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/9162977</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/9162977</guid><author>coding_or_coded</author><pubDate>Mon, 24 Jun 2013 15:56:31 +0800</pubDate><description><![CDATA[说多了都是泪水，真的。
前段时间，做好了微信的分享功能，测试通过的，最近我又跑了一遍用例，发现不能启动微信客户端了，怎么都启动不了，日志如下：ignore wechat app signature validation。但是我的代码绝对没有动过，网上各种找原因。搞了老久，最后去官网文档一篇一篇的看，如下：
http://open.weixin.qq.com/faq/?lang=zh_CN]]></description><category></category></item><item><title><![CDATA[Android  百度地图  java.lang.UnsatisfiedLinkError]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/9132695</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/9132695</guid><author>coding_or_coded</author><pubDate>Wed, 19 Jun 2013 22:19:00 +0800</pubDate><description><![CDATA[现在的App，都像跟风狗一样，只要是热门的功能，都加上，导致最后一个小小的App，有了聊天功能，有了分享功能，有了拍照功能，有了语音功能……，实力足够的话（或者网上有现成代码），就他妈差点做个操作系统进去了。
而其中一些功能，需要借助第三方，这就涉及到一个第三方选择的问题，我一般不喜欢小公司的产品，不是看不起小公司，主要是小公司的产品质量确实不能保证，而且产品的延续性得不到保障。
今天做给我们]]></description><category></category></item><item><title><![CDATA[svn 上传 过滤]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/9095349</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/9095349</guid><author>coding_or_coded</author><pubDate>Fri, 14 Jun 2013 15:57:05 +0800</pubDate><description><![CDATA[都很久没有写博客了，最近恶心了一把，新公司用的是git作为版本控制，但是结合微软的tfs使用，tfs的网络垃圾的一塌糊涂，整个代码的提交过程非常痛苦。


后来实在坚持不下去，就自己搭建了svn服务器，毕竟屌丝熟悉svn哇，服务器搭建好以后，代码上传过程中发现.so文件不能上传，查了一下，发现是svn服务器要设置上传过滤；很多文件，会被过滤掉，不能正常上传。设置如下：
通过终端打开配置文件]]></description><category></category></item><item><title><![CDATA[代码腐烂]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/8225837</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/8225837</guid><author>coding_or_coded</author><pubDate>Mon, 26 Nov 2012 15:07:30 +0800</pubDate><description><![CDATA[代码是程序员的一切，让我们快乐，让我们忧愁。看着优雅的代码，赏心悦目，看到恶心的代码，痛苦不堪。那么，是什么让代码变得恶心呢？


         网上有如下解释：架构不合理，需求变更，进度压力…… 首先，我觉得任何架构都是合理的，也都是不合理的。一个基本架构，能够完成现有的功能，效率上也说得过去，那么，它就是一个合理的架构。任何一个架构，都会不断的经受需求变更的挑战，没有任何人可以一开始]]></description><category></category></item><item><title><![CDATA[仿写 微信 界面]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/8017295</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/8017295</guid><author>coding_or_coded</author><pubDate>Tue, 25 Sep 2012 15:58:39 +0800</pubDate><description><![CDATA[网上找的的一份源码，基本实现了微信的所有界面，对于Dialog，动画等UI元素的使用都有很好的借鉴意义。

下载地址：http://download.youkuaiyun.com/detail/coding_or_coded/4596271]]></description><category></category></item><item><title><![CDATA[Android触屏事件流]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/8013290</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/8013290</guid><author>coding_or_coded</author><pubDate>Mon, 24 Sep 2012 16:05:12 +0800</pubDate><description><![CDATA[一次触屏事件分为三个动作

ACTION_DOWN， ACTION_MOVE 和 ACTION_UP。

其中ACTION_DOWN和ACTION_UP在一次触屏事件中只会触发一次，ACTION_MOVE可能触发任意次（包括0次）。

主要响应触屏的组件有两种，一种是可以包含子元素的（ViewGroup比如LinearLayout），另一种是不能包含子元素的View（最底层的View比]]></description><category></category></item><item><title><![CDATA[Android事件处理的两种模型]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/8011884</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/8011884</guid><author>coding_or_coded</author><pubDate>Mon, 24 Sep 2012 10:42:38 +0800</pubDate><description><![CDATA[UI编程通常都会伴随事件处理，Android也不例外，它提供了两种方式的事件处理：基于回调的事件处理和基于监听器的事件处理。

对于基于监听器的事件处理而言，主要就是为Android界面组件绑定特定的事件监听器；对于基于回调的事件处理而言，主要做法是重写Android组件特定的回调函数，Android大部分界面组件都提供了事件响应的回调函数，我们主要重写它们就行。



一 基于监听器]]></description><category></category></item><item><title><![CDATA[Android动画]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/7970969</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/7970969</guid><author>coding_or_coded</author><pubDate>Wed, 12 Sep 2012 14:26:42 +0800</pubDate><description><![CDATA[一般简单的动画可以通过Android的帧动画或者渐变动画完成，但是这两种动画的控制粒度都比较大，一旦启动动画，就没有控制的余地。下面介绍另外一种简单的实现方式：通过Handler不停地给UI线程发送消息，当UI线程处理消息时，再调用绘制方法，达到动画的效果。这样，我们可以更加精细的控制动画。

关于帧动画或者渐变动画的例子：http://download.youkuaiyun.com/detail/cod]]></description><category></category></item><item><title><![CDATA[sqlite 升级]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/7778865</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/7778865</guid><author>coding_or_coded</author><pubDate>Tue, 24 Jul 2012 11:20:47 +0800</pubDate><description><![CDATA[在项目不断推进的情况下，数据库表结构不满足需求是很常见的事情，这个时候，我们需要对数据库进行升级。

首先，不谈升级的具体实现，谈一下如何尽量避免升级，因为升级是一个痛苦的过程。在第一个发布版本中，数据库表结构要尽量稳定，也就是要多考虑，不要因为一点点需求变动，马上就要修改表结构，这样非常痛苦。我们也可以在可能变动的表中增加备用字段，这样，在需要新字段的时候，启用备用字段，而不用修改表结构。]]></description><category></category></item><item><title><![CDATA[代码整洁之道]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/7757869</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/7757869</guid><author>coding_or_coded</author><pubDate>Wed, 18 Jul 2012 09:44:39 +0800</pubDate><description><![CDATA[我从不一开始就想写下完美的代码，我想也没有人能办到。我只是不停的雕琢它们，直到我认为完美……




命名：


1.名副其实，从名称上看出用途，如果需要注释来表达用途，你已经输了……


2.具有前缀（后缀）的命名方式是上世纪的产品，以后就忘记吧……


3.包的命名规范：域名+项目名+模块名/层名


4.类的命名规范：类的名字必须由大写字母开头，一个单词中的]]></description><category></category></item><item><title><![CDATA[重构 改善既有代码的设计（读书笔记3）]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/7751943</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/7751943</guid><author>coding_or_coded</author><pubDate>Mon, 16 Jul 2012 15:59:17 +0800</pubDate><description><![CDATA[// 在对象之间搬移特性


// 1.在程序中，有个方法与其本类之外的另一个类进行更多的交流，这个时候在该方法最常引用的类中建立一个有着类似行为的新方法，把旧方法变成一个委托函数，或者是直接移除。这有助于隔离变化。
// 2.移动实例变量可以参考第一点
// 3.搬动一个方法或者属性之前，先注释它，可以瞬间看出一些东西。
// 4.当一个类做了应该由两个类做的事情，那么，就提炼一个新]]></description><category></category></item><item><title><![CDATA[系统架构方面的博客]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/7741080</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/7741080</guid><author>coding_or_coded</author><pubDate>Thu, 12 Jul 2012 16:30:18 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/sdhustyh/article/category/828856]]></description><category></category></item><item><title><![CDATA[重构 改善既有代码的设计（读书笔记2）]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/7731477</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/7731477</guid><author>coding_or_coded</author><pubDate>Tue, 10 Jul 2012 09:28:13 +0800</pubDate><description><![CDATA[// 什么时候执行重构——代码的坏味道
// 1.重复的代码


// 2.过长的方法（当一段代码你觉得别人看起来困难，你可能需要添加注释的时候，其实你可以抽取成一个方法，然后标注一个优雅的方法名）


// 3.庞大的类（很有可能职责过多，职责单一是一种很好的设计）


// 4.过长的参数列表（让使用者很疲惫）


// 5.发散式变化（添加一个功能，可能引起多处变化]]></description><category></category></item><item><title><![CDATA[重构 改善既有代码的设计（读书笔记1）]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/7730706</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/7730706</guid><author>coding_or_coded</author><pubDate>Mon, 09 Jul 2012 21:30:27 +0800</pubDate><description><![CDATA[// 复制，粘贴给程序带来维护上的巨大挑战，一段相同的代码，绝对不应该出现在不同的两个地方。当然，你可以这样做，但是这种代码一旦出现问题，你会记得要修改几个地方吗？
 
 // 如果你发现自己需要为程序添加一个特性，而代码结构使你无法很方便地达成目的，那就先重构那个程序，使特性的添加比较容易进行，然后再添加特性。千万不要说有时间再做重构，有时间再做等于永远不会做（可以自己分析一下，首先，公司明]]></description><category></category></item><item><title><![CDATA[Google故事]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/7713067</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/7713067</guid><author>coding_or_coded</author><pubDate>Tue, 03 Jul 2012 20:00:40 +0800</pubDate><description><![CDATA[“我们俩都有些令对方厌恶”。谢尔盖·布林在接受《经济学人》杂志采访时，曾这样回忆他与拉里·佩奇的首次相遇。未来的两位谷歌创始人对彼此的第一印象都很差。


　　风云初起双雄会
　　“能够进入斯坦福大学，我简直太激动了。要实现那样的抱负(指创业)没有比斯坦福更好的地方了，我一直都向往硅谷。”拉里曾这样对《The Search》一书作者约翰·巴特尔说。
　　1995年3月，拉里进入斯坦福大学]]></description><category></category></item><item><title><![CDATA[写更少的代码]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/7708592</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/7708592</guid><author>coding_or_coded</author><pubDate>Mon, 02 Jul 2012 14:38:41 +0800</pubDate><description><![CDATA[软件开发的一个基本事实是：你需要写代码。但是一个最大的概念误区是“写代码就是我的工作”。当我开始我的软件开发者生涯时，我就陷入了这个误区。代码是强大的，它能让你做许多事情，你觉得自己是有效率的，觉得自己完成了工作。然后，这些年来我学到了事情的真实的本质：一个程序员的工作的本质是写尽可能少的代码。


不要误解我的意思。我不是说我们应该把压缩代码，以尽量少敲键盘为目的，从而让写出来的代码根本无]]></description><category></category></item><item><title><![CDATA[第一个完整Andorid项目总结]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/7706556</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/7706556</guid><author>coding_or_coded</author><pubDate>Sun, 01 Jul 2012 14:19:24 +0800</pubDate><description><![CDATA[本文目的：把自己一阶段的东西进行总结，拿出来和大家分享，也希望从读者的评论那里得到启发。

本人水平：华东师范大学软件学院毕业，做过两个J2EE项目，一个J2ME项目，一个Android项目（基本就靠Java混饭吃）。

项目介绍：一款IM应用，类似于QQ，用户群是企业员工，和企业QQ是竞争对手。下载地址：http://apk.gfan.com/Product/App278699.html]]></description><category></category></item><item><title><![CDATA[简单工厂模式]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/7693386</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/7693386</guid><author>coding_or_coded</author><pubDate>Tue, 26 Jun 2012 16:48:15 +0800</pubDate><description><![CDATA[简单工厂模式类图：

 

***************************************************************************************************

简单工厂模式目的：

提供一个类，由它负责根据一定的条件创建某一具体类的实例,客户端不参与创建具体产品,仅通过传入参数选择需要“消费”对象。而不必管这些对]]></description><category></category></item><item><title><![CDATA[深入分析 Java 中的中文编码问题]]></title><link>https://blog.youkuaiyun.com/coding_or_coded/article/details/7690048</link><guid>https://blog.youkuaiyun.com/coding_or_coded/article/details/7690048</guid><author>coding_or_coded</author><pubDate>Mon, 25 Jun 2012 15:29:44 +0800</pubDate><description><![CDATA[不知道大家有没有想过一个问题，那就是为什么要编码？我们能不能不编码？要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的，这些符号也就是我们人类使用的语言。由于人类的语言有太多，因而表示这些语言的符号太多，无法用计算机中一个基本的存储单元—— byte 来表示，因而必须要经过拆分或一些翻译工作，才能让计算机能理解。我们可以把计算机能够理解的语言假定为英语，其它语言要能够在计算机中使用必]]></description><category></category></item></channel></rss>