自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 收藏
  • 关注

原创 Linux基础操作

使用rdp协议访问远程Linux桌面

2014-11-21 09:25:37 766

转载 安卓系统源码编译系列(一)——下载安卓系统源码教程

http://blog.csdn.net/zhaoxy_thu/article/details/12657265

2014-02-07 16:06:57 857

转载 Linux汇编语言开发指南

http://3ms.huawei.com/hi/group/146/thread_28697.html?mapId=54855

2014-02-07 14:17:26 698

原创 Google编程风格-值得借鉴

https://code.google.com/p/google-styleguide/

2014-01-28 15:12:57 559

原创 如何发送虚拟按键,比如HOME键等

1、手机上有很多输入设备,这些设备的编号每个手机都不同,因此我们需要首先了解这个手机上都有哪些输入设备,下面以我的NexusS为例:http://3ms.huawei.com/hi/blog/24021_1097091.html 【Android学习笔记】用 sendevent 模拟手机上的按键注:每个手机都不同,对我们意义就不大了 2、虚拟按键http://3ms.huawe

2014-01-27 11:41:36 921

原创 是否可以显式调用C++的动态链接库

测试了一下,是可以的,特殊情况下倒可以这样玩玩。#include #include #include int main(int agrc, char* argv[]){ printf("1\n");    int (*pFunc)(void*, int, int);                                                  v

2014-01-24 10:57:26 656

原创 NDK理解

Android NDK开发其实就是使用JNI来调用本地的方法或者库来将Java程序和Native程序结合起来。JNI明确分开了Java代码与本机C/C++代码的执行,定义了一个清晰的API在这两者之间进行通信。因此Android NDK开发一般有如下步骤:1)   JNI接口设计。2)   使用C/C++实现本地方法。3)   生成动态链接库。4)   将动态链接库复制到Java工

2014-01-23 19:35:29 760

原创 一直以为关闭流就可以让read返回,没想到不一定,还和流的类型有关

