<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lininglive的专栏]]></title><description><![CDATA[专注嵌入式开发N多年。。。]]></description><link>https://blog.csdn.net/lininglive</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; lininglive]]></copyright><item><title><![CDATA[recovery 的原理已经 rom制作的知识]]></title><link>https://blog.csdn.net/lininglive/article/details/96880880</link><guid>https://blog.csdn.net/lininglive/article/details/96880880</guid><author>lininglive</author><pubDate>Mon, 22 Jul 2019 18:05:58 +0800</pubDate><description><![CDATA[1总述
为了方便客户日后的固件升级，本周研究了一下android的recovery模式。网上有不少这类的资料，但都比较繁杂，没有一个系统的介绍与认识，在这里将网上所找到的和自己通过查阅代码所掌握的东西整理出来，给大家一个参考！

2Android启动过程
在这里有必要理一下android的启动过程：




图1 android启动过程

系统上电之后，首先是完成一系...]]></description><category></category></item><item><title><![CDATA[Android 系统Recovery工作原理]]></title><link>https://blog.csdn.net/lininglive/article/details/96877587</link><guid>https://blog.csdn.net/lininglive/article/details/96877587</guid><author>lininglive</author><pubDate>Mon, 22 Jul 2019 17:38:07 +0800</pubDate><description><![CDATA[一、 Recovery模式中的三个部分
Recovery的工作需要整个软件平台的配合，从通信架构上来看，主要有三个部分。
①MainSystem：即上面提到的正常启动模式（BCB中无命令），是用boot.img启动的系统，Android的正常工作模式。更新时，在这种模式中我们的上层操作就是使用OTA或者从SD卡中升级update.zip包。在重启进入Recovery模式之前，会向BCB中写入命令，...]]></description><category></category></item><item><title><![CDATA[Android4.x 系统显示鼠标]]></title><link>https://blog.csdn.net/lininglive/article/details/80340883</link><guid>https://blog.csdn.net/lininglive/article/details/80340883</guid><author>lininglive</author><pubDate>Wed, 16 May 2018 19:10:12 +0800</pubDate><description><![CDATA[最近在研究手写功能，对比了一些产品，发现三星的平板上的手写笔在靠近屏幕的时候，会有个圆形光标显示在界面上。这个光标是怎么显示的呢？带这个疑问，在网上搜了一番发现了一些结果。

   1.在anroid2.3之前，由于android是针对手机的系统，所以没有绘制光标的模块，有人自己在系统层或者APP层做了一个光标。 例如：https://blog.csdn.net/LuYozo...]]></description><category></category></item><item><title><![CDATA[获得屏幕宽度和高度的方法]]></title><link>https://blog.csdn.net/lininglive/article/details/78518698</link><guid>https://blog.csdn.net/lininglive/article/details/78518698</guid><author>lininglive</author><pubDate>Mon, 13 Nov 2017 11:48:23 +0800</pubDate><description><![CDATA[最近突发奇想，想知道android应用是如何获得当前设备屏幕的宽度和高度的呢。

经过一番搜索， 在设备的属性里只找到了 ro.xx.lcd_density]: [160]，这只是说明了当前屏幕的密度，并不能反应屏幕的宽高信息。

经过搜索博客找了 一下方法。 

// 通过WindowManager获取

DisplayMetrics dm = new DisplayMetric]]></description><category></category></item><item><title><![CDATA[android OTA差分包的生成方法]]></title><link>https://blog.csdn.net/lininglive/article/details/53168800</link><guid>https://blog.csdn.net/lininglive/article/details/53168800</guid><author>lininglive</author><pubDate>Mon, 13 Nov 2017 11:23:39 +0800</pubDate><description><![CDATA[在make Android系统后，会生成系统的img文件。

make otapackage 会生成sd卡用的全部系统升级包,有260M多。要生成增量升级包。需要按以下步骤。



mkdir ~/OTA 


source build/envsetup.sh; choosecom 1 1 7 eng


make;make otapackage


