自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq69696698的专栏

为学习做一点笔记

  • 博客(82)
  • 收藏
  • 关注

原创 网络编程学习(十)

1.守护进程(daemon)是在后台运行且不与任何控制终端关联的进程。Unix系统通常有很多守护进程在后台运行,执行不同的管理任务。守护进程没有控制终端通常源于它们由系统初始化脚本启动。然而守护进程也可能从某个终端由用户在shell提示符下键入命令行启动,这样的守护进程必须亲自脱离与控制终端的关联,从而避免与作业控制、终端会话管理、终端昌盛信号等发生任何不期望的交互,也可以避免在后台运行的守护

2015-04-29 17:50:11 706

原创 网络编程学习(九)

IPv4的TCP客户和一个IPv6的TCP服务器进行通信的步骤如下:1.IPv6服务器启动后创建一个IPv6的监听套接字,我们假定服务器把通配地址捆绑到该套接字2.IPv4客户调用gethostbyname找到服务器主机的一个A记录。服务器主机既有一个A记录,又有一个AAAA记录,因为它同时支持IPv4和IPv6,不过IPv4客户需要的只是一个A记录3.客户调用connect,导致客户

2015-01-15 17:25:00 779

原创 网络编程学习(八)

gethostbyname和gethostbyaddr在主机名字与IPv4地址之间进行转换,getservbyname和getservbyport在服务名字和端口号之间进行转换,getaddrinfo和getnameinfo分别用于主机名字和IP地址之间以及服务名字和端口号之间的转换。域名系统DNS主要用于主机名字与IP地址之间的映射。主机名字既可以是一个简单名字,也可以是

2014-11-14 17:55:44 774

原创 网络编程学习(七)

SCTP中的流不同于TCP中的字节流,它是关联内部具有先后顺序的一个消息序列。这种以流本身而不是以流所在关联为单位进行消息排序的做法用于避免仅使用单个TCP字节流导致的头端阻塞现象。SCTP流可以说是一个既能避免头端阻塞又能在相关的消息之间保持顺序的有效机制(如同一个流内的消息会按顺序到达)控制流的数目:允许在关联启动阶段增长端点请求的流数目;但需注意,这个变动必须针对尚未建立关联的套

2014-11-14 17:55:27 722

原创 网络编程学习(六)

SCTP是一个可靠的面向消息的协议,在端点之间提供多个流,并未多

2014-11-14 17:54:00 1061

原创 网络编程学习(五)

udp套接字编程:sendto、recvfrom如果recvfrom的

2014-11-12 18:03:51 647

原创 网络编程学习(四)

套接字选项粗分为两大基本类型:一是启用或禁止某个特性的二元选项(称为标志选项),二是取得并返回我们可以设置或检查的特定值的选项(称为值选项)下面的套接字选项是由TCP已连接套接字从监听套接字继承来的:SO_DEBUG、SO_DONTROUTE、SO_KEEPALIVE、SO_LINGER、SO_OOBINLINE、SO_RCVBUF、SO_RCVLOWAT、SO_S

2014-11-11 19:10:19 628

原创 网络编程学习(三)

待续

2014-10-28 17:53:09 658

原创 网络编程学习(二)

#include pid_t wait(int *statloc)pid_t wait(pid_tint *statloc)

2014-10-28 11:48:38 680

原创 网络编程学习(一)

TCP 安全可靠,可检查数据是否丢失,重传,重复等等UDP

2014-10-22 11:59:19 813

原创 C Primer Plus随笔

C99遵循C++的规范,可以将声明放在带

2014-05-12 14:20:29 1363

原创 Stagefright 及 OmxCodec 相关知识记录

stagefright框架(一)Video Playback的流程在Android上,預設的多媒體框架(multimedia framework)是OpenCORE。OpenCORE的優點是兼顧了跨平台的移植性,而且已經過多方驗證,所以相對來說較為穩定;但是其缺點是過於龐大複雜,需要耗費相當多的時間去維護。從Android 2.0開始,Google引進了架構稍為簡潔的Stagefrig

2013-02-20 11:39:47 1408

原创 open函数的流程