这个类型的流在read时,会占用流的锁,导致close阻塞。例子如下public class Test { /**  * @param args  * @throws IOException   */ public static void main(String[] args) throws IOException {    Process process = Ru

2014-01-04 10:33:59 803

原创 学习android的过程

开发:1、得学会纯手工创建一个Android应用并在手机上跑起来,能完成这个说明你记住了基本开发过程2、得学会通过IDE创建一个Android应用并在手机上跑起来,能完成这个说明你会用IDE工具了3、得知道资源都有哪些类型,每个类型资源都有哪些属性,特别是最常用的属性,虽不要求能直接编辑xml文件,但至少要看的明白4、对布局资源要理解透,否则不能随心所欲地设计界面,可以和eclip

2013-12-27 11:48:30 740

原创 Java启动子进程,子进程又启动孙进程后,Java在InputStream inputStream = process.getInputStream();中读取时,何时会返回null?

Java启动子进程,子进程又启动孙进程后,Java在InputStream inputStream = process.getInputStream();中读取时,何时会返回null?情况1:如果java启动的是python命令行进程,而python又用subprocess.Popen启动子进程:如果subprocess.Popen启动子进程时没有带close_fds=True参数

2013-12-21 18:06:19 2755

原创 eclipse中的设计模式

CompilerAdapterCompilerAdapterFactory

2013-07-23 17:02:59 1088

原创 《敏捷软件开发:原则、模式与实践》读书笔记

1、敏捷软件开发宣言个体和交互         胜过 过程和工具可以工作的软件     胜过 面面俱到的文档客户合作           胜过 合同谈判响应变化           胜过 遵循计划2、面相对象设计的原则单一职责原则开放-封闭原则Liskov替换原则替换原则依赖倒置原则接口隔离原则重用发布等价原则共同封闭原则

2013-07-19 17:20:31 2273

原创 眼界决定方法

当人们不知道世界上存在锤子的时候,估计都会觉得用石头砸可能是一个很好的办法。 有时我们做傻事时,不是我们不思考、不努力,而是我们无知。 所以,我们需要多学习新鲜事物。

2013-07-19 13:57:14 516

原创 如何避免大量的成功失败判断,如何不再纠结发现错误时是否该打印日志

问题描述:编译流程图时,逻辑复杂,嵌套很深,很多函数都有成功失败返回值,造成每层函数都出现大量的成功失败判断,并且不知道打印日志是该在函数外,还是在函数内打印,感觉每次发现失败的时候都应该打印日志,但是又觉得有打印有重复,同时,打印的日志很容易将做什么和失败原因割裂开。这两个问题困扰了我编码很多年了,一直没搞明白为什么会这样。 日志解决办法:出现上述问题,实际上是因为我犯了一个致命的错误,

2013-07-19 13:54:57 969

原创 读书

1、读书不在多,在于精读。时间有限,只能挑选精品读,效果远胜于滥读,一通百通,万变不离其宗。2、好书应该读多遍,因为随着你经验的不同,每遍的感受和收获都不同。不要期望读一遍就能理解透了,有些书当你功力不够的时候是理解不了的。

2013-07-19 10:58:46 433

原创 由学习设计模式想到的(精华2)

写代码无非追求两个目标,第一是满足需求,第二是好维护。好维护的首要前提是我们能够理解代码,其次是代码好修改。代码好修改的核心应该是良好的代码组织,设计模式主要就是用来解决代码组织的。学习设计模式时,估计有的人仅仅是记住了每个模式的形,而没有考虑每个模式是用来解决什么问题的,且更加会忽略只有代码需要变化时才会带来这些问题这个事实。正确的学习思路,应该是首先思考这个模式是用来解决什么变

2013-07-19 10:29:26 542

原创 我总结的思考方式(精华1)

不管做啥事,包括分析需求,实现需求或者完全跟写程序无关的事,最好都有自己的一套思考方式或者说做事方法。1、总纲: 多考虑分支,尽量想办法确认假设的客观性,最难知道别人怎么想,涉及到心理学2、要做什么,解决什么问题,真实需求究竟是啥,做了会怎样,不做会怎样3、涉及到哪些人,谁受益,谁损失,有啥想法,有啥矛盾,预期怎样,预期能否调整4、约束条件有哪些,环境,时间,资源等,优先级怎样,哪

2013-07-17 12:44:54 520

原创 hg clone是啥玩意

想下个python源码看看,hg clone http://hg.python.org/cpythonhg clone 命令的windows解决方法TortoiseHghttp://hi.baidu.com/niceyou/item/9f22b73f1ece7dc1382ffa5c

2013-07-15 22:19:55 3259

转载 Python编码问题总结

关于文件开头的"编码指示",也就是 # -*- coding: -*- 这个语句。Python 默认脚本文件都是 ANSCII 编码的,当文件 中有非 ANSCII 编码范围内的字符的时候就要使用"编码指示"来修正。关于 sys.defaultencoding,这个在解码没有明确指明解码方式的时候使用。比如我有如下代码:#! /usr/bin/env python # -*

2013-06-18 21:47:31 795

原创 不用TreeViewer如何实现延迟加载

因为对TreeViewer不熟,所以我自己直接用Tree实现了延迟加载功能。基本原理:监听展开事件,如果其子节点已经加载,则啥也不做。如果子节点未加载,则加载子节点。注意,每次插入一个节点的时候,都假定其有子节点,否则没法展开,采用的办法是加一个哑子节点。判断一个节点是否加载当然就是判断这个哑节点是否存在了,哑节点的特征是不会关联data。今天看了一下TreeViewe

2013-06-02 18:44:29 538

原创 如何分析java程序的内存泄漏

1、可以使用MAT工具2、注意,当MAT是插件版本的时候,打开Heap Dumps文件的时候是从主菜单File->Open File...完成的,不是从MAT的某个试图开始的哦3、不会用?看MAT的帮助。重点看Leak Suspects页面4、其他相关-Xmx512M-XX:+HeapDumpOnOutOfMemoryError

2013-06-02 13:26:21 582

转载 Fred George谈程序员的无政府主义

在 Agile India 大会的第一天,Fred George 谈到自己对目前超越敏捷运动的思考,他将这种状态称为“程序员的无政府主义”。他分享了自己在 Forward Technology 公司的一些个人经历,并指出这种方式可以形成非常高效的环境,解决复杂问题,同时带来实打实的重要业务成果。  演讲伊始,Fred 先提到 Cynefin 框架,将重点放在复杂问题上,然后他对比了传统

2013-02-04 17:57:56 430

转载 Fred George访谈录:关于敏捷开发的精彩见解

关注敏捷开发领域的程序员,对Fred George并不陌生,他是有近40年经验的国际敏捷领域大师级专家、咨询师、架构师。2011年3月中旬,他再次来华访问。值此良机,记者采访了Fred George,让我们一起分享他关于敏捷开发的精彩见解。  记者:很多人为了编写易变更的代码,在采用敏捷时,抛弃许多习惯用法,由你的经验出发,这样做是否属于重造轮子?  Fred George:这

2013-02-04 17:54:37 419

转载 反馈、无反馈、不和谐的反馈

Lisa Crispin认为,人们学习的方式各不相同,所以,也很有可能,大家提供反馈的方式也不同。Lisa建议,我们应该鼓励大家在他们熟悉的环境下提供反馈。这可能是以一对一面谈的方式、讨论会、画图的方式等等。  因此,团队需要努力地找出从“无反馈”到“有反馈”的途径,同时也需要确保团队不断地优化这个从无到有的过程。  Marc Löffler建议,除了当被问起的时候才提供反馈,

2013-02-04 17:52:38 552

转载 对于一个刚刚从程序员转型过来的架构师,通常有哪些问题是他最难把握的?

Fred:如果你从程序员的职位转型,决定自己不再是程序员了,那么你的架构师生涯将是短暂的。最好的架构师都在写代码。Kent Beck曾经写道:“代码就是设计与残酷现实之黄昏的交汇(Code is when design meets the harsh reality of dawn.)”。他的意思是,我们画出来的设计都是美好的,但最好的设计仅仅是被翻译为优雅代码的那些。一个无法将愿景带入代码的架构

2013-02-04 17:36:58 759

原创 工作中效率有待提高的点

2008.09.101.我将单独的一个V9模块加入UCC中,感觉很麻烦,很难做,很费时间,不爽的地方有:想DLL和外界的接口麻烦?设置目录结构麻烦?迁移资源麻烦?迁移资源ID麻烦?通信消息结构不好定义?界面设计不好看?定义标识符时取名难通信程序没有一定的结构模式定义了接口,然后写了一段时间又发现接口需要改动对于链路管理,存放IA的

2013-01-28 00:14:48 1891

转载 真正合格的程序员应该具有的素质

以下文章都是经典,看不看随你的便,我只希望知识掌握在更多中国人的手里!中国有很多小朋友,他们18,9岁或21,2岁,通过自学也写了不少代码,他们有的代码写的很漂亮,一些技术细节相当出众,也很有钻研精神,但是他们被一些错误的认识和观点左右,缺乏对系统,对程序的整体理解能力,这些人,一个网上的朋友说得很好,他们实际上只是一些Coding fans,压根没有资格称为程序员,但是据我所知,不少

2013-01-28 00:13:32 424

转载 谈程序员的沟通与合作

也谈程序员的沟通与合作 促使我写这篇文章的,主要是有感于《读者》中的一篇文章《请按一下九层》,作者卢青。这是全市最忙的一部电梯,上下班高峰时期,和公共汽车差不多,人挨着人。上电梯前和公司的人力资源总监相遇,说笑间,电梯来了,我们随人群一拥而进。每个人转转身子,做一小小的调整,找到了一种相对融洽的关系。这时,一只胳膊从人逢中穿过来,出现在我的鼻子前头。我扭头望

2013-01-28 00:12:57 571

原创 谈程序员的懒惰

最近一段时间总是在做一些拷贝粘贴的工作,有时明显知道我们可以通过一定的方法去提高工作效率,但是因为这些工作我们通过简单的体力劳动也可以在一定的时间内完成,只是多花那么一点点时间,殊不知,就因为我们不够懒惰,导致了我们养成了不善于探索新方法的习惯,危害其实很大的:例如:当选择一个大函数时老方法: 我选择的是用鼠标从前往后拉,要拉好久,如果出错,还要重来.更好的方法: 在UltraEd

2013-01-28 00:11:51 481

原创 设置工程属性

设置工程属性(通过一次性把工程属性设置好,可以减少不断编译发现有问题再修改工程属性设置的次数,可以节约大约1/3的时间)1.常规->输出目录: 指定编译成功的exe或dll的输出目录,对于一个解决方案中的工程,基本上都要设置它到同一个地方2.常规->字符集3.C/C++->常规->附加包含目录: 一般要设置成你引用的库(比如BCG等)的头文件目录4.C/C++->常规->调

2013-01-28 00:11:24 725

转载 阅读随笔

停止思考是一种堕落被别人指出自己的问题总不是一件会另人感到愉快的事情同时,由于不愿意进行认真的思考和深入的剖析,我们也提出了许多自不量力、好高骛远和盲目冒进的策略和做法。评判一个工具的好坏,评判使用一个工具的开发人员的水平高低,永远都只有一个标准--那就是看他能不能很好地解决所需要解决的问题。现在已不是个人英雄主义时代了,没有合作就不会有进步,没有产

2013-01-28 00:10:49 344

原创 如何成为软件高手

勤学苦练流程图结构化程序设计有意识地用于实践数据模型和用户界面的程序一定要严格分开,否则程序极难修改不要寄希望于一次就把软件设计好软件结构要分块分层软件设计的主要工作是给类分配责任最重要的是领悟能力的训练知道哪些该学

2013-01-28 00:10:07 379

原创 工作中遇到的问题

1.在用一套类的命名规则命名所有向导页之后,需求发生变化,导致新增类的命名规则和已有类不一致,冲突严重。思路:命名时考虑将来的变化,比如说假设需求变了,新的类名是否能适应现有规则,以动态的眼光看问题,不要以为什么东西都是不变的。2.程序写着写着又发现有更好的解决方案,导致改动面很大。思路:解决一个问题时考虑所有的解决方案,不要抓住一个能够解决问题的方案就写。写好一个之后严格测试

2013-01-28 00:08:44 2565

原创 工作经验总结

2007.10.16如何提高编译速度?在DMR的开发中,出现了一个怪现象,每次编译的时候,编译一个文件的时间都好长,并且每个被编译的文件都要去连接BCG的Lib文件,这种编译速度简直无法忍受?解决办法:在后面的分析中,发现我将Global.h这个头文件包含在Stdafx.h中了,并且Global.h这个文件是经常变的,程序中的大部分源文件都包含了Stdafx.h

2013-01-28 00:07:51 453

转载 编程提示经验

一 基础部分IntroductionI assume you are downloading some source code from time to time. You can learn a lot about a programmer while looking at his source code. There are some tips to help you write cl

2013-01-28 00:06:33 497

原创 《97 Things Every Software Architect Should Know》读书笔记

(从网上搜集的,并且整理为DOC文档,希望大家可以从这篇文章中学到更多的东西,我准备将该文档翻译成中文,大家可以不定期的访问我的博客http://blog.csdn.net/jianglike18)1、Don't put your resume(n.履历) ahead of therequirementsAs engineers we sometimes recommend(v.推

2013-01-28 00:03:02 12442

转载 OO设计的重要原则

1.开闭原则 (Open-Closed Principle)   模块在开放性方面应该是开放的(易于扩展),在更改性方面应该是封闭的(易于修改而不需要更改类的源代码)。   实现OCP的技术主要有多态和模板,均基于抽象。我们应该努力实现OCP以高效地复用和维护代码。2.Liskov替换法则 (Liskov Substitution Principle)   使用指向基类B(抽象类或

2013-01-28 00:01:29 440

原创 如何解决重复日志问题,谈谈错误用返回值还是用抛异常进行处理

问题描述:编译流程图时,逻辑复杂,嵌套很深,很多函数都有成功失败返回值,造成每层函数都出现大量的成功失败判断,并且不知道打印日志是该在函数外,还是在函数内打印,感觉每次发现失败的时候都应该打印日志,但是又觉得有打印有重复,同时,打印的日志很容易将做什么和失败原因割裂开。这两个问题困扰了我编码很多年了,一直没搞明白为什么会这样。 日志解决办法:出现上述问题,实际上是因为我犯了一个致命的错误,

2013-01-27 23:59:48 2058

原创 《Code Reading》读书笔记

Code Reading: The Open Source Perspective作者: Diomidis SpinellisIf you are a programmer, you need this book. 首先看附录,理解附录E中的每句话,以此检验是否理解了每一章内容。如果不能理解,请立刻回头仔细阅读,直到理解为止。 You've got a day toadd

2013-01-27 23:56:06 1205

原创 《Design Patterns Explained》读书笔记

Design Patterns Explained: A New Perspective onObject-Oriented Design作者:Alan Shalloway, James R. Trott 第一章 面向对象泛型1.2 面向对象泛型之前:功能分解功能分解是一种处理复杂问题的自然方法。功能分解方法的一个问题在于,它通常会导致一个“主”程序负责控制子程序,这是将功能分

2013-01-27 23:55:02 804

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除