先将编译生成的]]></description><category></category></item><item><title><![CDATA[android中音量调节的办法]]></title><link>https://blog.csdn.net/lininglive/article/details/78518086</link><guid>https://blog.csdn.net/lininglive/article/details/78518086</guid><author>lininglive</author><pubDate>Mon, 13 Nov 2017 11:22:37 +0800</pubDate><description><![CDATA[Android调整音量方法有两种,一种是渐进式,即像手动按音量键一样,一步一步增加或减少,另一种是直接设置音量值.
  渐进式的：
   AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);  
   public void adjustStreamVolume (int streamType, i]]></description><category></category></item><item><title><![CDATA[Android 开机动画分析]]></title><link>https://blog.csdn.net/lininglive/article/details/78402319</link><guid>https://blog.csdn.net/lininglive/article/details/78402319</guid><author>lininglive</author><pubDate>Tue, 31 Oct 2017 13:19:36 +0800</pubDate><description><![CDATA[最近在做关机画面的事情，于是搜了些关于开/关机画面的文章。
     http://blog.csdn.net/yangwen123/article/details/11680759?utm_source=tuicool&utm_medium=referral
     这篇文章写的不错，Mark一下。
     总结：
      anroid系统先启动本地服务，例如surfacefli]]></description><category></category></item><item><title><![CDATA[Android APP 把view试图显示在顶层]]></title><link>https://blog.csdn.net/lininglive/article/details/78402264</link><guid>https://blog.csdn.net/lininglive/article/details/78402264</guid><author>lininglive</author><pubDate>Tue, 31 Oct 2017 13:11:40 +0800</pubDate><description><![CDATA[最近做项目，要把一个页面放到所有页面的上面，经过查询发现了两个方法。记下了，慢慢品味！
    1. 使用View.bringToFront()这个方法。并发现了这篇博客http://www.cnblogs.com/zhainanJohnny/articles/3292563.html
    2. 使用WindowManager layout 参数 
    WindowManager.L]]></description><category></category></item><item><title><![CDATA[android 中 系统日期时间的获取]]></title><link>https://blog.csdn.net/lininglive/article/details/54135311</link><guid>https://blog.csdn.net/lininglive/article/details/54135311</guid><author>lininglive</author><pubDate>Fri, 06 Jan 2017 10:49:01 +0800</pubDate><description><![CDATA[[java] view
 plain copy


 print?



import    java.text.SimpleDateFormat;       
       
SimpleDateFormat    formatter    =   new    SimpleDateFormat    ("yyyy年MM月dd日    HH:mm:ss     ");   ]]></description><category></category></item><item><title><![CDATA[IMX6的相关音频结构体的定义]]></title><link>https://blog.csdn.net/lininglive/article/details/52160144</link><guid>https://blog.csdn.net/lininglive/article/details/52160144</guid><author>lininglive</author><pubDate>Tue, 09 Aug 2016 10:06:57 +0800</pubDate><description><![CDATA[在IMX上的音频接口主要有3种接口，分别为SSI, SPDIF, ESAI 等；
platform 连接 codec 与 cpu 的驱动时，通过内核函数结构体static struct snd_soc_dai_link 来设置两边的接口；


SSI接口中，IMX6中的SSI接口有3对可以接着路I2S；三路SSI可以每路SSI 单独作为一个声卡，也可以是一个声卡包含多个设备；
以下的定义]]></description><category></category></item><item><title><![CDATA[linux_sound_alsa_Android+alsa音频系统中的几个问题]]></title><link>https://blog.csdn.net/lininglive/article/details/52152238</link><guid>https://blog.csdn.net/lininglive/article/details/52152238</guid><author>lininglive</author><pubDate>Mon, 08 Aug 2016 15:22:01 +0800</pubDate><description><![CDATA[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的角度由]]></description><category></category></item><item><title><![CDATA[linux_sound_alsa_ALSA体系SOC子系统中数据流分析]]></title><link>https://blog.csdn.net/lininglive/article/details/52152218</link><guid>https://blog.csdn.net/lininglive/article/details/52152218</guid><author>lininglive</author><pubDate>Mon, 08 Aug 2016 15:21:09 +0800</pubDate><description><![CDATA[前言：
    linux中，无论是oss还是alsa体系，录音和放音的数据流必须分析清楚。先分析alsa驱动层，然后关联到alsa库层和应用层。


 


链接分析：


    core/pcm_native.c文件中.mmap = snd_pcm_mmap调用snd_pcm_mmap_data(substream, file, area);进一步调用substream-]]></description><category></category></item><item><title><![CDATA[alsa 音频路径的问题：]]></title><link>https://blog.csdn.net/lininglive/article/details/52152164</link><guid>https://blog.csdn.net/lininglive/article/details/52152164</guid><author>lininglive</author><pubDate>Mon, 08 Aug 2016 15:17:20 +0800</pubDate><description><![CDATA[alsa 音频路径的问题：