1.          引言      从事Linux环境工作2年有余,一直懵懵懂懂,1年前拜读了《莱昂氏UNIX源代码分析》一书,感觉自己的学习道路漫漫且修远。最近受chinaunix的精华文帖启发,拟将近来的部分内核调用分析笔记拿出来与各前辈先进共同探讨学习,以壮个人学习之路。      本部分主要讲述的是文件I/O操作的2.6.11内核版本实现,包括了主要的数据结构、宏定义和函数流程

2012-08-13 21:36:41 2420 1

原创 i2c相关知识

在内核中有两种方式的i2c设备驱动的编写方法,一种legacy方式,一种是newstyle方式。韦东山视频和宋宝华书籍里讲解的都是legacy方式,但是在新版本内核中,legacy方式的i2c设备驱动已经编译不过去了,因为几个主要的内核函数都已经不存在了,即内核不再支持legacy方式的i2c设备驱动。下面讲解下newstyle方式的i2c设备驱动。一>定义并填充i2c_driver:

2012-08-05 19:15:55 1024

原创 Android 属性系统 property

属性(property)系统对Android来说是一个重要的功能。他作为一个系统服务管理着系统的配置和状态,所有的这些系统配置和状态都是属性(property)。属性(property)是一对键/值(key/value)组合,键和值都是字符串类型。总体感觉属性系统非常像Windows的注册表的功能。Androd中非常多的应用程序和库直接或者间接的依赖于属性系统,并由此决定其运行期的行为。例如:ad

2012-08-01 19:51:08 799

原创 Android HDMI 介绍

