自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

转载 Android系统权限和root权限

1. Android权限说明     Android系统是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制,Android系统权限相关的内容,(一)linux文件系统上的权限-rwxr-x--x system   system       4156 2012-06-30 16:12 test.apk.    代表的是相应的用户/用户组及其他人

2012-11-28 17:04:55 15522

转载 snd_pcm_ops

ALSA驱动主要是实现snd_pcm_ops中的相关函数。1. snd_pcm_ops接着我们看一下snd_pcm_ops结构体,该结构体的操作函数集的实现是本模块的主体。struct snd_pcm_ops { int (*open)(struct snd_pcm_substream *substream); int (*close)(struct

2012-11-27 17:44:25 6728

转载 alsa-lib如何解析asound.conf

1. 简介无论是在录音还是在放音,都要打开一个PCM流,具体对应的函数原型为:int snd_pcm_open(snd_pcm_t **pcmp, const char *name, snd_pcm_stream_t stream, int mode); 本文以录音为例介绍一下它的流程。录音时传入name==AndroidCapture 先解一下各个参数的函义:pcm

2012-11-27 16:18:22 9157

转载 open("/dev/dsp")函数调用流程 --OSS接口

open("/dev/dsp")==> sys_open==> soundcore_open (所有的fops以iminor为索引放在全局static struct sound_unit *chains[SOUND_STEP];中)==> snd_pcm_oss_f_reg.snd_pcm_oss_open/* * 下面是内核对soc_pcm_open函数的简短描述 * C

2012-11-27 11:45:53 4022

转载 snd_pcm_open打开流程

aplay.c==> main==> snd_pcm_open(&handle, pcm_name, stream, open_mode); // 打开一路pcm,刷新config配置如果是"default",同时type等于SND_CONFIG_TYPE_COMPOUND那么这里对应"empty"static const char *const build_in_pcms[] =

2012-11-27 09:22:33 23925 3

转载 Linux ALSA声卡驱动之八:ASoC架构中的Platform

1.  Platform驱动在ASoC中的作用       前面几章内容已经说过,ASoC被分为Machine,Platform和Codec三大部件,Platform驱动的主要作用是完成音频数据的管理,最终通过CPU的数字音频接口(DAI)把音频数据传送给Codec进行处理,最终由Codec输出驱动耳机或者是喇叭的音信信号。在具体实现上,ASoC有把Platform驱动分为两个部分:snd_s

2012-11-26 16:59:50 2790

转载 Linux ALSA声卡驱动之七:ASoC架构中的Codec

1.  Codec简介     在移动设备中,Codec的作用可以归结为4种,分别是:对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号对Mic、Linein或者其他输入源的模拟信号进行A/D转换,把模拟的声音信号转变CPU能够处理的数字信号对音频通路进行控制,比如播放音乐,收听调频收音机,又或者接听电话时,音频信号在codec内的流通路线是不一样的对音频信号做出相应的处理,

2012-11-26 15:23:13 2169

转载 Linux ALSA声卡驱动之六:ASoC架构中的Machine

1. 简介        前面一节的内容我们提到,ASoC被分为Machine、Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,再次引用上一节的内容:Machine驱动负责处理机器特有的一些控件和音频事件(例如,当播放音频时,需要先行打开一个放大器);单独的Platform和Codec驱动是不能工作的,它必

2012-11-26 11:51:42 2403

转载 Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)

1.  ASoC的由来        ASoC--ALSA System on Chip  ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASoc出现之前,内核对于SoC中的音频已经有部分的支持,不过会有一些局限性:Codec驱动与SoC CPU的底层耦合过于紧密,这种不理想会导致代码的重复,例如,仅是wm8731的驱动

2012-11-16 08:39:02 2170

转载 Linux ALSA声卡驱动之四:Control设备的创建

1. Control接口       Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等。对于Mixer(混音)来说,Control接口显得尤为重要,从ALSA 0.9.x版本开始,所有的mixer工作都是通过control接口的API来实现的。       ALSA已经为AC97定义了完整的控制接口模型,如果你的

2012-11-15 14:51:16 2455

转载 Linux ALSA声卡驱动之三:PCM设备的创建

1. PCM是什么        PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲,把这些脉冲的幅值按一定的精度进行量化,这些量化后的数值被连续地输

2012-11-15 11:46:49 14204 1

转载 Linux ALSA声卡驱动之二:声卡的创建

1. struct snd_card 1.1. snd_card是什么       snd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下,声卡驱动的第一个动作通常就是创建一个snd_card结构体。正因为如此,本节中,我们也从 struct cnd_card开始吧。 1.2. sn

2012-11-15 11:23:56 2504

转载 Linux ALSA声卡驱动之一:ALSA架构简介 .

一.  概述    ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/。    在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了alsa-lib,

2012-11-15 09:49:57 2655

原创 如何编写Linux设备驱动程序

一、Linux device driver 的概念          系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它完成以下的功能:  1. 对设备初始化和释放。  2. 把数

2012-11-14 17:11:14 3611 1

转载 Android WiFi 应用程序例子

首先需要强调一点的是wifi只能在真机上测试!        在Android里,所有的wifi操作都在android.net.wifi包里,而常用的类也就只用几个,对于一般的开发人员来说,常用的操作也是有限的,不需要刻意的去记,用的时候现查就ok了,下面是《Android应用开发揭秘》里面关于wifi的范例,个人感觉还挺齐全,跟大家分享一下!package com.yarin.andro

2012-11-14 09:57:08 5866

原创 Android应用程序--获取待机、唤醒、关机、网络状态变化消息

1) 待机:广播消息:android.intent.action.SCREEN_OFF (代码)2) 唤醒:广播消息:android.intent.action.SCREEN_ON (代码)3) 关机:广播消息:android.intent.action.ACTION_SHUTDOWN (XML或代码)4) 网络状态变化: 广播消息:android.net.conn.C

2012-11-12 16:28:45 12007

转载 android 彻底关闭应用程序(back按键)

在开发android应用时,常常通过按返回键(即keyCode == KeyEvent.KEYCODE_BACK)就能关闭程序,其实大多情况下该应用还在任务里运行着,其实这不是我们想要的结果。       我们可以这样做,当用户点击自定义的退出按钮或返回键时(需要捕获动作),我们在onDestroy()里强制退出应用,或直接杀死进程,具体操作代码如下:1.@Override 2.

2012-11-12 12:54:20 8881

转载 Android中使用ALSA声卡及alsa.conf asound.conf

1. 配置文件总共有三个配置文件: 1) /system/usr/share/alsa/alsa.conf :它指定了另外两个配置文件的路径 2) /etc/asound.conf 3) .asoundrc可通过cat /proc/asound/cards查看当前系统有哪些声卡。  2. 第一步cd到Android源码树根目录下:cd /home/xxx/and

2012-11-08 12:04:58 15218

原创 Android系统--事件读取及分发

1. 简介      WindowManagerService分发事件是通过它的InputManager来完成的。      在初始化时,各部分状态如下:      • InputManager.InputReader:正在睡眠等待事件的发生      • InputManager.InputDispatcher:正在等待InputReader从睡眠中醒过来并且唤醒它

2012-11-07 16:42:44 10537 1

转载 Android UI管理系统

Activity可以看做是整个android系统的人机接口,它提供了一个窗口来绘制UI,每个Activity在启动时,我们都需要给它设置一个Content view,作为Activity所呈现的UI内容,这个过程是通过setContentView()方法来实现的。    众所周知,android系统中强化了view的概念,主要是体现在对view的管理上,Android中的view以2种形态

2012-11-06 18:12:48 2484

原创 Activity启动分析

1. Activity简介    一个Activity是用户要做的一件单一工作。它包括与用户交互的所有功能,因此它负责创建Window,以便你通过setContentView放置你的UI。其所有派生类将实现以下两个方法:    1) onCreate:初始化你的activity,通常调用setContentView设置定义UI的资源,并且通过findViewById获取UI中的控件,以便程

2012-11-06 16:49:58 5463

原创 Android AIDL分析

1. AIDL接口    对于WindowManagerService,如果client需要访问它,需要通过AIDL接口来访问,其接口在IWindowManager.aidl中定义,ADIL接口在编译时将生成一个IWindowManager.java文件(此文件在out目录下),其主要相关代码如下:  /** * System private interface to the wind

2012-11-06 16:14:32 8148 1

原创 Android4.x 如何处理Power按键

1. 简介        Android4.x在Framework的PhoneWindowManager对Power(KeyEvent.KEYCODE_POWER)和Home(KeyEvent.KEYCODE_HOME)键做了处理,不会把这些键传送上层应用程序。如需要把这些键发送给Activity和Service,需要在PhoneWindowManager处理这些键时“发送一个广播出去,然后在

2012-11-03 15:53:21 33816 12

转载 Android修改源代码控制永不锁屏

锁定屏幕对于移动终端来说是非常有必要的,但是对于机顶盒产品就没有这个必要了。所以本文介绍一下怎样让Android设备永不锁屏。Android系统的锁屏时间存放在Setting数据库中,字段为Settings.System.SCREEN_OFF_TIMEOUT。查看SettingsProvider源码,查看如下文件的源码:frameworks/base/packages/SettingsPr

2012-11-03 15:25:58 6110 1

转载 android 获取正在运行的应用程序列表 .

PackagesInfo pi = new PackagesInfo(this); 02. 03. ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 04. //获取正在运行的应用 05. List run = am.

2012-11-03 14:44:39 3122

转载 Android LockScreen

大体的思路:系统启动成功后SystemServer调用wm.systemReady()通知WindowManagerService,进而调用PhoneWindowManager,最终通过LockPatternKeyguardView显示解锁界面。当按Power键时,系统会像向外广播消息Intent.ACTION_SCREEN_OFF, 同样当在锁屏的情况下按Power键会向外广播Intent.AC

2012-11-03 14:42:47 3623 1

原创 Android睡眠唤醒机制--系统架构

一、简介     Android在Linux内核原有的睡眠唤醒模块上基础上,主要增加了下面三个机制:     • Wake Lock 唤醒锁机制;     • Early Suspend 预挂起机制;     • Late Resume 迟唤醒机制;     其基本原理:当启动一个应用程序的时候,它可以申请一个wake_lock唤醒锁,每当申请成功之后都会在内核中注册一下(通知

2012-11-01 17:57:37 16661 1

原创 Android睡眠唤醒机制--HAL-->Kernel

一、Kernel与HAL接口分析        Kernel与HAL接口是通过/sys/power下面的一系统文件来实现的,如:/sys/power/state        Kernel中/sys/power下的文件实现过程如下:1. sysfs的属性文件     在kernel/power/main.c中,定义了一组sysfs的属性文件: static struct att

2012-11-01 17:22:16 7555

转载 Android睡眠唤醒机制--Kernel态

一、简介      Android系统中定义了几种低功耗状态:earlysuspend、suspend、hibernation.      1) earlysuspend: 是一种低功耗的状态,某些设备可以选择进入某种功耗较低的状态,比如 LCD可以降低亮度或灭掉;        2) suspend: 是指除电源管理以外的其他外围模块以及cpu均不工作,只有内存保持自刷新的状态;

2012-11-01 14:47:06 32887

转载 Linux睡眠唤醒机制--Kernel态

一、对于休眠(suspend)的简单介绍   在Linux中,休眠主要分三个主要的步骤:   1) 冻结用户态进程和内核态任务   2) 调用注册的设备的suspend的回调函数, 顺序是按照注册顺序   3) 休眠核心设备和使CPU进入休眠态, 冻结进程是内核把进程列表中所有的进程的状态都设置为停止,并且保存下所有进程的上下文. 当这些进程被解冻的时候,他们是不知道自己被冻结过的

2012-11-01 11:54:10 15770

转载 Android驱动开发之earlysuspend睡眠模式--实现代码

(1)添加头文件:#include (2)在特定驱动结构体中添加early_suspend结构:#ifdef CONFIG_HAS_EARLYSUSPENDstruct early_suspend early_suspend;#endif(3)在驱动probe函数中注册相关early_suspend结构体:#ifdef CONFIG_HAS_EARLYSUSPEND

2012-11-01 11:34:57 11816

Linux下获取Wifi信号强度和速率

在Linux用户态获取所有WiFi相关信息源码

2017-06-14

空空如也

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

TA关注的人

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