android
lininglive
这个作者很懒,什么都没留下…
展开
-
recovery 的原理已经 rom制作的知识
1总述为了方便客户日后的固件升级,本周研究了一下android的recovery模式。网上有不少这类的资料,但都比较繁杂,没有一个系统的介绍与认识,在这里将网上所找到的和自己通过查阅代码所掌握的东西整理出来,给大家一个参考!2Android启动过程在这里有必要理一下android的启动过程:图1 android启动过程系统上电之后,首先是完成一系...转载 2019-07-22 18:05:58 · 670 阅读 · 0 评论 -
linux_sound_alsa_Android+alsa音频系统中的几个问题
1.Android+alsa音频体系大体结构: 从alsa的角度由下往上看:linux中有alsa驱动层,其中,/sound/core/pcm_native.c文件中的snd_pcm_f_ops是alsa驱动层对alsa_lib层的接口;Android中有alsa_lib层(在donut/external/alsa_lib目录下)和alsa应用层; 从Android的角度由转载 2016-08-08 15:22:01 · 1004 阅读 · 0 评论 -
linux_sound_alsa_ALSA体系SOC子系统中数据流分析
前言: linux中,无论是oss还是alsa体系,录音和放音的数据流必须分析清楚。先分析alsa驱动层,然后关联到alsa库层和应用层。 链接分析: core/pcm_native.c文件中.mmap = snd_pcm_mmap调用snd_pcm_mmap_data(substream, file, area);进一步调用substream-转载 2016-08-08 15:21:09 · 918 阅读 · 0 评论 -
alsa 音频路径的问题:
alsa 音频路径的问题:在sound/soc/codecs目录中有很多音频codec的codec驱动,我使用的是wm9713,AP是s3c6410;这里个驱动文件中定义了很多widget和control,alsa在playback或record的时候,sound/soc/soc-dapm.c中的dapm_power_widgets函数会根据“配置情况”打开相应的widget,搭建一个完整的音转载 2016-08-08 15:17:20 · 1719 阅读 · 0 评论 -
DAPM之三:audio paths与asound.conf
其实asound.conf真跟dapm没多大关系,之所以把它也纳入dapm系列之一,是为了考虑到知识的连贯性。在DAPM之二:AUDIO PATHS与dapm kcontrol>提到:通过配置好asound.conf,上层则可打开asound.conf中定义的虚拟设备,而自动选择相应的音频通道。这是asound.conf很重要的一个作用,从这方面来说,并不是跟dapm完全没关系。转载 2016-08-08 15:13:13 · 344 阅读 · 0 评论 -
DAPM之二:audio paths与dapm kcontrol
在用alsa_amixer controls时,除了我们之前提到的snd_soc_add_controls添加的kcontrols外,还有一些多出来的controls。其实多出来的那些都是属于dapm kcontrol,主要用于切换音频路径。 一、AUDIO PATHS OVERVIEW以标准内核2.6.32的wm8900 codec为例。先看AUDIO P转载 2016-08-08 15:06:40 · 567 阅读 · 0 评论 -
snd_kcontrol探究
control控制接口控制接口对于许多开关(switch)和调节器(slider)应用广泛,它能被用户空间存取,从而读写CODEC相关寄存器。control的主要用于mixer。它用snd_kcontrol_new结构体描述。snd_kcontrol_new[cpp] view plaincopy转载 2016-08-08 15:05:07 · 2642 阅读 · 0 评论 -
音频电源动态管理--概述
DAPM--Dynamic Audio Power Management,对应结构体是snd_soc_dapm_widget和snd_soc_dapm_route,对应的操作函数是snd_soc_dapm_new_controls()、snd_soc_dapm_add_routes()和snd_soc_dapm_new_widgets()。在我看来,DAPM是音频驱动初接触者的噩梦。从何处来,到何转载 2016-08-08 15:03:21 · 1380 阅读 · 0 评论 -
Linux ALSA声卡驱动之八:ASoC架构中的Platform
1. Platform驱动在ASoC中的作用前面几章内容已经说过,ASoC被分为Machine,Platform和Codec三大部件,Platform驱动的主要作用是完成音频数据的管理,最终通过CPU的数字音频接口(DAI)把音频数据传送给Codec进行处理,最终由Codec输出驱动耳机或者是喇叭的音信信号。在具体实现上,ASoC有把Platform驱动分为两个部分:snd_soc_pl转载 2016-08-08 14:55:40 · 975 阅读 · 0 评论 -
Linux ALSA声卡驱动之七:ASoC架构中的Codec
1. Codec简介在移动设备中,Codec的作用可以归结为4种,分别是:对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号对Mic、Linein或者其他输入源的模拟信号进行A/D转换,把模拟的声音信号转变CPU能够处理的数字信号对音频通路进行控制,比如播放音乐,收听调频收音机,又或者接听电话时,音频信号在codec内的流通路线是不一样的对音频信号做出相应的处理转载 2016-08-08 14:49:00 · 617 阅读 · 0 评论 -
Android 系统Recovery工作原理
一、 Recovery模式中的三个部分Recovery的工作需要整个软件平台的配合,从通信架构上来看,主要有三个部分。①MainSystem:即上面提到的正常启动模式(BCB中无命令),是用boot.img启动的系统,Android的正常工作模式。更新时,在这种模式中我们的上层操作就是使用OTA或者从SD卡中升级update.zip包。在重启进入Recovery模式之前,会向BCB中写入命令,...转载 2019-07-22 17:38:07 · 597 阅读 · 0 评论 -
Android4.x 系统显示鼠标
最近在研究手写功能,对比了一些产品,发现三星的平板上的手写笔在靠近屏幕的时候,会有个圆形光标显示在界面上。这个光标是怎么显示的呢?带这个疑问,在网上搜了一番发现了一些结果。 1.在anroid2.3之前,由于android是针对手机的系统,所以没有绘制光标的模块,有人自己在系统层或者APP层做了一个光标。 例如:https://blog.csdn.net/LuYozo...原创 2018-05-16 19:10:12 · 6597 阅读 · 3 评论 -
获得屏幕宽度和高度的方法
最近突发奇想,想知道android应用是如何获得当前设备屏幕的宽度和高度的呢。经过一番搜索, 在设备的属性里只找到了 ro.xx.lcd_density]: [160],这只是说明了当前屏幕的密度,并不能反应屏幕的宽高信息。经过搜索博客找了 一下方法。 // 通过WindowManager获取DisplayMetrics dm = new DisplayMetric原创 2017-11-13 11:48:23 · 1349 阅读 · 0 评论 -
android OTA差分包的生成方法
在make Android系统后,会生成系统的img文件。make otapackage 会生成sd卡用的全部系统升级包,有260M多。要生成增量升级包。需要按以下步骤。mkdir ~/OTA source build/envsetup.sh; choosecom 1 1 7 engmake;make otapackage先将编译生成的转载 2017-11-13 11:23:39 · 1289 阅读 · 0 评论 -
android中音量调节的办法
Android调整音量方法有两种,一种是渐进式,即像手动按音量键一样,一步一步增加或减少,另一种是直接设置音量值. 渐进式的: AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE); public void adjustStreamVolume (int streamType, i原创 2017-11-13 11:22:37 · 1619 阅读 · 0 评论 -
Android 开机动画分析
最近在做关机画面的事情,于是搜了些关于开/关机画面的文章。 http://blog.csdn.net/yangwen123/article/details/11680759?utm_source=tuicool&utm_medium=referral 这篇文章写的不错,Mark一下。 总结: anroid系统先启动本地服务,例如surfacefli转载 2017-10-31 13:19:36 · 458 阅读 · 0 评论 -
Android APP 把view试图显示在顶层
最近做项目,要把一个页面放到所有页面的上面,经过查询发现了两个方法。记下了,慢慢品味! 1. 使用View.bringToFront()这个方法。并发现了这篇博客http://www.cnblogs.com/zhainanJohnny/articles/3292563.html 2. 使用WindowManager layout 参数 WindowManager.L原创 2017-10-31 13:11:40 · 8281 阅读 · 0 评论 -
android 中 系统日期时间的获取
[java] view plain copy print?import java.text.SimpleDateFormat; SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss ");转载 2017-01-06 10:49:01 · 427 阅读 · 0 评论 -
IMX6的相关音频结构体的定义
在IMX上的音频接口主要有3种接口,分别为SSI, SPDIF, ESAI 等;platform 连接 codec 与 cpu 的驱动时,通过内核函数结构体static struct snd_soc_dai_link 来设置两边的接口;SSI接口中,IMX6中的SSI接口有3对可以接着路I2S;三路SSI可以每路SSI 单独作为一个声卡,也可以是一个声卡包含多个设备;以下的定义转载 2016-08-09 10:06:57 · 915 阅读 · 0 评论 -
Linux ALSA声卡驱动之六:ASoC架构中的Machine
前面一节的内容我们提到,ASoC被分为Machine、Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,再次引用上一节的内容:Machine驱动负责处理机器特有的一些控件和音频事件(例如,当播放音频时,需要先行打开一个放大器);单独的Platform和Codec驱动是不能工作的,它必须由Machine驱动把它们结转载 2016-08-08 14:47:22 · 596 阅读 · 0 评论 -
Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)
1. ASoC的由来ASoC--ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASoc出现之前,内核对于SoC中的音频已经有部分的支持,不过会有一些局限性: Codec驱动与SoC CPU的底层耦合过于紧密,这种不理想会导致代码的重复,例如,仅是wm8731的驱动,当时Lin转载 2016-08-08 14:28:12 · 507 阅读 · 0 评论 -
Linux ALSA声卡驱动之四:Control设备的创建
声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢!Control接口Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等。对于Mixer(混音)来说,Control接口显得尤为重要,从ALSA 0.9.x版本开始,所有的mixer工作都是通过contr转载 2016-08-08 14:23:11 · 479 阅读 · 0 评论 -
audio_policy.conf说明(翻译)
转载自:http://www.cnblogs.com/albert1017/p/3940010.html作者写的很不错,记录下来供以后温故。## Audio policy configuration for generic device builds (goldfish audio HAL - emulator)#这是模拟器的Audio policy配置##转载 2014-12-02 10:35:29 · 3054 阅读 · 0 评论 -
Android 输入系统架构 笔记4
下面看下Linux 下 input 驱动的架构,以具体例子分析下:下面的文章是基于mini2440的gpio按键来讲解input子系统。以mini2440为例用该板的bsp文件进行input子系统的讲解.所用的版本为android4.0.先来看下板级支持文件都注册了那些资源。下面是五个按键的资源 #define KEY_POWER 116 /* SC Sy转载 2014-11-27 09:43:36 · 524 阅读 · 0 评论 -
Android 输入系统架构 笔记1
1. 首先看下服务的启动: Android系统启动的时候,会启动很多服务,一般都是在SystemServer中启动的,代码如下: 路径 Framework/base/services/java/com/android/server/SystemServer.java wm = WindowManagerService.main(转载 2014-11-26 14:17:44 · 465 阅读 · 0 评论 -
Input Core 初探
本文基于Kernel3.0.81.几个数据结构 struct input_event {struct timeval time;__u16 type;__u16 code;__s32 value;};struct input_dev {const char *name;const char *phys;const char *un原创 2014-11-26 10:38:25 · 588 阅读 · 0 评论 -
Android 输入系统架构 笔记3
Input设备在内核中的注册过程在linux系统中,输入设备的结构体名是input_dev,在编写输入设备驱动时,我们需要给设备分配一个input_dev结构体,并使用input_allocate_device函数给设备分配内存空间,并初始化设备的结构体。 Kernel/drivers/input/input.c struct input_dev *input_allocate_翻译 2014-11-26 16:36:55 · 528 阅读 · 0 评论 -
Android 输入系统架构 笔记2
在eventHub初始化的时候mNeedToScanDevices的值是ture的所以会直接进入到scanDevices Locked。而在内核里面所有的input device在注册的时候都会在linux的文件系统下的/dev/input 下面。所以按照一般的HAL的思想,如果要去操作这个设备,首先还是要打开这个设备节点的。Framework/base/services/input/E转载 2014-11-26 14:53:13 · 789 阅读 · 0 评论 -
input 架构
1. TouchScreen功能在Android4.0下不工作 原来在Android2.3.5下能正常工作的TouchScreen功能,移植到Android 4.0就不能正常工作了。凭直觉,Android4.0肯定有鬼。真是不看不知道,一看吓一跳。在Android 4.0中,Event Input地位提高了,你看看,在Adroid2.3.5中,它在frameworks/base转载 2014-11-21 11:28:57 · 1027 阅读 · 0 评论 -
Android 4.0 事件输入(Event Input)系统
转载地址:http://blog.csdn.net/myarrow/article/details/7091061转载 2014-11-25 14:03:40 · 656 阅读 · 0 评论 -
Android Listener侦听的N种写法
Android中,View的Listener方法,在是否使用匿名类匿名对象时,有各种不同的写法。OnClickListener和其他Listener方法一样,都是View类的接口,重载实现后就能使用,其接口定义如下:[java] view plaincopyprint?public interface OnClickListener { /**转载 2013-07-18 11:17:11 · 506 阅读 · 0 评论 -
Android休眠与唤醒
对于休眠(suspend)的简单介绍在Linux中,休眠主要分三个主要的步骤:冻结用户态进程和内核态任务调用注册的设备的suspend的回调函数顺序是按照注册顺序休眠核心设备和使CPU进入休眠态冻结进程是内核把进程列表中所有的进程的状态都设置为停止,并且保存下所有进程的上下文. 当这些进程被解冻的时候,他们是不知道自己被冻结过的,只是简单的继续执行.如何让Linux进入休眠呢?转载 2013-01-09 16:47:44 · 578 阅读 · 0 评论 -
uboot在2440上的移植
一、 步骤说明:进行u-boot的移植,我们分成以下几步完成: NorFlash启动 可以读写NAND FLASH NAND启动 支持网络、USB下载 支持读写SD上内核及根文件系统 支持USB从下载 U-Boot源代码下载地址 http://www.linuxidc.com/Linux/2011-07/38897.htm 二、 启动流程简介转载 2012-09-03 15:06:57 · 922 阅读 · 0 评论 -
linux 是如何启动的
1.uboot启动内核的代码缩减如下:s = getenv ("bootcmd");debug ("### main_loop: bootcmd=\"%s\"\n", s ? s : "");if (bootdelay >= 0 && s && !abortboot (bootdelay)){run_command (s, 0);}2.假设bootcmd = nan转载 2012-09-03 14:45:27 · 754 阅读 · 0 评论 -
ALSA SOC在Linux3.1上的一些改进
转载自:http://blog.csdn.net/azloong/article/details/72227992012已经到来,无论这个世界是否行将毁灭,在那之前的日子还得要继续。Android迈进了4.0,相应的Linux内核也进入了3.x时代。之后的一个工作估计要将2.6.32的驱动移植到3.x上面来。因此趁现在有空,看看alsa在这方面有什么改动。总转载 2014-12-02 11:52:52 · 825 阅读 · 0 评论 -
4.0音频系统HAL初探
转载自:昨天(2011-11-15)发布了Android4.0的源码,今天download下来,开始挺进4.0时代。简单看了一下,发现音频系统方面与2.3的有较多地方不同,下面逐一描述。一、代码模块位置1、AudioFlingerframeworks/base/services/audioflinger/ +转载 2014-12-02 10:50:53 · 995 阅读 · 0 评论 -
Linux ALSA声卡驱动之三:PCM设备的创建
声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢!1. PCM是什么PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,转载 2016-08-08 14:03:51 · 5208 阅读 · 0 评论 -
uda1341原理及驱动
现在主流的音频总线接口有IIS和AC97(Audio Codec)。一。IIS是由sony和PILIPS公司共同推出的一套标准。 IIS有3--5根物理连线 IIsDI:串行数据输入 IISDO:串行数据输出 IISSCLK:为串行数据提供位时钟。IISSCLK=声道数*采样频率*采用位数。如:fs=44.1Khz 声道数位2.采样位数为16转载 2016-08-08 13:43:25 · 742 阅读 · 0 评论 -
linux音频alsa驱动文档阅读之四 数字音频接口
转自:http://blog.chinaunix.net/uid-22917448-id-1765505.htmlASoC currently supports the three main Digital Audio Interfaces (DAI) found onSoC controllers and portable audio CODECs today, namely A转载 2016-08-08 11:38:05 · 852 阅读 · 0 评论 -
linux音频alsa驱动分析之三 解码器
ASoC Codec DriverASoC解码器驱动=================The codec driver is generic and hardware independent code that configures thecodec to provide audio capture and playback. It should contain no code转载 2016-08-08 11:31:03 · 2279 阅读 · 0 评论