<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[backard的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/backard</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; backard]]></copyright><item><title><![CDATA[Linux基础操作]]></title><link>https://blog.youkuaiyun.com/backard/article/details/41343965</link><guid>https://blog.youkuaiyun.com/backard/article/details/41343965</guid><author>backard</author><pubDate>Fri, 21 Nov 2014 09:25:37 +0800</pubDate><description><![CDATA[使用rdp协议访问远程Linux桌面]]></description><category></category></item><item><title><![CDATA[安卓系统源码编译系列（一）——下载安卓系统源码教程]]></title><link>https://blog.youkuaiyun.com/backard/article/details/18964361</link><guid>https://blog.youkuaiyun.com/backard/article/details/18964361</guid><author>backard</author><pubDate>Fri, 07 Feb 2014 16:06:57 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/zhaoxy_thu/article/details/12657265]]></description><category></category></item><item><title><![CDATA[Linux汇编语言开发指南]]></title><link>https://blog.youkuaiyun.com/backard/article/details/18962023</link><guid>https://blog.youkuaiyun.com/backard/article/details/18962023</guid><author>backard</author><pubDate>Fri, 07 Feb 2014 14:17:26 +0800</pubDate><description><![CDATA[http://3ms.huawei.com/hi/group/146/thread_28697.html?mapId=54855]]></description><category></category></item><item><title><![CDATA[Google编程风格-值得借鉴]]></title><link>https://blog.youkuaiyun.com/backard/article/details/18842697</link><guid>https://blog.youkuaiyun.com/backard/article/details/18842697</guid><author>backard</author><pubDate>Tue, 28 Jan 2014 15:12:57 +0800</pubDate><description><![CDATA[https://code.google.com/p/google-styleguide/]]></description><category></category></item><item><title><![CDATA[如何发送虚拟按键，比如HOME键等]]></title><link>https://blog.youkuaiyun.com/backard/article/details/18811575</link><guid>https://blog.youkuaiyun.com/backard/article/details/18811575</guid><author>backard</author><pubDate>Mon, 27 Jan 2014 11:41:36 +0800</pubDate><description><![CDATA[1、手机上有很多输入设备，这些设备的编号每个手机都不同，因此我们需要首先了解这个手机上都有哪些输入设备，下面以我的NexusS为例：
http://3ms.huawei.com/hi/blog/24021_1097091.html 【Android学习笔记】用 sendevent 模拟手机上的按键
注：每个手机都不同，对我们意义就不大了
 
2、虚拟按键
http://3ms.huawe]]></description><category></category></item><item><title><![CDATA[是否可以显式调用C++的动态链接库]]></title><link>https://blog.youkuaiyun.com/backard/article/details/18730093</link><guid>https://blog.youkuaiyun.com/backard/article/details/18730093</guid><author>backard</author><pubDate>Fri, 24 Jan 2014 10:57:26 +0800</pubDate><description><![CDATA[测试了一下，是可以的，特殊情况下倒可以这样玩玩。
#include 
#include 
#include 
int main(int agrc, char* argv[])
{
 printf("1\n");
    int (*pFunc)(void*, int, int);                                              
    v]]></description><category></category></item><item><title><![CDATA[NDK理解]]></title><link>https://blog.youkuaiyun.com/backard/article/details/18712845</link><guid>https://blog.youkuaiyun.com/backard/article/details/18712845</guid><author>backard</author><pubDate>Thu, 23 Jan 2014 19:35:29 +0800</pubDate><description><![CDATA[Android NDK开发其实就是使用JNI来调用本地的方法或者库来将Java程序和Native程序结合起来。JNI明确分开了Java代码与本机C/C++代码的执行，定义了一个清晰的API在这两者之间进行通信。因此Android NDK开发一般有如下步骤：
1)   JNI接口设计。
2)   使用C/C++实现本地方法。
3)   生成动态链接库。
4)   将动态链接库复制到Java工]]></description><category></category></item><item><title><![CDATA[一直以为关闭流就可以让read返回，没想到不一定，还和流的类型有关]]></title><link>https://blog.youkuaiyun.com/backard/article/details/17839103</link><guid>https://blog.youkuaiyun.com/backard/article/details/17839103</guid><author>backard</author><pubDate>Sat, 04 Jan 2014 10:33:59 +0800</pubDate><description><![CDATA[这个类型的流在read时，会占用流的锁，导致close阻塞。例子如下
public class Test {
 /**
  * @param args
  * @throws IOException 
  */
 public static void main(String[] args) throws IOException {
  
  Process process = Ru]]></description><category></category></item><item><title><![CDATA[学习android的过程]]></title><link>https://blog.youkuaiyun.com/backard/article/details/17608911</link><guid>https://blog.youkuaiyun.com/backard/article/details/17608911</guid><author>backard</author><pubDate>Fri, 27 Dec 2013 11:48:30 +0800</pubDate><description><![CDATA[开发：
