<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SunnyCoffee Blog]]></title><description><![CDATA[技术改变世界]]></description><link>https://blog.youkuaiyun.com/limb99</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; limb99]]></copyright><item><title><![CDATA[基于XMPP的Android即时通讯应用设计方案。]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/40435899</link><guid>https://blog.youkuaiyun.com/limb99/article/details/40435899</guid><author>limb99</author><pubDate>Thu, 11 Dec 2014 23:55:17 +0800</pubDate><description><![CDATA[这个文章想写了好久没有动笔。感觉都有点生疏了。
之前在一片文章里提过Android Xmpp做IM的事。做了几个月自己有了更深的了解。
Android IM应用，方案 ：openfire + asmack
对于大多数IM应用，这个方案还是不错的。我之前对这个XMPP适用移动通信产生质疑（比如：通信效率低，网络穿透能力差）。不过现在我还是比较看好他的。
先说个成功案例吧--环信。环信就是基于]]></description><category></category></item><item><title><![CDATA[android基于xmpp的即时通讯应用]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/27110323</link><guid>https://blog.youkuaiyun.com/limb99/article/details/27110323</guid><author>limb99</author><pubDate>Mon, 26 May 2014 21:05:02 +0800</pubDate><description><![CDATA[xmpp是一个通信协议。因为这是个开放的协议，为了节俭开发成本，很多即时应用都采用了这个协议。Android上最常用的组合asmack +openfire。Asmack是smack的android版，是对xmpp协议进行了封装，并提供了丰富的api，简化了操作。Openfire是一个开源的IM服务器，基于Xmpp实现。换句话说使用xmpp开发即时通讯应用的话，服务器端已经开发好了，就是openfi]]></description><category></category></item><item><title><![CDATA[android缓存设计]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/18969587</link><guid>https://blog.youkuaiyun.com/limb99/article/details/18969587</guid><author>limb99</author><pubDate>Mon, 17 Feb 2014 22:10:50 +0800</pubDate><description><![CDATA[android里面使用缓存的好处：
1.节省流量
2.更快的响应，更流畅的体验。
3.减少http请求，降低服务器负担。
（如果一个应用启动到关闭共发起50次http请求，启用缓存后降低到了30次。我想缓存带来的效益要比你优化数据库表结构什么的优更加直接有效）
 
说到缓存，有几个必须提到的要点。
首先，每个缓存有应该有个id号，这样我们才能找到它或者删除它。
其次，既然是缓存，那]]></description><category></category></item><item><title><![CDATA[ListView下拉刷新，上拉自动加载更多]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/18901513</link><guid>https://blog.youkuaiyun.com/limb99/article/details/18901513</guid><author>limb99</author><pubDate>Mon, 03 Feb 2014 23:16:38 +0800</pubDate><description><![CDATA[下拉刷新，Android中非常普遍的功能。为了方便便重写的ListView来实现下拉刷新，同时添加了上拉自动加载更多的功能。设计最初是参考开源中国的Android客户端源码。先看示例图。


重写后的listview动画效果来源于添加的头部和尾部。]]></description><category></category></item><item><title><![CDATA[BAE3.0+Wordpress3.8搭建个人博客]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/18842407</link><guid>https://blog.youkuaiyun.com/limb99/article/details/18842407</guid><author>limb99</author><pubDate>Tue, 28 Jan 2014 16:22:00 +0800</pubDate><description><![CDATA[自己从接触BAE到现在也有一年多的时间了，但第一次我接触的其实是GAE。当时自己使用GAE+B3log搭建了自己的blog，后来发现访问速度太慢，遂换了BAE。处了BAE外，国内还有像SAE、GAE这些。因为BAE可以配合百度的个人云存储一同使用，所以便选择了它。
第一次使用BAE的时候当时还是2.0版本，其官方文档还是很全面的，搭建难度不大。在升级到BAE3.0的时候，BAE有了比较大的变化，]]></description><category></category></item><item><title><![CDATA[Android简单定位实例]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/18819925</link><guid>https://blog.youkuaiyun.com/limb99/article/details/18819925</guid><author>limb99</author><pubDate>Mon, 27 Jan 2014 20:43:26 +0800</pubDate><description><![CDATA[很多应用对定位的要求并不是那么高，也许只是确认一下当前的大概位置，城市的那个方向或者临时需要一个当前的经纬度，这时候定位速度应该是第一位的。下面就说说简单定位需求的实现。


步骤
1.启动应用的时候同时启动一个定位服务
2.定位服务获取到定位信息后通过广播告知UI层（activity）
3.UI层处理显示


实现代码
定位服务（LocationSvc）代码：
packag]]></description><category></category></item><item><title><![CDATA[android异步处理Handler+Thread使用进阶]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/18504037</link><guid>https://blog.youkuaiyun.com/limb99/article/details/18504037</guid><author>limb99</author><pubDate>Sun, 19 Jan 2014 15:14:49 +0800</pubDate><description><![CDATA[Android中异步实现的两个方式，一个是AsyncTask，一个是Handler+Thread。两个方式基本上都是在每个activity里去创建一个AsyncTask或者Handler+Thread。自己也如此做过几个项目，发现的有很多代码冗余，而且不利于管理。自己也在琢磨有什么办法解决这些问题，想着能不能将handler和Thread独立出来。自己试着写了个demo，也算是抛砖引玉，大家评价一]]></description><category></category></item><item><title><![CDATA[android异步处理Handler+Thread使用进阶（二）]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/18503955</link><guid>https://blog.youkuaiyun.com/limb99/article/details/18503955</guid><author>limb99</author><pubDate>Sun, 19 Jan 2014 15:08:34 +0800</pubDate><description><![CDATA[在上篇文章《android异步处理Handler+Thread使用进阶》中提到的问题做相应的方案，很多地方已经优化，这次的结构更加合理。
文章涉及的几个知识点又必须要了解，如泛型，继承，抽象方法，单例等。
设计思想和上次一样，不同的是这次每一个线程对应一个Handler，handler和线程服务都不再使用static。基类设置抽象方法，即回调方法。同时设置泛型，来确定回调方法的返回值。
同时]]></description><category></category></item><item><title><![CDATA[实现Android图片预览的拖拽缩放]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/18503723</link><guid>https://blog.youkuaiyun.com/limb99/article/details/18503723</guid><author>limb99</author><pubDate>Sun, 19 Jan 2014 14:51:58 +0800</pubDate><description><![CDATA[大多android应用都会有“查看原图”的功能，因原图通常都大于手机屏幕，所以就需要有拖拽，缩放的操作来满足原图的预览。大图预览的一个原则就是：尽量在手机屏幕上居中呈现完整的原图。
由于原图大小和手机屏幕的大小不一，在初始化的时候会出现下面几种处理方式（绿色为手机屏幕，红色为图片）。
1.图片高小于屏幕，宽大于屏幕
 
2.图片高大于屏幕，宽小于屏幕
 
3.图片高和宽都小于屏幕]]></description><category></category></item><item><title><![CDATA[android异步处理Handler+Thread使用进阶（三）]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/18503407</link><guid>https://blog.youkuaiyun.com/limb99/article/details/18503407</guid><author>limb99</author><pubDate>Sun, 19 Jan 2014 14:32:56 +0800</pubDate><description><![CDATA[关于Handler+Thread的使用终于有了一个比较完善的解决方案，自己也一直在自己的项目中使用，不断改进。这次的结构是前所未有的清新，在Activity不会再出现臃肿的代码，条理清晰。线程还是还是延续上次的设计进行集中管理。
这次的重要改动：
使用接口替代了抽象类来实现回调方法（对于java不能多继承，这无疑是个更好的设计）
接口的泛型粒度更小（原来的设计泛型是类级别，现在设计到方法级别]]></description><category></category></item><item><title><![CDATA[甩不掉的弹窗广告]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/18503267</link><guid>https://blog.youkuaiyun.com/limb99/article/details/18503267</guid><author>limb99</author><pubDate>Sun, 19 Jan 2014 14:23:52 +0800</pubDate><description><![CDATA[前段时间发现我的电脑在访问一些不知名的网站时（不是指那种垃圾网站）会莫名其妙的弹出一些广告。如果浏览器没有做拦截的话，这些广告在浏览器中以新窗口的形式打开，就是那种单页整幅的广告，而且一次会弹出5、6个。如果做了拦截，在google浏览器上的表现是，弹窗被拦截，但是整个网页覆盖了一成透明的薄膜（就是一个全屏的div），点击网页的任何地方，都会弹出广告。
这个弹窗的原理很简单，其实就是我们在访问目]]></description><category></category></item><item><title><![CDATA[ubuntu12.04修改eclipse提示代码背景颜色]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/18503083</link><guid>https://blog.youkuaiyun.com/limb99/article/details/18503083</guid><author>limb99</author><pubDate>Sun, 19 Jan 2014 14:14:20 +0800</pubDate><description><![CDATA[系统版本：Ubuntu12.04
系统主题：Ambiance
Eclipse版本：3.7.2
 
存在问题：
一、eclipse的提示框是黑色背景，字体难辨认
二、提示代码（Alt+/）背景是灰色，字体是白色，对比度低。
修改前

修改后

这个问题从eclipse入手无法解决，只能从系统级别修改，通过修改系统主题达到目的.修改前做好备份
sunnycoffee@sunny]]></description><category></category></item><item><title><![CDATA[android平台db4o使用示例]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/14906449</link><guid>https://blog.youkuaiyun.com/limb99/article/details/14906449</guid><author>limb99</author><pubDate>Sat, 09 Nov 2013 22:19:36 +0800</pubDate><description><![CDATA[db4o是一个纯对象的数据库，现支持java和.NET。07年的时候，db4objects宣布db4o已可以顺利运行于Android平台，当时db4objects公司和db4o的爱好者积极推进db4o运行于Google Android平台，以期待让db4o成为Android上的首选数据库平台，但令人遗憾的是google最后选择了sqlite作为作为android平台的数据库。但是没有关系，db4o]]></description><category></category></item><item><title><![CDATA[AndroidAnnotations应用部署]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/9067827</link><guid>https://blog.youkuaiyun.com/limb99/article/details/9067827</guid><author>limb99</author><pubDate>Sun, 09 Jun 2013 21:10:02 +0800</pubDate><description><![CDATA[做过JavaEE肯定对Spring不陌生，尤其是spring的IOC,真是太好用了。顺着这个思想，Android上有没有spring来实现IOC。搜索一下，果然spring已经推出了spring for android，不过可惜的是它并不支持IOC，但是却在官网发现了这个么一篇文章http://blog.springsource.org/2011/08/26/clean-code-with-and]]></description><category></category></item><item><title><![CDATA[eclipse的tasks使用说明]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/8881891</link><guid>https://blog.youkuaiyun.com/limb99/article/details/8881891</guid><author>limb99</author><pubDate>Fri, 03 May 2013 21:38:02 +0800</pubDate><description><![CDATA[tasks可以在代码里增加标识，通过tasks view可以快速的找到这些标识的地方，有助于提高开发效率和代码管理。

通过Eclipse的 Window==》Show View==》Tasks可以打开任务管理视图。
先看个例子（注意看行号左侧的对勾）：


图中个方法说明：
f0是普通方法
f1，f2，f3是在注释中添加了系统默认task标识的方法，
f4是通过eclipse添]]></description><category></category></item><item><title><![CDATA[关于网传JDK1.7语法层次支持集合的问题]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/8846885</link><guid>https://blog.youkuaiyun.com/limb99/article/details/8846885</guid><author>limb99</author><pubDate>Wed, 24 Apr 2013 21:48:13 +0800</pubDate><description><![CDATA[以  JDK1.7新特性 为关键词进行百度的话，总能发现这样的描述，说：
从语法层面上支持集合,不再是数组的专利。还有这样的例子：


final List piDigits = [ 1,2,3,4,5,8 ]; 
但我经过测试发现，上面的语句存在语法错误。后来又去官网进行确认：

http://www.oracle.com/technetwork/java/javase/jdk7-]]></description><category></category></item><item><title><![CDATA[android定位的实现]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/8765584</link><guid>https://blog.youkuaiyun.com/limb99/article/details/8765584</guid><author>limb99</author><pubDate>Sat, 06 Apr 2013 23:12:39 +0800</pubDate><description><![CDATA[基于android的定位无非就两种：network、gps。两者各有优劣。
Network:定位快，准确度低，受环境影响小。
GPS：定位慢，准确度高，受环境影响大。


本文要解决的问题：
1.      locationManager.getLastKnownLocation方法返回null。
2.      如何实现快速而又精确的定位。
 
E文好的话，直接看官网就好了ht]]></description><category></category></item><item><title><![CDATA[error running chkconfig(SuSE Linux)]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/8293900</link><guid>https://blog.youkuaiyun.com/limb99/article/details/8293900</guid><author>limb99</author><pubDate>Fri, 14 Dec 2012 10:39:14 +0800</pubDate><description><![CDATA[Environment

SUSE Linux
Novell ZENworks 11 Configuration Management Support Pack 1 - ZCM 11 SP1
Novell ZENworks Configuration Management 11.2


Situation

ERROR on SLES while running chkconfi]]></description><category></category></item><item><title><![CDATA[/dev/sdc1 is apparently in use by the system; will not make a filesystem here!]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/8229570</link><guid>https://blog.youkuaiyun.com/limb99/article/details/8229570</guid><author>limb99</author><pubDate>Tue, 27 Nov 2012 13:06:13 +0800</pubDate><description><![CDATA[背景：
服务器：dell 
3个raid组：
sda（raid1）系统盘
sdb （raid5）应用数据盘，在用
sdc （raid5）未使用，待创建文件系统、挂载
未使用lvm
操作系统suse 11 Enterprise
问题描述：
对sdc划分完分区后(只有一个分区)，创建文件系统，mkfs -t ext3 /dev/sdc1，命令还没运行完，网络断了。进程终止。
恢复网]]></description><category></category></item><item><title><![CDATA[IBM服务器安装SuSE划分/boot/efi分区的问题]]></title><link>https://blog.youkuaiyun.com/limb99/article/details/8127448</link><guid>https://blog.youkuaiyun.com/limb99/article/details/8127448</guid><author>limb99</author><pubDate>Tue, 30 Oct 2012 11:20:17 +0800</pubDate><description><![CDATA[操作系统：SUSE Linux Enterprise 11
服务器：IBM PC SERVER
/boot分区大小1G
 
之前有同事反映在一台IBM的PC SERVER上安装SuSE11，在划分分区的时候出现问题，但是划分分区的方案在DELL的PC SERVER上是没有问题的。当时报的错误如下。
warning: with  your current  setup 
your sus]]></description><category></category></item></channel></rss>