在sound/soc/codecs目录中有很多音频codec的codec驱动，我使用的是wm9713，AP是s3c6410；这里个驱动文件中定义了很多widget和control，alsa在playback或record的时候，sound/soc/soc-dapm.c中的dapm_power_widgets函数会根据“配置情况”打开相应的widget，搭建一个完整的音]]></description><category></category></item><item><title><![CDATA[DAPM之三：audio paths与asound.conf]]></title><link>https://blog.csdn.net/lininglive/article/details/52152106</link><guid>https://blog.csdn.net/lininglive/article/details/52152106</guid><author>lininglive</author><pubDate>Mon, 08 Aug 2016 15:13:13 +0800</pubDate><description><![CDATA[其实asound.conf真跟dapm没多大关系，之所以把它也纳入dapm系列之一，是为了考虑到知识的连贯性。在DAPM之二：AUDIO PATHS与dapm kcontrol>提到：通过配置好asound.conf，上层则可打开asound.conf中定义的虚拟设备，而自动选择相应的音频通道。这是asound.conf很重要的一个作用，从这方面来说，并不是跟dapm完全没关系。

 

]]></description><category></category></item><item><title><![CDATA[DAPM之二：audio paths与dapm kcontrol]]></title><link>https://blog.csdn.net/lininglive/article/details/52152027</link><guid>https://blog.csdn.net/lininglive/article/details/52152027</guid><author>lininglive</author><pubDate>Mon, 08 Aug 2016 15:06:40 +0800</pubDate><description><![CDATA[在用alsa_amixer controls时，除了我们之前提到的snd_soc_add_controls添加的kcontrols外，还有一些多出来的controls。其实多出来的那些都是属于dapm kcontrol，主要用于切换音频路径。


 
一、AUDIO PATHS OVERVIEW





以标准内核2.6.32的wm8900 codec为例。先看AUDIO P]]></description><category></category></item><item><title><![CDATA[snd_kcontrol探究]]></title><link>https://blog.csdn.net/lininglive/article/details/52151998</link><guid>https://blog.csdn.net/lininglive/article/details/52151998</guid><author>lininglive</author><pubDate>Mon, 08 Aug 2016 15:05:07 +0800</pubDate><description><![CDATA[control控制接口




控制接口对于许多开关(switch)和调节器(slider)应用广泛，它能被用户空间存取，从而读写CODEC相关寄存器。control的主要用于mixer。它用snd_kcontrol_new结构体描述。





snd_kcontrol_new






[cpp] view
 plaincopy





]]></description><category></category></item><item><title><![CDATA[音频电源动态管理--概述]]></title><link>https://blog.csdn.net/lininglive/article/details/52151936</link><guid>https://blog.csdn.net/lininglive/article/details/52151936</guid><author>lininglive</author><pubDate>Mon, 08 Aug 2016 15:03:21 +0800</pubDate><description><![CDATA[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是音频驱动初接触者的噩梦。从何处来，到何]]></description><category></category></item><item><title><![CDATA[Linux ALSA声卡驱动之八：ASoC架构中的Platform]]></title><link>https://blog.csdn.net/lininglive/article/details/52151868</link><guid>https://blog.csdn.net/lininglive/article/details/52151868</guid><author>lininglive</author><pubDate>Mon, 08 Aug 2016 14:55:40 +0800</pubDate><description><![CDATA[1.  Platform驱动在ASoC中的作用

前面几章内容已经说过，ASoC被分为Machine，Platform和Codec三大部件，Platform驱动的主要作用是完成音频数据的管理，最终通过CPU的数字音频接口（DAI）把音频数据传送给Codec进行处理，最终由Codec输出驱动耳机或者是喇叭的音信信号。在具体实现上，ASoC有把Platform驱动分为两个部分：snd_soc_pl]]></description><category></category></item><item><title><![CDATA[Linux ALSA声卡驱动之七：ASoC架构中的Codec]]></title><link>https://blog.csdn.net/lininglive/article/details/52151795</link><guid>https://blog.csdn.net/lininglive/article/details/52151795</guid><author>lininglive</author><pubDate>Mon, 08 Aug 2016 14:49:00 +0800</pubDate><description><![CDATA[1.  Codec简介

在移动设备中，Codec的作用可以归结为4种，分别是：



对PCM等信号进行D/A转换，把数字的音频信号转换为模拟信号对Mic、Linein或者其他输入源的模拟信号进行A/D转换，把模拟的声音信号转变CPU能够处理的数字信号对音频通路进行控制，比如播放音乐，收听调频收音机，又或者接听电话时，音频信号在codec内的流通路线是不一样的对音频信号做出相应的处理]]></description><category></category></item><item><title><![CDATA[Linux ALSA声卡驱动之六：ASoC架构中的Machine]]></title><link>https://blog.csdn.net/lininglive/article/details/52151759</link><guid>https://blog.csdn.net/lininglive/article/details/52151759</guid><author>lininglive</author><pubDate>Mon, 08 Aug 2016 14:47:22 +0800</pubDate><description><![CDATA[前面一节的内容我们提到，ASoC被分为Machine、Platform和Codec三大部分，其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码，再次引用上一节的内容：Machine驱动负责处理机器特有的一些控件和音频事件（例如，当播放音频时，需要先行打开一个放大器）；单独的Platform和Codec驱动是不能工作的，它必须由Machine驱动把它们结]]></description><category></category></item></channel></rss>