1、得学会纯手工创建一个Android应用并在手机上跑起来，能完成这个说明你记住了基本开发过程
2、得学会通过IDE创建一个Android应用并在手机上跑起来，能完成这个说明你会用IDE工具了
3、得知道资源都有哪些类型，每个类型资源都有哪些属性，特别是最常用的属性，虽不要求能直接编辑xml文件，但至少要看的明白
4、对布局资源要理解透，否则不能随心所欲地设计界面,可以和eclip]]></description><category></category></item><item><title><![CDATA[Java启动子进程，子进程又启动孙进程后，Java在InputStream inputStream = process.getInputStream();中读取时，何时会返回null？]]></title><link>https://blog.youkuaiyun.com/backard/article/details/17469723</link><guid>https://blog.youkuaiyun.com/backard/article/details/17469723</guid><author>backard</author><pubDate>Sat, 21 Dec 2013 18:06:19 +0800</pubDate><description><![CDATA[Java启动子进程，子进程又启动孙进程后，Java在InputStream inputStream = process.getInputStream();中读取时，何时会返回null？
情况1：
如果java启动的是python命令行进程，而python又用subprocess.Popen启动子进程：

如果subprocess.Popen启动子进程时没有带close_fds=True参数]]></description><category></category></item><item><title><![CDATA[eclipse中的设计模式]]></title><link>https://blog.youkuaiyun.com/backard/article/details/9424633</link><guid>https://blog.youkuaiyun.com/backard/article/details/9424633</guid><author>backard</author><pubDate>Tue, 23 Jul 2013 17:02:59 +0800</pubDate><description><![CDATA[CompilerAdapter
CompilerAdapterFactory]]></description><category></category></item><item><title><![CDATA[《敏捷软件开发：原则、模式与实践》读书笔记]]></title><link>https://blog.youkuaiyun.com/backard/article/details/9383893</link><guid>https://blog.youkuaiyun.com/backard/article/details/9383893</guid><author>backard</author><pubDate>Fri, 19 Jul 2013 17:20:31 +0800</pubDate><description><![CDATA[1、敏捷软件开发宣言
个体和交互         胜过 过程和工具
可以工作的软件     胜过 面面俱到的文档
客户合作           胜过 合同谈判
响应变化           胜过 遵循计划




2、面相对象设计的原则


单一职责原则
开放-封闭原则
Liskov替换原则
替换原则
依赖倒置原则
接口隔离原则
重用发布等价原则
共同封闭原则]]></description><category></category></item><item><title><![CDATA[眼界决定方法]]></title><link>https://blog.youkuaiyun.com/backard/article/details/9379649</link><guid>https://blog.youkuaiyun.com/backard/article/details/9379649</guid><author>backard</author><pubDate>Fri, 19 Jul 2013 13:57:14 +0800</pubDate><description><![CDATA[当人们不知道世界上存在锤子的时候，估计都会觉得用石头砸可能是一个很好的办法。
 
有时我们做傻事时，不是我们不思考、不努力，而是我们无知。
 
所以，我们需要多学习新鲜事物。]]></description><category></category></item><item><title><![CDATA[如何避免大量的成功失败判断，如何不再纠结发现错误时是否该打印日志]]></title><link>https://blog.youkuaiyun.com/backard/article/details/9379613</link><guid>https://blog.youkuaiyun.com/backard/article/details/9379613</guid><author>backard</author><pubDate>Fri, 19 Jul 2013 13:54:57 +0800</pubDate><description><![CDATA[问题描述：编译流程图时，逻辑复杂，嵌套很深，很多函数都有成功失败返回值，造成每层函数都出现大量的成功失败判断，并且不知道打印日志是该在函数外，还是在函数内打印，感觉每次发现失败的时候都应该打印日志，但是又觉得有打印有重复，同时，打印的日志很容易将做什么和失败原因割裂开。这两个问题困扰了我编码很多年了，一直没搞明白为什么会这样。
 
