摘要: 说实话,你是一位优秀的工程师候选人吗?你怎么评价自己?你面试过多少家公司?你拿到offer的比率是多少?试一下用以下的公式来计算。x = number of companies interviewed with onsite y = number of offers received value = 100 * log(x) * y / x 如果你的计算结果小于90,请仔细阅读这篇文章;如果大于120,那你并不需要这篇文章。我是谁?我没有高中学历。我19岁从芝加哥前往南加州开始编程。我把所有东西装进了我的轿车里,身上只有400美金和一个offer,4万美金年薪的高级程序员。那是在12年前... 阅读全文
posted @ 2013-05-27 09:42 zhgt 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 一、工作项、工作队列和工作者线程把推后执行的任务叫做工作(work),描述它的数据结构为work_struct,这些工作以队列结构组织成工作队列(workqueue),其数据结构为workqueue_struct,而工作线程就是负责执行工作队列中的工作。系统默认的工作者线程为events。工作队列(workqueue)是另外一种将工作推后执行的形式。工作队列可以把工作推后,交由一个内核线程去执行—这个下半部分总是会在进程上下文执行,但由于是内核线程,其不能访问用户空间。最重要特点的就是工作队列允许重新调度甚至是睡眠。通常,在工作队列和软中断/tasklet中作出选择非常容易。可使用以下规则:如 阅读全文
posted @ 2013-05-09 15:41 zhgt 阅读(1224) 评论(0) 推荐(0) 编辑
摘要: 首先,我们根据 展讯 SC8810的datasheet的摄像原理相关章节,找到了摄像相关寄存器的名字(CAP_FRM_SIZE、CAP_IMG_DECI),通过在驱动目录(kernel/drivers/media/),对这些名字的搜索,很幸运的可以找到相关源文件。$ find kernel/drivers/media/ | xargs grep "CAP_FRM_SIZE"kernel/drivers/media/video/sprd_dcam/sc8810/sc8810_reg_isp.h: union _CAP_FRM_SIZE_TAGkernel/drivers/me 阅读全文
posted @ 2013-05-09 11:32 zhgt 阅读(987) 评论(0) 推荐(0) 编辑
摘要: 1. 体系结构2. 数据结构3. 四大函数本文以重力感应器装置G-sensor为例探索Android的各层次结构。1. 体系结构Android的体系结构可分为4个层次。第一层次 底层驱动层,包括标准Linux,Android核心驱动,Android相关设备驱动,G-sensor的设备驱动程序即存在于此第二层次 Android标准C/C++库,包括硬件抽象层,Android各底层库,本地库,JNI第三层次 Android Java Framwork框架层第四层次 Java应用程序本文重点关注硬件抽象层,JNI以及Framework。1.1 硬件抽象层 硬件抽象层通过例如open(), read( 阅读全文
posted @ 2013-05-07 14:48 zhgt 阅读(808) 评论(0) 推荐(0) 编辑
摘要: 扩展一个硬件(比如LED、蓝牙、传感器等),至少需要硬件、驱动、驱动交互模块。至于系统的层面如何把系统库加入自己的体系里面去,就是操作系统自己的事了。这里分析一下以背光调整为例Android。要调整背光,第一步是搜索并加载驱动交互模块(一个.so库),然后打开设备。看一下这个函数:void openDevice() {hw_module_t* module;int err = hw_get_module(LIGHTS_HARDWARE_MODULE_ID,(hw_module_t const**) &module);assert(!err);hw_device_t* device;er 阅读全文
posted @ 2013-05-07 10:59 zhgt 阅读(1879) 评论(0) 推荐(0) 编辑
摘要: 触摸屏G+G,G+P,G+F这些是什么意思?这是结构分类,第一个字母手机表面材质(又称为上层),第二个字母是触摸屏的材质(又称为下层),两者贴合在一起。G+G是说:表面钢化玻璃+玻璃GLASS材质的触摸屏G+P是说:表面钢化玻璃+PC材质的触摸屏G+F是说:表面钢化玻璃+薄膜FILM材质的触摸屏我们首先来了解下:电容屏主要是有下部的传感器玻璃层和上部盖板两个部分组成,现在市场有两种结构的电容屏:一种是传感器玻璃+ 钢化玻璃盖板结构,简称G+G电容屏;第二种是传感器玻璃+PET塑料盖板结构,简称G+P电容屏两种。苹果iPhone、iPad和一些高端安卓平板的电容屏是G+G结构的,底层是触控玻璃, 阅读全文
posted @ 2013-04-03 14:35 zhgt 阅读(5658) 评论(0) 推荐(0) 编辑
摘要: The Binder communicates between processes using a small custom kernel module. This is used instead of standard Linux IPC facilities so that we can efficiently model our IPC operations as "thread migration". That is, an IPC between processes looks as if the thread instigating the IPC has ho 阅读全文
posted @ 2013-04-03 11:16 zhgt 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 在Android系统启动时,内核引导参数上一般都会设置“init=/init”,这样的话,如果内核成功挂载了这个文件系统之后,首先运行的就是这个根目录下的init程序。这个程序所了什么呢? 我们只有RFSC(Readthe Fucking Source code)!!init程序源码在Android官方源码的system/core/init中,main在init.c里。我们的分析就从main开始。init:(1)安装SIGCHLD信号。(如果父进程不等待子进程结束,子进程将成为僵尸进程(zombie)从而占用系统资源。因此需要对SIGCHLD信号做出处理,回收僵尸进程的资源,避免造成不必要的资 阅读全文
posted @ 2013-03-01 19:23 zhgt 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 一、定义:上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!下拉同理!上拉是对器件注入电流,下拉是输出电流;弱强只是上拉电阻的阻值不同,没有什么严格区分;对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。二、上下拉电阻作用:1、提高电压准位: a.当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V), 这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。 b.OC门电路必须加上拉电阻,以提高输出的搞电平值。2、加大输出引脚的驱.. 阅读全文
posted @ 2013-02-27 11:15 zhgt 阅读(17479) 评论(1) 推荐(2) 编辑
摘要: 本文转自:http://blog.csdn.net/wuye110/article/details/8463820 Android 源码编译后,在out/target/product/generic下生成的三个镜像文 件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data。 ramdisk.img是根文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,android加载 这3个映像文件后,会把 system和 userdata分别加载到 ramdisk文件系统中的system 阅读全文
posted @ 2013-01-10 11:11 zhgt 阅读(7126) 评论(0) 推荐(0) 编辑