摘要:adb 概述SDK的Tools文件夹下包含着Android模拟器操作的重要命令 adb,adb的全称为(Android Debug Bridge就是调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序。借助这个工具,我们可以管理设备或手机模拟器的状态。还可以进行以下的操作:1.快速更新设备或手机模拟器中的代码,如应用或Android 系统升级;2.在设备上运行shell命令;3.管理设备或手机模拟器上的预定端口;4.在设备或手机模拟器上复制或粘贴文件;adb在集成开发环境中的工作 adb的工作方式比较特殊采用监听Socket TCP 5554等端口的方式让
阅读全文
摘要:在Andorid的应用中,使用selector可以非常方便的去更改Button点击、ListView、ListItem、EditText等获取焦点时的背景图片。<?xml version="1.0" encoding="utf-8" ?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:draw
阅读全文
摘要:在AndroidManifest.xml的activity(需要禁止转向的activity)配置中加入 android:screenOrientation=”landscape”属性即可(landscape是横向,portrait是纵向)。
阅读全文
摘要:layout_weight是LinearLayout中View布局里一个很重要的属性。 所有view中的layout_weight缺省值都是为0,意味着他们只在屏幕上占据它们需要显示的空间大小。 activity根据这个View的比0大的layout_weight值来划分剩余的空间。 举例说明:假设在LinearLayout布局中,水平方向上有一个TextView和两个EidtText. TextView没有定义layout_weight值,所以它将占据最小的需要提供的空间. 如果两个EditText的layout_weight 都被设置为1, 在父布局中的剩余的宽度将被它们平分.如...
阅读全文
摘要:#include<stdio.h>#include<stdlib.h>struct node{ int key;}r[20];struct rnode{ int key; int point;};main(){ void print(struct node a[20],int n); int creat(); void shell(struct node a[20],int n); int hoare(struct node a[20],int l,int h); void quick1(struct node a[20],int n); void quick2(str
阅读全文
摘要:意图:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 单就实现保存一个对象在某一时刻的状态的功能,还是很简单的——将对象中要保存的属性放到一个专门管理备份列表的的对象中,需要的时候则调从备份的列表中将该对象的属性放回去。但是为了能让你的备份对象访问到原对象中的属性,是否意味着你就要全部公开或者部分公开对象原本私有的属性呢?如果你的做法已经破坏了封装,那么就要考虑重构一下了。 备忘录模式的组成部分: (1)备忘录(Memento)角色:备忘录角色存储“备忘发起角色”的内部状态。“备忘发起角色”根据需要决定备忘录角色存...
阅读全文
摘要:http://channel9.msdn.com/Blogs/clinted
阅读全文
摘要:意图:使多个请求对象都有机会处理请求,从而避免请求对象的发送者和接收者之间的耦合关系。将这些请求对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。职责链模式典型结构图 职责模式中ConcreteHandle将自己的后继对象(向下传递消息的对象)记录在自己的后继表中,当一个请求到来时,ConcreteHandle先会检查自己有没有匹配的处理程序,如果有就自己处理,否则就传递给他的后继。下面的实例程序中只是简化了一下,ConcreteHandle只是简单的检查看自己有没有后继,有的话将请求传递给后继进行处理,没有的话就自己处理。示例代码:class Handler{public:.
阅读全文
摘要:下面这张UML示例图是从《大话设计模式》截出来的:对上面的UML图例之间的关系做一下总结:一、关联(association) 两者之间只是一种“知道”的关系,耦合度非常小。例如上图中的企鹅类与气候类。 图形表示:用一根连接类的实线表示,用箭头表示关联的方向;如果不明确指明方向,则默认关联是双向的。 二、 聚合(aggregation) 聚合体现了类之间的一种整体与部分的关系,表示一种很弱的“拥有”关系。体现了一种层次结构,整体类位于部分类的上层,多个部分类处于并列的层次 。 图形表示:尾端带一个菱形的单箭头直线,菱形指向整体部分 。三、 组合(composition) 组合是一种很强的“拥有.
阅读全文
摘要:相同点:都可用于申请动态内存和释放内存不同点:(1)操作对象有所不同。malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加malloc/free。(2)在用法上也有所不同。函数malloc 的原型如下:void * malloc(size_t size);用malloc 申请一块长度为lengt
阅读全文
摘要:在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为: #Pragma Para 其中Para 为参数,下面来看一些常用的参数。 (1)message 参数。 Message 参数是我最喜欢的一个参数,它能够在编译信息输出窗口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: #Pragma message(“.
阅读全文
摘要:一、Debug和Release编译方式的本质区别Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。Debug和Release的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd/Fo,但区别并不重要,通常他们也不会引起Release版错误,在此不讨论)Debug版本:/MDd/MLd或/MTd使用Debugruntimelibrary(调试版本的运行时刻函数库)/Od关闭优化开关/D"_DEBUG&
阅读全文
摘要:在VC程序中使用调试语句为了更好地对程序调试,可以使用如下方法:使用断言、使用跟踪语句、使用异常和返回值。一、断言1、基本概念 断言是一种让错误在运行时候自我暴露的简单有效实用的技术。它们帮助你较早较轻易地发现错误,使得整个调试过程效率更高。 断言是布尔调试语句,用来检测在程序正常运行的时候某一个条件的值是否总为真,它能让错误在运行时刻暴露在程序员面前。使用断言的最大好处在于,能在更解决错误的发源地的地方发现错误。断言具有以下特征:.断言是用来发现运行时刻错误的,发现的错误是关于程序实现方面的。.断言中的布尔表达式显示的是某个对象或者状态的有效性而不是正确性。.断言在条件编译后只存在于调试..
阅读全文
摘要:使用VisualC++调试器调试一、调试版本与发布版本 有时程序能在调试版本运行但不能运行于发布版本,反之也有可能。一般说来,一个发布版本意味着某些类型的优化,而一个调试版本则没有优化。下面我们来看看它们的区别:1、特别针对调试版本的编译选项(1)/MDd,/MLd或者/MTd 调试版本的运行时刻库有调试符号,使用了调试堆,调试堆的目的是发现内存破坏和内存泄漏,并且向用户报告源代码的哪个地方出了问题。特性:.调试版本的运行时刻库对内存的分配作了跟踪,允许用户检查内存泄漏。.在刚分配的内存里写上0xCD的字节模式,用0xCD来填充刚分配的内存,有助于发现数据未被初始化的错误。.在被释放的内存..
阅读全文
摘要:理解内核对象,先要了解什么是内核。内核可以理解为一个人的大脑,我们知道大脑能控制一个人的行为,但是大脑并不是直接控制,而是是通过神经来传递命令,内核对象就是操作系统的神经。内核对象实际上就是一些只有内核才能访问的内存数据,内核通过访问这些数据来完成对系统的控制,上层可以看到内核对象,并执行对它的一些操作,但是却无法访问这些数据。进程、线程、作业等都是内核对象,你可以操作它们却不能访问它们。
阅读全文
摘要:1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。2.sizeof是算符,strlen是函数。3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''/0''结尾的。4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。5.大部分编译程序在编译的时候就把sizeof计算过了是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因charstr[20]="0123456789"; //
阅读全文
摘要:char* s1 = "hello"; char s2[] = "world";相同点:都是表示一个字符串。不同点:操作系统对它们在内存中的存储方式作了不同的处理。下面是测试代码:#include <iostream.h>int main(){ char *S1 = "Hello"; char S2[] = "World";// *(S1+2) = 'x'; // 执行时出错。 *(S2+5) = 'x'; // 执行时正确。 *(S2+6) = '/0'
阅读全文
摘要:前段时间碰到一件很奇怪的事情,在ListView中使用ImageView能将图片显示出来,而在widget中使用ImageView却显示不出来,刚开始以为是widget的布局有问题,后来确定不是widget布局的问题,没办法,尝试着对源数据中的图片大小进行裁剪缩小,图片终于在widget的ImageView中显示了出来,猜测是widget对ImageView有影响。
阅读全文
摘要:一、安装Cygwin软件;二、下载git软件;三、安装git-1.7.3.2.tar.bz2$ tar jxvf git-1.7.3.2.tar.bz2$ make install四、安装Repo, 在home目录创建bin目录,然后获取Repo并授于它执行的权限;$ cd ~$ mkdir bin$ curlhttp://android.git.kernel.org/repo>~/bin/repo$ chmod a+x ~/bin/repo接下来把bin目录加入$PATH:$ export PATH=$HOME/bin:$PATH五、在home目录创建mydroid目录用来存放Andr
阅读全文