日志解决办法：出现上述问题，实际上是因为我犯了一个致命的错误，]]></description><category></category></item><item><title><![CDATA[读书]]></title><link>https://blog.youkuaiyun.com/backard/article/details/9377709</link><guid>https://blog.youkuaiyun.com/backard/article/details/9377709</guid><author>backard</author><pubDate>Fri, 19 Jul 2013 10:58:46 +0800</pubDate><description><![CDATA[1、读书不在多，在于精读。时间有限，只能挑选精品读，效果远胜于滥读，一通百通，万变不离其宗。
2、好书应该读多遍，因为随着你经验的不同，每遍的感受和收获都不同。不要期望读一遍就能理解透了，有些书当你功力不够的时候是理解不了的。]]></description><category></category></item><item><title><![CDATA[由学习设计模式想到的（精华2）]]></title><link>https://blog.youkuaiyun.com/backard/article/details/9377269</link><guid>https://blog.youkuaiyun.com/backard/article/details/9377269</guid><author>backard</author><pubDate>Fri, 19 Jul 2013 10:29:26 +0800</pubDate><description><![CDATA[写代码无非追求两个目标，第一是满足需求，第二是好维护。
好维护的首要前提是我们能够理解代码，其次是代码好修改。
代码好修改的核心应该是良好的代码组织，设计模式主要就是用来解决代码组织的。
学习设计模式时，估计有的人仅仅是记住了每个模式的形，而没有考虑每个模式是用来解决什么问题的，且更加会忽略只有代码需要变化时才会带来这些问题这个事实。
正确的学习思路，应该是首先思考这个模式是用来解决什么变]]></description><category></category></item><item><title><![CDATA[我总结的思考方式（精华1）]]></title><link>https://blog.youkuaiyun.com/backard/article/details/9353369</link><guid>https://blog.youkuaiyun.com/backard/article/details/9353369</guid><author>backard</author><pubDate>Wed, 17 Jul 2013 12:44:54 +0800</pubDate><description><![CDATA[不管做啥事，包括分析需求，实现需求或者完全跟写程序无关的事，最好都有自己的一套思考方式或者说做事方法。
1、总纲: 多考虑分支，尽量想办法确认假设的客观性，最难知道别人怎么想，涉及到心理学
2、要做什么，解决什么问题，真实需求究竟是啥，做了会怎样，不做会怎样
3、涉及到哪些人，谁受益，谁损失，有啥想法，有啥矛盾，预期怎样，预期能否调整
4、约束条件有哪些，环境，时间，资源等，优先级怎样，哪]]></description><category></category></item><item><title><![CDATA[hg clone是啥玩意]]></title><link>https://blog.youkuaiyun.com/backard/article/details/9336819</link><guid>https://blog.youkuaiyun.com/backard/article/details/9336819</guid><author>backard</author><pubDate>Mon, 15 Jul 2013 22:19:55 +0800</pubDate><description><![CDATA[想下个python源码看看，
hg clone http://hg.python.org/cpython





hg clone 命令的windows解决方法TortoiseHg

http://hi.baidu.com/niceyou/item/9f22b73f1ece7dc1382ffa5c]]></description><category></category></item><item><title><![CDATA[Python编码问题总结]]></title><link>https://blog.youkuaiyun.com/backard/article/details/9124227</link><guid>https://blog.youkuaiyun.com/backard/article/details/9124227</guid><author>backard</author><pubDate>Tue, 18 Jun 2013 21:47:31 +0800</pubDate><description><![CDATA[关于文件开头的"编码指示"，也就是 # -*- coding: -*- 这个语句。Python 默认脚本文件都是 ANSCII 编码的，当文件 
中有非 ANSCII 编码范围内的字符的时候就要使用"编码指示"来修正。

关于 sys.defaultencoding，这个在解码没有明确指明解码方式的时候使用。比如我有如下代码：

#! /usr/bin/env python 
# -*]]></description><category></category></item><item><title><![CDATA[不用TreeViewer如何实现延迟加载]]></title><link>https://blog.youkuaiyun.com/backard/article/details/9007719</link><guid>https://blog.youkuaiyun.com/backard/article/details/9007719</guid><author>backard</author><pubDate>Sun, 02 Jun 2013 18:44:29 +0800</pubDate><description><![CDATA[因为对TreeViewer不熟，所以我自己直接用Tree实现了延迟加载功能。
基本原理：
监听展开事件，如果其子节点已经加载，则啥也不做。如果子节点未加载，则加载子节点。
注意，每次插入一个节点的时候，都假定其有子节点，否则没法展开，采用的办法是加一个哑子节点。
判断一个节点是否加载当然就是判断这个哑节点是否存在了，哑节点的特征是不会关联data。


今天看了一下TreeViewe]]></description><category></category></item></channel></rss>