<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fangchongbory的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fangchongbory</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fangchongbory]]></copyright><item><title><![CDATA[Makefile 手册(四)]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7956789</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7956789</guid><author>fangchongbory</author><pubDate>Fri, 07 Sep 2012 21:58:30 +0800</pubDate><description><![CDATA[使用函数
在Makefile中可以使用函数来处理变量，从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多，不过已经足够我们的操作了。函数调用后，函数的返回值可以当做变量来使用。
一、函数的调用语法
函数调用，很像变量的使用，也是以“$”来标识的，其语法如下：
$(  )
或是
${ }
这里，就是函数名，make支持的函数不多。是函数的参数，参数间以逗号“,]]></description><category></category></item><item><title><![CDATA[Makefile 手册(三)]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7956788</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7956788</guid><author>fangchongbory</author><pubDate>Fri, 07 Sep 2012 21:57:31 +0800</pubDate><description><![CDATA[书写命令
每条规则中的命令和操作系统Shell的命令行是一致的。make会一按顺序一条一条的执行命令，每条命令的开头必须以[Tab]键开头，除非，命令是紧跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略，但是如果该空格或空行是以Tab键开头的，那么make会认为其是一个空命令。
我们在UNIX下可能会使用不同的Shell，但是make的命令默认是被“/bin/sh”——UNIX]]></description><category></category></item><item><title><![CDATA[Makefile 手册(二)]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7956783</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7956783</guid><author>fangchongbory</author><pubDate>Fri, 07 Sep 2012 21:56:38 +0800</pubDate><description><![CDATA[Makefile总述
一、Makefile里有什么
Makefile里主要包含了五个东西：显式规则、隐晦规则、变量定义、文件指示和注释。
1、显式规则。显式规则说明了，如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出，要生成的文件，文件的依赖文件，生成的命令。
2、隐晦规则。由于我们的make有自动推导的功能，所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile]]></description><category></category></item><item><title><![CDATA[Makefile 手册(一)]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7956780</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7956780</guid><author>fangchongbory</author><pubDate>Fri, 07 Sep 2012 21:55:29 +0800</pubDate><description><![CDATA[概述
装自：http://www.cnblogs.com/liangxiaxu/archive/2012/07/31/2617384.html
什么是makefile？或许很多Winodws的程序员都不知道这个东西，因为那些Windows的IDE都为你做了这个工作，但我觉得要作一个好的和 professional的程序员，makefile还是要懂。这就好像现在有这么多的HTML的编辑器，但如果]]></description><category></category></item><item><title><![CDATA[Ldd3 学习笔记3 —file_operations]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7926621</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7926621</guid><author>fangchongbory</author><pubDate>Thu, 30 Aug 2012 19:52:47 +0800</pubDate><description><![CDATA[原文：http://tldp.org/LDP/lkmpg/2.4/html/c577.htm




The file_operations structure is defined in linux/fs.h, and holds pointers to functions defined by the driver that perform
 various operations]]></description><category></category></item><item><title><![CDATA[Ldd3 学习笔记2 — simple]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7908127</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7908127</guid><author>fangchongbory</author><pubDate>Sun, 26 Aug 2012 01:15:19 +0800</pubDate><description><![CDATA[翻ldd3书看得云里雾里的，幸好有源码，可以找到源码，编译一下，自己动手学习ldd3到底讲了些什么知识。找到一份源码后，运行起来再说，不管是白猫还是黑猫，要抓老鼠，你得先得给我跑起来，哈哈！

上一篇给出了ldd3下载地址，下载examples.tar.gz解压有以下子目录

include  Makefile      pci    scullc  scullv      simple]]></description><category></category></item><item><title><![CDATA[Ldd3 学习笔记1 — 环境搭建]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7907830</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7907830</guid><author>fangchongbory</author><pubDate>Sat, 25 Aug 2012 23:20:31 +0800</pubDate><description><![CDATA[1、ldd3源代码下载

         Linux设备驱动程序3 官方地址:http:www.oreilly.com，源代码下载地址:http://www.oreilly.com.cn/codeexample/ldd3sc/


2、环境搭建
        配套代码的linux内核代码版本是2.6.10，对应ubuntu的版本是ubuntu5.04，2005年发布的。现在估计网上]]></description><category></category></item><item><title><![CDATA[Android 设计模式 之 观察者模式]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7774044</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7774044</guid><author>fangchongbory</author><pubDate>Mon, 23 Jul 2012 11:19:11 +0800</pubDate><description><![CDATA[/*
 * 观察者模式
 * 		定义对象间的一种一个(Subject)对多(Observer)的依赖关系，当一个对象的状态发送改变时，所以依赖于它的
 * 对象都得到通知并被自动更新
 * 
 * 当然，MVC只是Observer模式的一个实例。Observer模式要解决的问题为：
 * 建立一个一（Subject）对多（Observer）的依赖关系，并且做到当“一”变化的时候，
 * 依赖这个]]></description><category></category></item><item><title><![CDATA[Android 设计模式 之 单例模式]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7734199</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7734199</guid><author>fangchongbory</author><pubDate>Tue, 10 Jul 2012 21:38:33 +0800</pubDate><description><![CDATA[1、单例模式常见情景


设计模式中，最简单不过的就是单例模式。先看看单例模式
原文：http://www.iteye.com/topic/575052
Singleton模式可以是很简单的，它的全部只需要一个类就可以完成（看看这章可怜的UML图）。但是如果在“对象创建的次数以及何时被创建”这两点上较真起来，Singleton模式可以相当的复杂，比头五种模式加起来还复杂，譬如涉及到DCL]]></description><category></category></item><item><title><![CDATA[Linux 驱动学习笔记3 -- 字符设备驱动实例(driver+client)]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7733346</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7733346</guid><author>fangchongbory</author><pubDate>Tue, 10 Jul 2012 17:31:34 +0800</pubDate><description><![CDATA[字符设备驱动实例



有了上一节的基础，下面学习一下如何编写一个字符设备驱动，并通过客户端测试，验证字符设备驱动是否创建成功
1、字符设备驱动程序

下面是字符设备驱动源码
borytest.c

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include]]></description><category></category></item><item><title><![CDATA[Linux 驱动学习笔记2 -- Timer]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7733131</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7733131</guid><author>fangchongbory</author><pubDate>Tue, 10 Jul 2012 16:21:35 +0800</pubDate><description><![CDATA[Linux内核定时器

一、定义
/include/linux/timer.h

struct timer_list {
struct list_head entry;
unsigned long expires;
void (*function)(unsigned long);
unsigned long data;
struct tvec_t_base_s *base;
#ifdef]]></description><category></category></item><item><title><![CDATA[Linux 驱动学习笔记1 -- HelloWorld]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7730727</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7730727</guid><author>fangchongbory</author><pubDate>Mon, 09 Jul 2012 22:11:12 +0800</pubDate><description><![CDATA[想学习一下驱动，于是找了一个实例HelloWorld，编写自己的第一个驱动程序


1、环境搭建


安装ubuntu系统，打开终端，以root权限进入，命令如下

bory@borya:~$ sudo -s
查看自己linux内核包


root@borya:~# apt-cache search linux-source
linux-source - Linux ker]]></description><category></category></item><item><title><![CDATA[Android 远程图片缓存]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7713387</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7713387</guid><author>fangchongbory</author><pubDate>Tue, 03 Jul 2012 22:19:53 +0800</pubDate><description><![CDATA[那么如何处理好图片资源的获取和管理呢?
异步下载
本地缓存
异步下载
大家都知道，在android应用中UI线程5秒没响应的话就会抛出无响应异常，对于远程获取大的资源来说，这种异常还是很容易就会抛出来的，那么怎么避免这种问题的产生。在android中提供两种方法来做这件事情：
启动一个新的线程来获取资源，完成后通过Handler机制发送消息，并在UI线程中处理消息，从而达到在异步线程中获]]></description><category></category></item><item><title><![CDATA[android json解析及简单例子]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7713306</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7713306</guid><author>fangchongbory</author><pubDate>Tue, 03 Jul 2012 21:58:31 +0800</pubDate><description><![CDATA[JSON的定义：
一种轻量级的数据交换格式，具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案（有点类似于正则表达式 ，获得了当今大部分语言的支持），从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式，同时也具备类似于C语言体系的行为。 – Json.org

JSON Vs XML


1.JSON和XML的数据可读性基本相同


2.JS]]></description><category></category></item><item><title><![CDATA[Android 拷贝数据库文件]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7677190</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7677190</guid><author>fangchongbory</author><pubDate>Tue, 19 Jun 2012 17:52:25 +0800</pubDate><description><![CDATA[做android开发时，有时并不一定要创建数据库然后插入数据的过程。譬如，需要提供一个大数据量资源的搜索功能。像号码归属地，城市列表，ip归属地等。此时如果键数据库，再将数据一条一条insert到数据库中，不仅耗时，占用资源，有时还会导入错误。最好的方法是将数据库建好，数据insert好，并将该beifen.db文件放在raw（如果没有，在res目录下建一个）目录下。在创建数据库时，直接将该文件拷]]></description><category></category></item><item><title><![CDATA[Andriod 实现可拖动列表]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7676688</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7676688</guid><author>fangchongbory</author><pubDate>Tue, 19 Jun 2012 15:45:47 +0800</pubDate><description><![CDATA[在做一个应用时，有一个需求，需要实现像iphone天气的城市列表界面的可拖动功能。其实android已经实现了这个控件。但是这个控件不是公共控件，而是自带音乐播放器下的一个自定义控件。具体目录在：packages/apps/Music/src/com/android/music/TouchInterceptor.java。


使用发方法很简单，因为TouchInterceptor.java]]></description><category></category></item><item><title><![CDATA[Android 获取汉字拼音]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7674037</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7674037</guid><author>fangchongbory</author><pubDate>Tue, 19 Jun 2012 14:32:50 +0800</pubDate><description><![CDATA[Android提供了汉字转拼音的类。但是这个类是在联系人app下的。具体目录是packages/providers/ContactsProvider/src/com/android/providers/contacts的HanziToPinyin.java文件。如果想要这个工具类，可以直接拷贝来用。


获取一段汉字全拼方法：


    public String getFullPi]]></description><category></category></item><item><title><![CDATA[Android 汉字的正则表达式]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7674569</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7674569</guid><author>fangchongbory</author><pubDate>Mon, 18 Jun 2012 20:48:52 +0800</pubDate><description><![CDATA[常用的正则表达式有：


   　　 "^d+$"　　//非负整数（正整数 + 0）
    　　"^[0-9]*[1-9][0-9]*$"　　//正整数
    　　"^((-d+)(0+))$"　　//非正整数（负整数 + 0）
    　　"^-[0-9]*[1-9][0-9]*$"　　//负整数
    　　"^-?d+$"　　//整数
    　　"^d+(.d+)?$"]]></description><category></category></item><item><title><![CDATA[Android -- AppWidget 高级篇]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7673596</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7673596</guid><author>fangchongbory</author><pubDate>Mon, 18 Jun 2012 16:09:26 +0800</pubDate><description><![CDATA[3.1 AppWidget到底支持哪些view
在Android 2.2 SDK中我们首次启动模拟器可以看到和以前不一样的是多出了一个绿色的小机器人提示信息，Google给我们了演示了Android中如何通过 RemoteView和简单的图片轮换方式实现动画效果在桌面小工具中，appWidget的基类时AppWidgetProvider类，不过 Widget本身的生命周期管理并非Activity]]></description><category></category></item><item><title><![CDATA[Android -- AppWidget 进阶篇]]></title><link>https://blog.youkuaiyun.com/fangchongbory/article/details/7673559</link><guid>https://blog.youkuaiyun.com/fangchongbory/article/details/7673559</guid><author>fangchongbory</author><pubDate>Mon, 18 Jun 2012 15:56:35 +0800</pubDate><description><![CDATA[AppWidget进阶篇


在appWidget中事件可分成三种类型
a、开启Activity
b、开始Service
c、发送按钮Action
下面开始一个一个分析，如何实现。


2.1、开启Activity
2.11、首先先定义个开启Activity的intent
eg: Intent fullIntent=new Intent(this ,FullScreen.c]]></description><category></category></item></channel></rss>