本文重点针对HDMI在android上的应用,而比较相关的就是overlay机制。overlay在这里只是简单的介绍,后续会有文章再专门详述。我没记错的话,高通从7X30开始,平台就可以支持HDMI(1.3)输出了。只不过在7x30上通过RGB接口外接一颗HDMI的transmitter来实现;而到了8系列(8x60),高通把这颗IC也集成了,直接就提供HDMI的输出了。(这样下去,以后渐渐的

2012-08-01 19:35:55 2493 4

原创 vim 相关使用

Vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。Vim the Six Billion Dollar editorBetter, Stronger, Faster.

2012-07-30 10:40:37 1002

原创 android中的指针简述

在Android的源代码中,经常会看到形如:sp、wp这样的类型定义,这其实是Android中的智能指针。智能指针是C++中的一个概念,通过基于引用计数的方法,解决对象的自动释放的问题。在C++编程中,有两个很让人头痛的问题:一是忘记释放动态申请的对象从而造成内存泄露;二是对象在一个地方释放后,又在别的地方被使用,从而引起内存访问错误。程序员往往需要花费很大精力进行精心设计,以避免这些问题的出现。

2012-07-30 10:33:58 764

原创 git stash相关使用

最近在使用Git管理项目工程的时候,遇到了很多问题,也学习到了很多关于Git常见使用的技巧,下面就其中关于Git Stash的用法和大家分享下。首先,简单介绍下Git Stash命令的用法,详细的用法在man文档中有相关介绍,下面我来说明常见的使用。git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内

2012-07-30 10:29:42 10257 2

原创 android中的通信机制

第一种:使用handler来进行通信   handler 大家可以把它想象成主线程(UI线程)的一个子线程,它可以给主线程(UI线程)发送数据从而更新主线程(UI线程)的UI与逻辑,handler 是一个子线程所以它的耗时操作不会阻塞主线程,大家都知道在android的开发中如果代码中某个地方阻塞主线程超过5秒的话系统会提示ANR (系统提示强制关闭)所以在耗时操作上我们可以考虑开启一

2012-07-30 10:20:16 1367

原创 Android 创建新的Product

Android源码使用一个可定制的编译系统来生成 特定的,针对自己硬件平台的Android系统,比如不使用缺省的out/target/prodect/generic目录,本文档简单介绍了这个编译系统,并做一个针对自己硬件平台的Android,这部分工作主要是由Android源代码中的Vendor文件夹来实现,如果该文件夹不成立,自己可以在Android源代码的根目录下建立该文件夹,这个文件夹里面存

2012-07-25 17:58:32 2786

原创 linux内核可装载模块(lkm)传参机制 module_param

对于如何向模块传递参数,Linux kernel 提供了一个简单的框架。其允许驱动程序声明参数,并且用户在系统启动或模块装载时为参数指定相应值,在驱动程序里,参数的用法如同全局变量。  使用下面的宏时需要包含头文件。  通过宏module_param()定义一个模块参数:  module_param(name, type, perm);  name既是用户看到的参数名,又是模块内接

2012-07-19 11:38:00 1124

原创 Android Windows 显示层次

在Android的display系统中,不是仅仅只有一个显示窗口那么简单,其中包括了: TYPE_APPLICATION_PANEL,TYPE_APPLICATION_MEDIA, TYPE_APPLICATION_SUB_PANEL, TYPE_APPLICATION_ATTACHED_DIALOG以及TYPE_APPLICATION_MEDIA_OVERLAY这

2012-06-20 14:47:42 3215

原创 Android系统服务-WindowManager

WindowManager是Android中一个重要的服务(Service )。WindowManager Service 是全局的,是唯一的。它将用户的操作,翻译成为指令,发送给呈现在界面上的各个Window。Activity会将顶级的控件注册到 Window Manager 中,当用户真是触碰屏幕或键盘的时候,Window Manager就会通知到,而当控件有一些请求产生,也会经由View

2012-06-20 14:20:18 877

原创 Android player 流程(供参考)

Java层 要开启一个播放器进行播放, 需要以下几行代码:Java代码MediaPlayer mp = new MediaPlayer(); mp.setDisplay (...); /// 设置播放器Suface mp.setDataSource(PATH_TO_FILE); ///设置媒体URI mp.prepare(); /// 初始化播放器 mp.start();

2012-06-15 09:55:52 2980

原创 Android-StageFright之数据流的封装和AwesomePlayer流程

数据流的封装一、由数据源DataSource生成MediaExtractor。通过MediaExtractor::Create(dataSource)来实现。Create方法通过两步来生成相应的MediaExtractor:1、通过dataSource->sniff来探测数据类型2、生成相应的Extractor:if (!strcasecmp(mime, MEDIA_MIMET

2012-06-11 14:07:43 1048

原创 线程同步:Mutex和Condition

Android提供了两个封装好的同步类,它们是Mutex和Condition。这是重量级的同步技术,一般内核都会有对应的支持。另外,OS还提供了简单的原子操作,这些也算是同步技术中的一种。下面分别来介绍这三种东西。1. 互斥类—MutexMutex是互斥类,用于多线程访问同一个资源的时候,保证一次只有一个线程能访问该资源。在《Windows核心编程》①一书中,对于这种互斥访问有一个很形象的

2012-05-28 10:09:35 933

原创 SQLite数据访问

execSQL->executeSql->executeUpdateDelete->native_executeSql最终会通过JNI调到sqlite3_exec(存在于external文件夹中)出错处理:android_database_SQLiteDatabase.cpp中的throw_sqlite3_exception函数

2012-05-25 20:50:11 804

原创 android Sim卡锁定 pin解锁流程学习

1.Android自帶的pin解鎖部份在framework/base/policy/src/com/android/internal/policy/impl/SimUnlockScreen.javaSim鎖定后開機,會調用這個類,show出“請輸入pin”的解鎖介面,輸入pin密碼后,點擊“ok”,調用checkPin( )通过启动一个线程CheckSimPin来调用Telephony

2012-05-25 20:34:12 10979

原创 SQLite 设计及概念

1、API   由两部分组成: 核心API(core API) 和扩展API(extension API)  核心API的函数实现基本的数据库操作:连接数据库,处理SQL,遍历结果集。它也包括一些实用函数,比如字符串转换,操作控制,调试和错误处理。  扩展API通过创建你自定义的SQL函数去扩展SQLite。  1.1、SQLite Version 3的一些新特点:

2012-05-25 20:03:45 1158

原创 linux poll函数

# include int poll ( struct pollfd * fds, unsigned int nfds, int timeout);和select()不一样,poll()没有使用低效的三个基于位的文件描述符set,而是采用了一个单独的结构体pollfd数组,由fds指针指向这个组。pollfd结构体定义如下: # include struct pollfd {

2012-04-18 14:38:44 13925

原创 使用 /proc 文件系统来访问 Linux 内核的内容

最初开发 /proc 文件系统是为了提供有关系统中进程的信息。但是由于这个文件系统非常有用,因此内核中的很多元素也开始使用它来报告信息,或启用动态运行时配置。/proc 文件系统包含了一些目录(用作组织信息的方式)和虚拟文件。虚拟文件可以向用户呈现内核中的一些信息,也可以用作一种从用户空间向内核发送信息的手段。实际上我们并不会同时需要实现这两点,但是本文将向您展示如何配置这个文件系统进行输入和

2012-04-17 09:58:18 834

原创 ION memory allocator

什么是ION ?我的理解就是google在android4.0引入的一种内存管理器,来替代之前各个芯片厂家(高通、Intel、TI等)自己的方案.以下是网上找到的: it has become clear that PMEM is considered obsolete and will be replaced by the ION memory manager . ION is a

2012-04-16 16:10:50 2739

原创 Linux设备驱动程序的基本知识

设备驱动程序用作硬件与使用硬件的应用程序(用户代码)或内核之间的转译器,它将硬件的工作细节隐藏于幕后,从而起到简化编程的作用。编程人员可以利用一套标准化调用方法(系统调用)编写高级应用程序代码,而不必关心它将控制的特定硬件或运行于其上的处理器。借助定义明确的内部应用程序编程接口(内核API),应用程序代码便可以通过与软件上层结构或底层硬件无关的标准方式与设备驱动程序实现接口。  针对特定处理器

2012-04-16 16:00:00 2631

原创 图解Java类加载器

Java是介于编译型和解释型之间的编程语言,编译器将java源代码编译成中间层字节码文件(bytecode),由Java虚拟机(Java Virtual Machine)解释和执行之。Java体系结构可以表示如下:由上图可知类加载器是JVM的一部分,主要作用是将字节码加载进入执行引擎,以供执行。当使用java A 的时候,java.exe被调用,从而根据%JAVA_HOME%\jre\

2012-04-06 10:23:44 651

原创 java import和package

有些人写了一阵子 Java,可是对於 Java 的 package 跟 import 还是不太了解很多人以為原始码 .java 档案中的 import 会让编译器把所 import的程式通通写到编译好的 .class 档案中,或是认為 import 跟 C/C++ 的#include 相似,实际上,这是错误的观念。让我们先了解一下,Java 的 package 到底有何用处。其实,

2012-04-06 10:21:06 570

原创 android pmem 和ashmem 介绍及实例分析

<!--@page {margin:2cm}p {margin-bottom:0.21cm}-->1、Ashmem(匿名共享内存驱动:AnonymousShared Memory) 它基于mmap系统调用,不同进程可以将同一段物理内存映射到各自的虚拟地址控制,从而实现共享A、(mmap:是一种共享内存的系统。假如:A进程的内存空间范围

2012-03-29 18:04:01 1431

原创 Qualcomm Camera 开发遇到的错误及解决方法

1. Camera module probe error:    (2011.6.28)I2C slave address:0x48 not connected.I2C read transfer failed.Root cause: I2C slave address error. The default sub camera i2c slave address for i2c

2012-03-29 18:02:04 6663 3

原创 Qualcomm Camera基础

高通将android的camera模块重新修改了一下,与原生的方式存在一些差异。这里将前段时间学习的一些零散知识进行一下总结,便于以后查阅。1.整个模块主要巡行三个主线程:control、config及frame,control用来执行总的控制,是上层控制接口(这个线程还未去了解)?config主要进行一些配置,这个线程里面主要进行3A的工作,另外还有一些跟效果有关的设置;至于frame线程好

2012-03-27 16:54:31 22265 11

原创 Android Camera架构浅析

1、Camera成像原理介绍Camera工作流程图Camera的成像原理可以简单概括如下:景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为电信号,经过A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再通过IO接口传输到CPU中处理,通过DISPLAY就可以看到图像了。电荷耦合器件(CCD)

2012-03-27 16:02:30 4868 3

空空如也

空空如也

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

TA关注的人

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