<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[月轩的专栏]]></title><description><![CDATA[To be or not to be ！]]></description><link>https://blog.youkuaiyun.com/c418098445</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; c418098445]]></copyright><item><title><![CDATA[C# Mutex对象的使用]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/48683001</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/48683001</guid><author>c418098445</author><pubDate>Wed, 23 Sep 2015 17:26:18 +0800</pubDate><description><![CDATA[这里我们主要介绍C# Mutex对象，包括介绍控制好多个线程相互之间的联系等方面。]]></description><category></category></item><item><title><![CDATA[HandlerThread 的使用]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/46551237</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/46551237</guid><author>c418098445</author><pubDate>Thu, 18 Jun 2015 18:53:45 +0800</pubDate><description><![CDATA[Android API提供了HandlerThread来创建线程。官网的解释是：Handy class for starting a new thread that has a looper.The looper can then be used to create handler classes. Note that start() must still be called.]]></description><category></category></item><item><title><![CDATA[Android中Application类用法]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/46550685</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/46550685</guid><author>c418098445</author><pubDate>Thu, 18 Jun 2015 17:44:46 +0800</pubDate><description><![CDATA[Application类Application和Activity,Service一样是Android框架的一个系统组件，当Android程序启动时系统会创建一个Application对象，用来存储系统的一些信息。Android系统自动会为每个程序运行时创建一个Application类的对象且只创建一个，所以Application可以说是单例（singleton）模式的一个类。]]></description><category></category></item><item><title><![CDATA[Android获取当前系统时间]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/45726345</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/45726345</guid><author>c418098445</author><pubDate>Thu, 14 May 2015 21:22:14 +0800</pubDate><description><![CDATA[Android获取当前系统时间
long time=System.currentTimeMillis();
final Calendar mCalendar=Calendar.getInstance(); 
mCalendar.setTimeInMillis(time); 
取得小时：mHour=mCalendar.get(Calendar.HOUR); 
取得分钟：mMinuts=mCalenda]]></description><category></category></item><item><title><![CDATA[Android中<meta-data>的使用]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/45248765</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/45248765</guid><author>c418098445</author><pubDate>Fri, 24 Apr 2015 17:03:37 +0800</pubDate><description><![CDATA[在AndroidManifest.xml中，元素可以作为子元素，被包含在、 、和元素中，但不同的父元素，在应用时读取的方法也不同。
    元素用name-value对的格式给其父组件提供任意可选的数据。一个组件元素能够包含任意多个子元素，所有这些元素中定义的值会被收集到一个Bundle对象中，并且提供给组件的PackageItemInfo.metaData属性字段。通常值是通过其value属性]]></description><category></category></item><item><title><![CDATA[Java并发编程：Callable、Future和FutureTask(原文链接：http://www.cnblogs.com/dolphin0520/p/3949310.html)]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/45173835</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/45173835</guid><author>c418098445</author><pubDate>Tue, 21 Apr 2015 18:00:51 +0800</pubDate><description><![CDATA[在前面的文章中我们讲述了创建线程的2种方式，一种是直接继承Thread，另外一种就是实现Runnable接口。
　　这2种方式都有一个缺陷就是：在执行完任务之后无法获取执行结果。
　　如果需要获取执行结果，就必须通过共享变量或者使用线程通信的方式来达到效果，这样使用起来就比较麻烦。
　　而自从Java 1.5开始，就提供了Callable和Future，通过它们可以在任务执行完毕之后得到任务]]></description><category></category></item><item><title><![CDATA[向Web站点发送GET请求、POST请求]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/45114245</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/45114245</guid><author>c418098445</author><pubDate>Sat, 18 Apr 2015 16:24:48 +0800</pubDate><description><![CDATA[分享一个向Web站点发送GET请求、POST请求的工具类，方便以后使用。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.MalformedURLExcepti]]></description><category></category></item><item><title><![CDATA[Android版多线程聊天室——ServerSocket和Socket的使用]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/45098045</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/45098045</guid><author>c418098445</author><pubDate>Fri, 17 Apr 2015 15:53:20 +0800</pubDate><description><![CDATA[每一个手机客户端使用Socket与服务器端进行通信，把消息发送给服务器，并监听和显示服务器端发来的消息。
    使用ServerSocket创建TCP服务器端，服务器为每个Socket单独创建一个线程用来与客户端进行通信。
服务器端代码如下：

import java.io.IOException;
import java.net.ServerSocket;
import java.]]></description><category></category></item><item><title><![CDATA[使用OpenGL ES绘制3D图形]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/45064225</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/45064225</guid><author>c418098445</author><pubDate>Wed, 15 Apr 2015 20:14:38 +0800</pubDate><description><![CDATA[使用OpenGL ES绘制3D图形需要注意的几点是：



1. Android的三维坐标系默认原点位于屏幕中央。


2. 绘制3D图形时，各个顶点的坐标是以原点为参照的，比如顶点坐标为（0.5，0，0），    表示顶点在正x轴的二分之一处。


3. 绘制前需调用glTranslatef(x, y, z) 函数设置图形的参照原点。


4. OpenGL ES绘制的]]></description><category></category></item><item><title><![CDATA[显示在标题上的进度条]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/44560011</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/44560011</guid><author>c418098445</author><pubDate>Mon, 23 Mar 2015 10:07:27 +0800</pubDate><description><![CDATA[若显示带进度的进度条：
1 requestWindowFeature(Window.FEATURE_PROGRESS); 
2 setProgressBarVisibility(true); 
3 setProgress(10); 
 
若显示不带进度的进度条：
1 requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);]]></description><category></category></item><item><title><![CDATA[Android版多线程下载器核心代码分享]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/44560009</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/44560009</guid><author>c418098445</author><pubDate>Mon, 23 Mar 2015 10:07:22 +0800</pubDate><description><![CDATA[首先给大家分享多线程下载核心类：

  1 package com.example.urltest;
  2 
  3 import java.io.IOException;
  4 import java.io.InputStream;
  5 import java.io.RandomAccessFile;
  6 import java.net.HttpURLConnectio]]></description><category></category></item><item><title><![CDATA[平时遇见的错误集合]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/44560005</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/44560005</guid><author>c418098445</author><pubDate>Mon, 23 Mar 2015 10:07:18 +0800</pubDate><description><![CDATA[问题1：实例化一个Thread并start（）之后，等待这个线程isAlive（）==false 时再次去start（）该线程时会报如下错误：the thread already started；
解决方法：每次start（）线程之前都要重新实例化一次；
 
问题2：使用HttpURlConnection.getResponseCode()方法时报错：NetMainThreadExcepti]]></description><category></category></item><item><title><![CDATA[Java RandomAccessFile的使用（转载的文章，出处http://www.2cto.com/kf/201208/149816.html）]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/44560003</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/44560003</guid><author>c418098445</author><pubDate>Mon, 23 Mar 2015 10:07:13 +0800</pubDate><description><![CDATA[Java的RandomAccessFile提供对文件的读写功能，与普通的输入输出流不一样的是RamdomAccessFile可以任意的访问文件的任何地方。这就是“Random”的意义所在。
RandomAccessFile的对象包含一个记录指针，用于标识当前流的读写位置，这个位置可以向前移动，也可以向后移动。RandomAccessFile包含两个方法来操作文件记录指针。
long getFi]]></description><category></category></item><item><title><![CDATA[怎样用AIDL Service 传递复杂数据]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/44560001</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/44560001</guid><author>c418098445</author><pubDate>Mon, 23 Mar 2015 10:07:09 +0800</pubDate><description><![CDATA[大家都知道在Android中通过AIDL可以跨进程调用Service中的数据，网上也有很多实例，但是大部分实例都是关于基本数据类型的远程调用，很少讲到复杂数据的调用，今天我用一个例子来演示一下怎样用AIDL Service 传递复杂数据。
我们分2步开始：
第一步：部署我们的服务端，也就是Service端：
1：在Service端我先自定义2个类型：Person和Pet。因为我们需要跨进程传]]></description><category></category></item><item><title><![CDATA[绑定本地Service并与之通信]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/44559995</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/44559995</guid><author>c418098445</author><pubDate>Mon, 23 Mar 2015 10:07:04 +0800</pubDate><description><![CDATA[绑定Service需要调用
public boolean bindService (Intent service, ServiceConnection conn, int flags)；
传入一个ServiceConnection 对象，该对象是一个接口，实例化时需要实现该接口，它的作用就是获得Service的IBinder对象，通过IBinder对象可以实现与Service的通信。
Ser]]></description><category></category></item><item><title><![CDATA[用ContentProvider向系统增加联系人]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/44559991</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/44559991</guid><author>c418098445</author><pubDate>Mon, 23 Mar 2015 10:07:00 +0800</pubDate><description><![CDATA[发现对系统的联系人进行操作的api很乱，感觉逻辑有点不清楚......
主要用到这4个类：
android.provider.ContactsContract.CommonDataKinds.Email;android.provider.ContactsContract.CommonDataKinds.Phone;android.provider.ContactsContract.Common]]></description><category></category></item><item><title><![CDATA[正弦余弦曲线的绘制动画]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/44559987</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/44559987</guid><author>c418098445</author><pubDate>Mon, 23 Mar 2015 10:06:55 +0800</pubDate><description><![CDATA[使用SurfaceView实现正弦余弦曲线的绘制动画！

主要代码如下：

  1 package com.example.surfaceviewtest;
  2 
  3 import java.util.Timer;
  4 import java.util.TimerTask;
  5 
  6 import android.app.Activity;
  7 impo]]></description><category></category></item><item><title><![CDATA[将博客搬至优快云]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/44559983</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/44559983</guid><author>c418098445</author><pubDate>Mon, 23 Mar 2015 10:06:51 +0800</pubDate><description><![CDATA[优快云和博客园是我最喜欢的两个技术论坛，之前一直在博客园写博客，现在准备同步到优快云上！]]></description><category></category></item><item><title><![CDATA[用属性动画实现小球的落地和弹起]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/44559981</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/44559981</guid><author>c418098445</author><pubDate>Mon, 23 Mar 2015 10:06:48 +0800</pubDate><description><![CDATA[所有代码如下：

  1 package com.example.animation;
  2 
  3 import android.animation.Animator;
  4 import android.animation.AnimatorListenerAdapter;
  5 import android.animation.AnimatorSet;
  6 impor]]></description><category></category></item><item><title><![CDATA[Android中Matrix的pre post set方法理解(转载来源：Linux社区  作者：zjmdp)]]></title><link>https://blog.youkuaiyun.com/c418098445/article/details/44559979</link><guid>https://blog.youkuaiyun.com/c418098445/article/details/44559979</guid><author>c418098445</author><pubDate>Mon, 23 Mar 2015 10:06:44 +0800</pubDate><description><![CDATA[虽说以前学习过线性代数和图形学原理，但是在实际中碰到matrix还是疑惑了好一阵子，今天通过向同事请教终于找到一点门路，特总结如下：
Matrix主要用于对平面进行缩放，平移，旋转以及倾斜操作，为简化矩阵变换，Android封装了一系列方法来进行矩阵变换，其中包括pre系列方法：preScale，preTranslate，preRotate，preSkew，set系列方法：setScale，se]]></description><category></category></item></channel></rss>