- 博客(33)
- 资源 (2)
- 收藏
- 关注
转载 Android display
<br /><br />From: http://blog.csdn.net/bonderwu/archive/2010/08/12/5805961.aspx<br /><br />Android display架构分析(一)<br />http://hi.baidu.com/leowenj/blog/item/429c2dd6ac1480c851da4b95.html<br />高通7系列硬件架构分析<br /><br />如上图,高通7系列 Display的硬件部分主要由下面几个部分组成:<br
2011-04-08 18:03:00 6996
转载 CTS test failed ----- android.graphics.cts.YuvImageTest#testCompressYuvToJpeg
From:http://code.google.com/p/android/issues/detail?id=11290Reported by [email protected], Sep 16, 2010Below test was executed on emulator.cts_host > start test android.graphics.cts.YuvImageTest#testCompressYuvToJpeg==============================
2011-03-24 18:00:00 1658
原创 杂乱的3.14
Launcher2:一、launcher.xml分析: DragLayer是整个屏幕。对于Workspace,在Launcher.xml源码中,说, 但是,我觉得应该是. 应该是有5个cell的,就是通过左下脚和右下脚那些“点点”切换出来的那5个桌面。对于源码中的那两个ClippedImageView就是左下脚和右下脚那些“点点”。对于DeleteZone,应该是当用户在桌面上长按一个widget时,把手位置就会出现一个垃圾桶形状的控件,就是这个控件。 对于Han
2011-03-14 17:31:00 1977 5
原创 杂乱的、未整理的
http://gqdy365.javaeye.com/blog/861047getTag()取得标签成员变量可以先使用,后定义在Java中标示符只能是以字符、“$”或者“_”开头在Java中布尔类型的值不能为0、-1等其它值,只能为true或false。这点与C语言是不同的Java中用String来定义一个字符串,其类型为类类型Java数据类型(原始数据类型):布尔类型:boolean字符类型:char整数类型:byte(1),short(2),int(4),long(8)浮点类型:float(4)双精度类
2011-03-09 16:52:00 1609
转载 双向链表的基本操作
<br />#include <stdio.h> <br />#include <stdlib.h> <br /><br />typedef struct Node<br />{<br /> int data;<br /> struct Node * next;<br /> struct Node * prior;<br />}NODE, *PNODE;<br /><br />PNODE create_list(void); //创建节点<br />
2010-11-04 13:56:00 538
原创 网络编程
<br />1、端口号是用来区分用户程序的。<br />2、其实,只要撑握了UNIX域的编程,那么网络编程就显得简单了。<br />3、UNIX域:UDP 和 TCP<br /> 网络: UDP 和 TCP<br />4、下面是相关的例程:<br />一、首先是UNIX域的编程:<br />1、C<br />/*UNIX域:UDP_client*/<br />#include <sys/socket.h><br />#include <sys/types.h><br />
2010-10-18 15:25:00 629
原创 多线程
多线程-、主要函数:二、1、cpu调度的基本单位是线程。线,进程对于kernel而言没有什么区别,在内核里有相应的task_struct(任务描述符) 线程与进程:1)调度一样2)线程的创建成本会快一些2、线程,地址空间是共享的pthread_self();pthread_create();pthread_exit(NULL);pthread_join(tid,NULL);创建多个线程: pthread tid[5] ; pthread_create(tid+i,
2010-10-06 10:38:00 496
原创 文件锁
文件锁一、主要函数:fcntl二、读锁是共享锁,读排斥写F_SETLKW是F_SETLK的一个阻塞版本(SEEK_SET,0,0)锁整个文件l_len要么是0,要么大于0l_type 只能由自己修改F_GETLK测试一把锁注意:子进程不继承文件锁用锁的时候,不要用标准I/O(fread,fwrite),应用read,write死锁:系统遇见死锁,它会选择一个进程退出,退出的这个进程一般是最后一次加锁失败引起死锁的那个进程kill(pid,SIGINT)
2010-10-06 10:37:00 754
原创 守护进程
守护进程1、setpgid一般用不着2、一个进程只能为它自己或其子进程修改进程组3、会话-----多个进程组的集合4、setsid-----进程组的组长不能setsid5、守护进程没有控制台ps -axj服务器应该是一个守护进程(LANQQ)守护进程最大的特点是不占用终端/*damon.c*//*守护进程*/#include #include #include #include int daemonize(int n
2010-10-06 10:35:00 526
原创 高级I/O
高级I/O一、主要函数:select,poll,epoll,readv,writev二、1、select,poll,epoll的作用就是监视多个I/O.如果不希望被某些信号打断可用pselect,ppoll.2、select每次用select之前都要构造一下。当监视读一个写端关闭的进程时,select总是能返回。3、pollPOLLIN 读,POLLOUT写struct pollfd fds[2];nfds = 2;fds[0].fd = 0;fds[0].events = POLLIN;fds[1].fd
2010-10-06 10:26:00 757
原创 进程间通信
进程间通信一、主要函数:pipe();msgsnd();msgrcv();二、1、管道:pipe()一切设备皆文件管道属于内核,是内核的一片内存,fork不会有这样的内存管道没有数据时会阻塞。一旦数据被从管道里读出来,那么管道里就没有这个数据了。管道的数据,读完了就没有了,不像文件。管道pipe要在fork之前2、fifo1)用mkfifo创建一个fifo文件"saif" fifo也是有大小限制的,最大为65536,如果没有数据也会阻塞 注:尽量少用fifo2)/*如果写端已关闭,那么读端不再阻塞,会跟
2010-10-05 17:09:00 966
原创 信号
信号一、主要函数:signal();alarm();pause();setitimer();sigprocmask();sigaction();二、kill -l 列出当前支持的信号不存在编号为0的信号普通信号不排队,实时信号排队(但一般我们用不着) 异种信号允许嵌套,那一个未完也可嵌入另一个; 同种信号不允许嵌套,同种信号不排队,所以为了防止信号丢失,信号处理一定要快。1、signal对信号的处理有三种方式:1)捕捉信号,signal(SIGINT,sig_handler); void sig_h
2010-10-05 16:51:00 766
原创 进程
进程一、主要函数:fork();wait();waitpid();exec家族;system(); 其它函数:getppid();getrlimit();atexit();strtok();getline();二、1、fork()用于创建一个子进程 1)父进程中,在fork之后修改全局变量的值,不会影响到其子进程的变量 2)子进程中修改变量的值并不影响父进程不该变量的值,即使这个变量为全局变量 3)一般父进程先执行。 4)但是,父、子对文件的操作是互相影响的.#include #include #in
2010-10-05 16:35:00 523
原创 加密
加密一、主要函数:crypt();二、1、注意:crypt加密,GCC编译时要加上参数-lcrypt2、char *res = (char *)crypt(argv[1], "abc");三、例程:1、/*crypt.c*/#include #include int main(int argc, char **argv){ char *res = (char *)crypt(argv[1], "abc"); printf("%s/n", res);
2010-10-05 16:18:00 530
原创 时间和日期
时间和日期一、主要函数:time();ctime();strftime();localtime();gettimeofday();二、/*2010-09-18*//*时间和日期*//*time()返回值是以秒为单位的,ctime()以固定的格式输出时间日期,strftime()可以按照某种格式打印,也就是自定义打印格式。localtime()返回符合认知的时间,gettimeofday()可以精确到微秒。*/#include #include #include #include typedef long l
2010-10-05 16:12:00 720
原创 文件I/O
文件I/O一、主要函数:open(),creat(),read(),write(),close(),fcntl(),lseek()二、open,creat,read,write,close等函数的操作与文件描述符fd有关。1、对于open函数而言,仅当创建新文件时才使用第三个参数,由open返回的文件描述符一定是最小的未用描述符数值,常用的常量有O_CREAT,O_TRUNC,O_NONBLOCK,常用open函数代替creat2、lseek成功执行,返回新的文件偏移量(相对于文件头0所偏移的量);比较ls
2010-10-05 16:06:00 674
原创 文件和目录
文件和目录一、主要函数:access();dup();dup2();opendir();readdir();closedir();mkdir();chdir();stat();lstat();sprintf();strstr();bzero();truncate();link();unlink();symlink(),readlink();rename();rename();二、1、access用于测试对文件的访问权限,比如说测试某个文件是否可读:access(“file.txt”,R_OK),若成功则返回
2010-10-05 15:12:00 488
转载 mmap函数的使用
<br />UNIX网络编程第二卷进程间通信对mmap函数进行了说明。该函数主要用途有三个:<br />1、将一个普通文件映射到内存中,通常在需要对文件进行频繁读写时使用,这样用内存读写取代I/O读写,以获得较高的性能;<br />2、将特殊文件进行匿名内存映射,可以为关联进程提供共享内存空间;<br />3、为无关联的进程提供共享内存空间,一般也是将一个普通文件映射到内存中。<br />函数:void *mmap(void *start,size_t length,int prot,int flags,i
2010-10-05 10:42:00 427
原创 (myls)模拟" ls "命令
/*2010-09-16*//*模拟" ls "命令*//*myls*/#include #include #include #include #include #include #include #include void myls(const char* path){ const char* savepath=path; char BUF[500]; struct stat buf; int ret; bzero(BUF,500); ret=lstat(path,&b
2010-09-16 20:50:00 3978
原创 mycp
/*2010-09-14*//*1 实现一个mycp,功能如同cp 例如: ./mycp /etc/passwd /tmp/passwd*//* *打开要被复制的文件1,同时创建一个新的文件2,读文件1到BUF,然后将BUF的内 *容写到文件2 * */#include #include #include #include int main(int argc,char** argv){ if(argc!=3) { perror("argc"); exit(1);
2010-09-14 20:35:00 1038
转载 右左法则
<br />C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的:<br /> <br />The right-left rule: Start reading the declaration from the innermost pare
2010-09-12 21:00:00 380
原创 排序
<br />/*2010-09-12*/<br />/*排序*/<br />#include <stdio.h><br />/*************************************************************<br /> *选择排序法:<br /> 选出最小的放在第一个位置,第二小的放第一个位置......<br /> *用k记住所找数中最小数的下标<br /> *<br /> * ******************************************
2010-09-12 19:19:00 351
原创 递归
<br />/*2010-09-12*/<br />/*递归*/<br />/**********************************************************************<br /> *拿下面的cutpie(n)来说一下递归,假如n=3,那么main函数调用cutpie(3),进到cutpie(3)后,去到那return cutpie(3-1)+3 这里,按理说返回cutpie(3-1)+3不就完事了吗,但是cutpie(3-1),即cutpie(2)又是多少
2010-09-12 17:11:00 331
原创 静态库与动态库(共享库)
<br />静态库(.a)与动态库(.so)<br />静态库:在编译过程中将库函数的代码直接加入到生成的可执行程序中,程序运行过程中不需要利用库函数。<br />静态库的东西都要以静态链接的方式来生成。由于代码就在可执行程序中,所以它执行起来比较快,但是,它造成了可执行程序的臃肿。<br />共享库(动态库):编译时,只是在生成的可执行程序中简单指定需要使用的库函数信息,在程序执行的时候才与函数建立映射关系。(接口,.so,不需要重新编译,所以升级快)。<br />创建静态库:<br />静态函数库是一组
2010-09-11 16:57:00 494
原创 单向链表
/*2010-09-07*//*单向链表*/#include #include #include typedef struct node//每一个节点就是一个结构体类型的数据{ int x; struct node* next;}NODE;//typedef NODE struct node//不能这样宏定义!/********************************************************* *函数名称:init_list *函数功能:初始化单向链表 函数参数
2010-09-09 12:22:00 543
原创 用链表实现队列
<br />/*2010-09-09*/<br />/*用链表实现队列*/<br />#include <stdio.h><br />#include <stdlib.h><br />#include <string.h><br />#ifdef D<br /> #define DEBUG(format, ...) printf(format,##__VA_ARGS__)<br />#else<br /> #define DEBUG(format, ...) do{}while(0)<br />
2010-09-09 11:45:00 1028
原创 文件
<br />/*2010-09-08*/<br />/*文件处理函数*****************************************************<br /> *fopen();fread();fwrite();rewind();fseek();fflush();sleep();<br /> *<br /> * ***************************************************************/<br />#include <stdio
2010-09-08 21:04:00 467
原创 学生管理系统
<br />/*学生成绩管理系统*/<br />/*2010-09-08*/<br />#include <stdio.h><br />#include <stdlib.h><br />#include <string.h><br />#define N 2<br /> <br />typedef struct student<br />{<br /> char name[20];<br /> int chinese;<br /> int math;<br /> struct stu
2010-09-08 21:01:00 419
原创 位域
<br />位域<br />/*2010-09-08*/<br />/*位域*/<br />#include <stdio.h><br />#include <stdlib.h><br /> <br />typedef struct object<br />{<br /> unsigned char status:3;//加unsigned!<br /> unsigned char setting:3;<br /> unsigned char power:2;<br />}OBJ;<br
2010-09-08 20:53:00 362
原创 类型转换
<br />两种转换方式:<br />1、隐式转换<br />2、强制转换<br />/*2010-09-06*/<br />/*类型转换*/<br />#include <stdio.h><br />int main()<br />{<br /> double d=100.25;<br /> int x=d;<br /> int *pint=(int*)&d;<br /> printf("x=%d/n",x);//结果为100,x取d的整数部分;<br /> printf("
2010-09-06 08:45:00 426
转载 浮点数在内存中的存储
<br />浮点数在内存中的存储<br />/*看float型,double型数据在内存中的存储*/<br />#include <stdio.h><br />int main(void)<br />{<br /> int i;<br /> float x=16.25;<br /> //double x=16.25;<br /> // printf("sizeof(x)=%d/n",sizeof(x));<br /> unsigned char* ptr = (unsigned
2010-09-05 20:36:00 1411
原创 (Struct)内存对齐
<br />对内存对齐的理解:<br /> (struct)内存对齐的规则是:<br /> 1、对于结构的各个成员,第一个成员位于偏移为0的位置,以后每个数据的偏移量必须是Min(编译器被指定的对齐字节数,该数据成员的自身长度)的倍数。<br />GCC中,Min(系统默认(4), 数据成员自身长度(char/short/int/double))。<br /> 2、在数据成员完各自对齐之后,结构体(或联合体)本身也要进行对齐,对齐将按照编译器被指定的对齐字节数和结构体(或联合体
2010-09-05 13:50:00 5836 1
原创 堆和栈
一直都没搞清楚什么是堆,什么栈。以下这一段代码有助于理解它们:/*2010-09-04*//**************************************************************** *有关堆和栈 * * ***************************************************************/#include #include char *Getmamory1(void){ char *p="hello world";//此
2010-09-05 13:31:00 630
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人