- 博客(60)
- 收藏
- 关注
原创 Service深入分析
Service深入分析<br />转csdn<br /><br />上一章我们分析了Android IPC架构,知道了Android服务构建的一些基本理念和原理,本章我们将深入分析Android的服务。Android体系架构中三种意义上服务: Native服务 Android服务 Init空间的服务,主要是属性设置,这个IPC是利用Socket来完成的,这个我将在另外一章来讨论。<br />Navite服务,实际上就是指完全在C++空间完成的服务,主要是指系统一开始初始化,通过Init.rc脚本起来的服务,
2010-12-09 18:56:00
671
原创 Binder 核心分析
<br />转 csdn<br />我首先从宏观的角度观察Binder,Service,Service Manager,并阐述各自的概念。从Linux的概念空间中,Android的设计Activity托管在不同的的进程,Service也都是托管在不同的进程,不同进程间的Activity,Service之间要交换数据属于IPC。Binder就是为了Activity通讯而设计的一个轻量级的IPC框架。<br />在代码分析中,我发现Android中只是把Binder理解成进程间通讯的实现,有点狭隘,而是应该站在
2010-12-09 18:53:00
652
原创 IPC 机制Binder 剖析
<br />转自李先静<br />o IBinder接口<br />IBinder接口是对跨进程的对象的抽象。普通对象在当前进程可以访问,如果希望对象能被其它进程访问,那就必须实现IBinder接口。IBinder接口可以指向本地对象,也可以指向远程对象,调用者不需要关心指向的对象是本地的还是远程。<br />transact是IBinder接口中一个比较重要的函数,它的函数原型如下:virtual status_t transact(uint32_t code,const Parcel&
2010-12-09 11:51:00
1110
原创 基于V4L2的视频驱动开发
<br /> 转自 csdn <!-- @page { margin: 2cm } PRE { font-family: "DejaVu Sans" } P { margin-bottom: 0.21cm } --> 基于V4L2的视频驱动开发<br />v4l2 操作实际上就是 open() 设备, close() 设备,以及中间过程的 ioctl() 操作。对于 ioctl 的调用,要注意对 errno 的判断,如果调用被其他信号中断,即
2010-12-08 11:48:00
2493
原创 关于生活的思考
<br />突然发现这不是我想要的,<br /> <br />工作三五年,年薪十万,买房,养家,拮据。。。。<br /> <br />我要改变。。。
2010-10-24 10:10:00
604
1
原创 关于博望网站(broncho)问题
博望网站今天改版发布,作为主要设计者我还是很开心的,看到自己的东西发布当然开心,但是网站存在几个问题需要解决:首先是美工的图片做的有些粗糙其次没有考虑到服务器在美国再次是浏览器兼容还存在一点问题
2010-09-30 17:58:00
608
原创 几道有趣的与程序无关的面试题
<br /> 这些问题与程序无关,但是很有趣,拿出来大家消遣一下<br /> <br />(1)一块钱不见了<br /> <br /> 有3个人去投宿,一晚30元.三个人每人掏了10元凑够30元交给了老板.后来老板说今天优惠只要25元就够了,拿出5元命令服务生退还给他们,服务生偷偷藏起了2元,然后,把剩下的3元钱分给了那三个人,每人分到1元.这样,一开始每人掏了10元,现在又退回1元,也就是10-1=9,每人只花了9元钱,3个人每人9元,3 X 9 = 27元 + 服务生藏起的2元=29元
2010-09-12 10:13:00
895
1
原创 庆祝Broncho的A301正式发布
<br /> 公司最近发布了一款低端的android系统的商务手机A310,作为一名Broncho团队的成员,真心的希望自己参与的项目是个成功的产品。<br /> 先给自己鼓励一番,请自己吃个冰激凌吧,要不去看一看大海?呵呵呵<br /> 总之哦<br /> 开心的时刻!<br />期待哦。。。
2010-09-11 09:05:00
579
1
原创 程序员的一天----时间、事件、感觉
<br />程序员的一天总是如此次的有规律:<br /> <br />人物:我(一个程序员)<br />时间:某一天<br />事件:一天发生的事情<br />地点:中国、广东、深圳<br />公司制度:早上9:00上班,晚上6:00下班<br /> <br />今天是这样的:<br /> <br />时间:早上6:00<br />事件:闹铃声响起、起床、刷牙洗脸、下楼买早餐、边走边吃、赶公交。<br />感觉:一天开始<br /> <br />时间:早上7:00<br />事件:公交车上奋斗<br />感
2010-09-11 08:53:00
911
2
原创 常见的与内存有关的错误总结
常见的与内存有关的错误总结 对c语言的程序员来说,管理和使用内存可能是个困难的、容易出错的任务.与存储器有关的错误属于那些最令人惊恐的错误,因为他们经常在运行的时间和空间上都在距错误根源很远的地方才表现出来,程序在最终失败之前已经运行了很长时间,而且程序终止的位置距离出错的位置已经很远了。所以这类错误很难被查出来,也很难发现。但是对于常见的内存错误如果很熟悉的话就会更早的发现与避免错误的发生。下面我总结了常见的与内存有关的错误: 内存泄漏 内存泄漏通常
2010-09-03 19:27:00
683
原创 我是如何成为程序员的
转载请标明出处:http://blog.csdn.net/ecorefeng作者:朱克锋 英语情节 我接触计算机编程应该说是一种偶然,高考考入某工业大学,学习食品科学,和大多数大学生一样我并不喜欢自己的专业,调剂害死人啊,呵呵呵。。。 从进入大学的第一天起我就给自己定下了最低限度:不能挂科!只要有了限度,那就可以肆无忌惮的做自己的事情了,这是我的做事方法,我不断地寻找自己喜欢的东西,不久我决定学习英语,我是那种很愚笨的人,盯上某件事就不会轻易放弃的人,于是报新东方英语培训班的课,能报的几乎全
2010-08-28 11:30:00
806
原创 我是如何成为程序员的--给在学习编程的同学一些建议
作为文章的结尾,我想把一些建议写出来,其实不能说是建议,是经理与感触吧。 1,不管你是计算机专业还是非计算机专业的,你都可以成为程序员,并且可以成为一个优秀的程序员,只要你努力。 2,不管你是计算机专业还是非计算机专业的,如果你想成为程序员你都要努力学好《数据结构》《操作系统》《编译原理》《组成原理》等等一大批基础课程 3,不管你是计算机专业还是非计算机专业的,如果你想成为程序员你都要努力学好C语言,不管你喜不喜欢,当然如果你不喜欢你怎么会想成为程序呢呵呵呵呵,所以你一定喜欢
2010-08-28 11:21:00
655
原创 我是如何成为程序员的--实习与工作
<br /> 我是大三的下学期开始实习的,是一位老师找到我说给我一份兼职,搞编程的,我当然欣然答应了。<br /> 工作任务就是老师从外面接来项目让我们做,象征性的付给我们一些薪水,不过千万不要看重这些薪水,要看重这份工作,在做项目过程中把学到了东西实践化、系统化很是提升能力,正是这份兼职让我走上了程序员的道路。<br /> 我的第一份工作,也是我目前从事的工作,公司也是原来的公司,大四我离开学校只身前往深圳,加入一家通讯公司做服务器与互联网开发,我所在的部门是公司的一个高端产品部门,是一
2010-08-28 11:10:00
997
原创 我是如何成为程序员的--在疯狂中堕落
<br /> 事情与很多偶然性,我后来学习Java语言也不例外<br /> 大三的时候开始接触Java语言,事情起因是以为老师说和我谈论面向对象这种东西,当时我对面向对象与面向过程根本没有什么概念。之后不久我就开始对Java语言进行了学习,我的堕落也由此开始。<br /> Java语言可以说是一种纯粹的面向对象的语言,它简单高效,学习Java因为有了C的基础,一开始就有了比较好的思路,学起来相对轻松但深入学习还是要下一番功夫的,这时我已经堕落的很严重了,虽然不抽烟、不喝酒、不打游戏,但是对
2010-08-28 10:58:00
551
原创 我是如何成为程序员的--C的故事
《C语言程序设计》给我的影响可以说是以痛苦开始的 和以前一样,我依然逃课,学习英语,过程并无多大差距,乃至很多代课老师都会瞪着眼睛问我你是这个班级的的吗?更有甚者打电话到系办确认我这个学生的存在! 为什么说我的C语言是从痛苦开始的呢?过程是这样的,因为过分的逃课,我甚至都没有见过带我们《C语言程序设计》的老师,在期末考试来临时,我和原来一样认为这些课花一天时间突击一下就过了(最低限度是不挂科,过了就行),可是当我拿起《C语言程序设计》课本的时候,我发现我犯了一个致命的错误:因为它是
2010-08-28 10:24:00
649
原创 我是如何成为程序员的--英语与C
<br /> 英语情节<br /> <br /> 我接触计算机编程应该说是一种偶然,高考考入某工业大学,学习食品科学,和大多数大学生一样我并不喜欢自己的专业,调剂害死人啊,呵呵呵。。。<br /> 从进入大学的第一天起我就给自己定下了最低限度:不能挂科!只要有了限度,那就可以肆无忌惮的做自己的事情了,这是我的做事方法,我不断地寻找自己喜欢的东西,不久我决定学习英语,我是那种很愚笨的人,盯上某件事就不会轻易放弃的人,于是报新东方英语培训班的课,能报的几乎全报了,只要有时间就猛背单词,结果呢,一年后单
2010-08-25 22:55:00
614
原创 深入理解堆和栈(选)
在网上浏览时看到这篇文章,对堆栈做了很深入的探讨,故转来和大家一起学习。堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变
2010-08-20 08:07:00
772
2
原创 一篇经典的Single-Thread Model原著(节选)
Although the normal situation is to have one servlet instance per registered servlet name, it is possible for a servlet to elect instead to have a pool of instances created for each of its names, all sharing the duty of handling requests. Such servlets ind
2010-08-15 11:18:00
2073
1
原创 多线程UDP传输协议
转载请注明出处:http://blog.csdn.net/ecorefeng作者:朱克锋UDP(User Datagram Protocol) (UDP)是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。是一个简单的面向数据报的传输层协议,IETF RFC 768是UDP的正式规范。 UDP 协议基本上是 IP 协议与上层协议的接口。 UDP 协议适用端口分别运行在同一台设备上的多个应用程序。 与 TCP 不同, UDP 并不提供对 IP 协议的可靠机制、流控制以及错误
2010-08-14 10:00:00
5282
3
转载 目标管理的SMART原则
<br />在目标管理中,有一项原则叫做「SMART」,分别由「Specific、Measurable、Attractive、Realistic、Traceable」五个词组组成。这是订定工作目标时,必须谨记的五项要点。<br />s即specific,代表具体的,指绩效考核要切中特定的工作指标,不能笼统;<br />m即measurable,代表可度量的,指绩效指标是数量化或者行为化的,验证这些绩效指标的数据或者信息是可以获得的;<br />a即attainable,代表可实现的,指绩效指标在付出努力的情
2010-08-14 09:43:00
1314
原创 学习Linux的必学60个基本命令(摘抄)
来源:开放系统世界 Linux 系统信息存放在文件里,文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是 一封信、一个通讯录,或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容。 Linux文件系统具有良好的结构,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。 file 1.作用 file通过探测文件内容判断文件类型,使用权限是所有用户。 2.格式 file [options] 文件名 3.[opti
2010-08-14 09:36:00
583
原创 Linux 脚本编写基础--如何写出hello world
转载请注明出处:http://blog.csdn.net/ecorefeng作者:朱克锋用Shell写一个hello world需要的Shell脚本知识很简单,但对于学习Shell来说还是很重要的,写完并运行helloworld之后就能对Shell有个基本的认识,所以一般语言教学都会用一个helloworld程序开始,废话不多说:Shell helloworld执行语法基本介绍程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在
2010-08-14 09:30:00
1088
原创 如何理解垃圾回收(gc)
转载请注明出处:http://blog.csdn.net/ecorefeng作者:朱克锋1:垃圾回收机制由JVM完全负责,编写者在抛弃对象时不必关系空间回收问题2:JVM的垃圾回收机制对堆空间做实时监测,当发现某对象的引用计数为0时,就将该对象列入待回收系类中并不是马上予以销毁3:某个对象被认定为没有必要存在了,那么它所占用的内存就可以被释放,被回收的内存可以用于后续的再分配,并不是对象被抛弃后就立即被回收,垃圾回收器通常只在有对象要回收且系统需要回收时才运行,因此用户无法知道垃圾回收发生的精确时间4:sy
2010-08-14 09:13:00
1352
原创 桂林行--不想再回
转载请注明出处:http://blog.csdn.net/ecorefeng作者:朱克锋很久以前便知桂林山水甲天下,一直以来令我魂牵梦萦心驰神往。但由于种种原因,始终没能梦想成真。 2010年七月,公司组织旅游,终于圆了我的夙愿。 抵达桂林是当天的早上7点,一到桂林尚未下榻酒店,导游便直接带我们去游丽江景区。漓江宛若一条玉带萦绕桂林,把桂林山水相连,引人遐思。漓江更像一条生命线,使桂林的山水更具灵气,如诗如画。我们一到桂林天空下起了小雨。也让我们领略了“秋北京、夜上海、雾重庆、雨桂林”的名城气
2010-08-14 08:55:00
1013
1
原创 做人处事的原则--西点22条军规
初入职场,做人处事的大道理我不懂,偶尔挺起别人谈论也没有太多感触,感觉很残酷,很虚伪,有时有感觉很无奈,总是迷茫,其实认真做事、干净做人就好,看过很多传记类的书籍感慨很多,在《西点军校史》中的22条军规令我敬佩,列出来大家一起分享:西点军校22条军规:1、无条件执行2、工作无借口3、细节决定成败4、以上司为榜样5、荣誉原则6、受人欢迎7、善于合作8、团队精神9、只有第一10、敢于冒险11、火一般的精神12、不断提升自己13、勇敢者的游戏14、全力以赴15、尽职尽责16、没有不可能17、永不放弃18、敬业为魂
2010-08-14 08:29:00
656
转载 Linux系统管理学习计划
随着Linux应用的扩展,许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。作为一个Linux系统管理员,我看了许多有关Linux的文档和书籍,并为学习Linux付出了许多艰苦的努力。当真正获得了一份正式的Linux系统管理工作后,我更加深 刻地理解了Linux的灵魂:服务于多用户。Linux系统知识是非常广博的,但是只要掌握了重点知识,管理它并没有想象中的那么可怕。在下面我会将作为 系统管理员的一些工作心得和总结出来的经验系统地介绍给大家。 1.学习的目
2010-08-14 07:57:00
481
转载 从能力到素质——谈谈个人能力的系统性
文/周爱民什么是能力,而什么又是素质呢?前者可以变成行动方案,是可以有技术方法,进而有技巧的;后者则是涵养,先天因素或许有一部分,但更多的则要靠累积。素质提升与能力提升有一定的关系,但并不是强耦合的,例如我们不能指望一个没有代码经验的人能在调试时准确地设下断点,同样也不能指望写了几十年的程序的人就不犯低级的错误。但是,总体来说,当一个人在某方面的素质得以提升的时候,相应的能力总是表现出很大的增强。反过来说,往往的,能力的提升在于对个人素质的拷问。1.看山见形,看水见势,是谓大局我们学知识有两种情况,一种是大
2010-08-13 20:27:00
543
原创 C语言栈的实现--学习组合设计(二)
在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。要点:堆:顺序随意栈:后进先出(Last-In/First-Out)在这里不仅仅是实现了栈,我想通过这个栈体现组合意义首先看一下前面我写的链表,看一下代码的实现,然后再来看这个栈的实现,会发现组合的威力是多么的巨大和前面一样先定义结构:typedef struct _Stack{ D
2010-08-13 19:55:00
639
原创 C语言队列的实现--学习组合设计(一)
队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 在队列这种数据结构中,最先插入在元素将是最先被删除;反之最后插入的元素将最后被删除,因此队列又称为“先进先出”(FIFO—first in first out)的线性表。还有一种双向的Queue实现Deque。这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂。需要说明的是LinkedList也已经加入了
2010-08-13 19:38:00
1229
原创 C语言动态数组的完整实现
数组的有点在于随机存取,然而其不足也是明显的,就是一旦建立其大小就不能改变。若用数组存储数据,则必须创建一个可能存放的最大空间的数组,这无疑浪费了空间。动态数组解决了这个问题。动态数组的思路是:先建立一定大小的数组,向这个数组中存放数据,如果数组已满,则重新申请一个更大的空间来存放。每次重新申请时可以指定增量的大小(一般为原来数据的1.5倍),也可以固定大小。这样做的好处是空间浪费不多,其不足是重新申请空间浪费时间,每次重新申请空间时须将原来的数据拷贝到新申请的空间,当数组很大时,这种浪费还是相当可
2010-08-13 19:24:00
5514
转载 程序中的数据存储剖析
未初始化的全局变量(.bss段) 已经记不清bss代表Block Storage Start还是Block Started by Symbol。像我这种没有和那些古董级计算机打过交道的人,终究无法理解这样怪异的名字,记不住也就不足为奇了。不过没有关系,我们不必纠结于bss究竟代表什么,而是要弄清楚bss段中都会存放些什么数据、这些数据都有什么样的特点以及我们该如何使用它们。 通俗地讲,bss段被用来存放那些没有初始化或初始化为0的全局变量。它有什么特点呢,让我们先来看看一个小程序的表现。
2010-08-13 18:55:00
832
原创 通过冒泡排序(C语言实现)学习回调函数设计原理
对于回调函数的概念有很多种,下面我列举一些常见的看法:a:回调函数是一个很有用,也很重要的概念。当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数。b:回调函数就相当于一个中断处理函数,由系统在符合你设定的条件时自动调用。为此,你需要做三件事:1,声明;2,定义;3,设置触发条件,就是在你的函数中把你的回调函数名称转化为地址作为一个参数,以便于系统调用。c:所谓回调函数就是按照一定的形式由你定义并编写实现内容,当发生某种事件时,而由系统或其它函数来调用的函数。使用回调函数实际上就是在调
2010-08-13 18:32:00
2061
原创 关于C语言通用双向链表实现的测试--回调函数的作用
把通用双向链表的测试拿出来写不仅仅是应因为和实现写在一起文章太长,而是因为我想在测试中体现一种思想:回调函数,这里程序实现下列功能。 (1)找出链表中的最大值。 (2) 累加链表中所有整数。这两个函数的实现与dlist_print的实现很类似,故采用回调函数的方式 不过这两个函数并没有太多实用价值,但是通过它们我们可以学习几点。 1,按传统的方法写出max之后,这个函数与dlist_print很类似,在写出sum_cb之后,那种感觉就更明显了。在这时就应该想办法把这些重复的代
2010-08-13 18:29:00
2650
原创 C语言通用双向链表的实现--设计的艺术
专用链表在这里是指该链表的实现和调用耦合在一起,只能被一个调用者使用,而不能单独在其他地方被重用。通用链表则相反,它具有通用性,可以在多处被重复使用。尽管通用链表相对专用链表来说有很多优越之处,不过草率地断定通用链表比专用链表好也是不公正的,因为它们都有自己的优点和适用范围。 专用链表的优点 性能更高。专用链表的实现和调用在一起,可以直接访问数据成员,省去了包装函数带来的性能开销,可以提高时间性能。专用链表无需实现完整的接口,只要满足自己的需要就行了,生成的代码更小,因此可以提高空间性能。
2010-08-13 18:26:00
5547
转载 SQL SERVER性能优化综述
近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对 SQL SERVER6.5以前的版本或者ORACLE是适用的)的信息,只好自己根据以前的经验和测试结果进行总结了。我始终认为,一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意,进行有效工作才能达到的。所以我希望按照软件生命周期的不同阶段来总结数据
2010-08-13 12:09:00
528
转载 常见的内存错误
随着诸如代码重构和单元测试等方法引入实践,调试技能渐渐弱化了,甚至有人主张废除调试器。这是有道理的,原因在于调试的代价往往太大了,特别是调试系统集成之后的BUG,一个BUG花了几天甚至数周时间并非罕见。而这些难以定位的BUG基本上可以归为两类:内存错误和并发问题。而又以内存错误最为普遍,即使是久经沙场的老手,也有时也难免落入陷阱。前事不忘,后世之师,了解这些常见的错误,在编程时就加以注意,把出错的概率降到最低,可以节省不少时间。这些列举一些常见的内存错误,供新手参考。1. 内存泄露。大家都
2010-08-13 11:59:00
417
转载 自动测试经验---自动测试的优劣
<br />转自李先静的博客:absurd<br /><br />手工测试比没有测试强一点,但是它存在的问题让它很难在实践中应用:手工输入数据的过程单调乏味,很难长期坚持。每次都要重新输入数据,浪费大量时间。测试用例不能累积,测试往往不完整。用人脑判断输出的正误,浪费人力也存在误差。要写得好测试自然不能省,要写得快就需要更好的测试方法。<br />更好的测试方法当然是自动测试了。幸运的是,刚进入这个行业我就接触了自动的测试(呵,读本文的初学者就更幸运了),我的第一份正式工作是在测试组写测试程序。当时
2010-08-13 11:53:00
618
原创 C语言编程总结--程序员必须知道的77条编程细节
在编程过程中会遇到各种各样的错误与警告,这里我对编程过程中经常遇到的细节或者说常出错的地方进行了简单的总结,希望对正在编程的“童鞋”有所帮助:C语言编程提示的总结:1:使用#include指令避免重复声明2:使用#define指令给常量值取名3:在#include文件中放置函数原型4:在使用下标前先检查它们的值5:在while或if表达式中蕴含赋值操作6:如何编写一个空循环体7:始终要进行检查,确保数组不越界8:良好的程序风格和文档将使程序容易阅读和维护9:为了保持最佳的可移植性,把字符的值限制在有符号和无
2010-08-08 19:33:00
948
1
原创 java语言学习连载(四)--深入理解面象对象
深入理解面象对象1:面象对象的特征 抽象,封装,继承,多态 指导原则是:提高可维护性和可复用性2:类的继承 一个类只能扩展自一个其它类 子类可以重写或覆盖父类的方法,可以添加新的属性和方法 子类不能继承父类中私有成员,被覆盖成员和被隐藏成员 一个类不能同时声明为abstrart和final,因为abstrart是用来被继承的而final是不被继承的 类的类的可访问性不受成员的可访问性限制 继承和实现接口均为is a 关系3:方法重载和方法覆盖A:在同一个类中的两个或两个以上的方法
2010-07-19 22:38:00
666
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人