<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[程序员在囧途~~人生路漫漫]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lyf_007217</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lyf_007217]]></copyright><item><title><![CDATA[Linux ALSA架构：PCM_WRITE流程 (三)]]></title><link>https://blog.youkuaiyun.com/lyf_007217/article/details/151402551</link><guid>https://blog.youkuaiyun.com/lyf_007217/article/details/151402551</guid><author>lyf_007217</author><pubDate>Wed, 10 Sep 2025 19:09:29 +0800</pubDate><description><![CDATA[这两个函数根据流的类型是播放还是录制，将操作分派给另外四个函数 snd_pcm_playback_avail()、snd_pcm_capture_avail()、snd_pcm_playback_hw_avail() 和 snd_pcm_capture_hw_avail()。检查 runtime 的状态，当状态不为 SNDRV_PCM_STATE_PREPARED、SNDRV_PCM_STATE_RUNNING 和 SNDRV_PCM_STATE_PAUSED 时，报错并返回。]]></description><category></category></item><item><title><![CDATA[Linux ALSA架构：PCM_OPEN流程 (二)]]></title><link>https://blog.youkuaiyun.com/lyf_007217/article/details/145200557</link><guid>https://blog.youkuaiyun.com/lyf_007217/article/details/145200557</guid><author>lyf_007217</author><pubDate>Wed, 10 Sep 2025 11:27:47 +0800</pubDate><description><![CDATA[我们 adb shell， 进入手机中，ls -al /dev/snd 看下，可以看到很多设备节点。简化如下：$ ls –lcrw-rw----+ 1 root audio 116, 8 2011-02-23 21:38 controlC0  ---> 用于声卡的控制，例如通道选择，混音，麦克风的控制等crw-rw----+ 1 root audio 116, 4 2011-02-23 21:38 midiC0D0 	---> 用于播放midi 音频。]]></description><category></category></item><item><title><![CDATA[Linux ALSA架构：LINUX声卡创建（一）]]></title><link>https://blog.youkuaiyun.com/lyf_007217/article/details/151223850</link><guid>https://blog.youkuaiyun.com/lyf_007217/article/details/151223850</guid><author>lyf_007217</author><pubDate>Fri, 05 Sep 2025 15:12:10 +0800</pubDate><description><![CDATA[snd_card可以说是整个ALSA音频驱动最顶层的一个结构，整个声卡的软件逻辑结构开始于该结构，几乎所有与声音相关的逻辑设备都是在snd_card的管理之下，声卡驱动的第一个动作通常就是创建一个snd_card结构体。Linux ALSA架构：声卡及设备（二）一、声卡结构体与创建、注册。]]></description><category></category></item><item><title><![CDATA[Android Service重起异常]]></title><link>https://blog.youkuaiyun.com/lyf_007217/article/details/9092929</link><guid>https://blog.youkuaiyun.com/lyf_007217/article/details/9092929</guid><author>lyf_007217</author><pubDate>Fri, 14 Jun 2013 11:08:40 +0800</pubDate><description><![CDATA[现在有这样的需求，防止自己的app被其他的应用程序（比如qq手机管家）杀死，该怎么实现呢。我们知道app都是运行在进程中的，android是怎样管理这些进程的呢。要想app不被杀死，只要做到进程不被结束就解决了问题。但是不幸的是，第三方app很容易利用系统的api（比如killBackProgress（））轻易杀死其他进程。那该怎么办呢？

   目前有这样的解决方案。在本进程被其他应用程序杀]]></description><category></category></item><item><title><![CDATA[android中跨进程通讯的4种方式]]></title><link>https://blog.youkuaiyun.com/lyf_007217/article/details/8542359</link><guid>https://blog.youkuaiyun.com/lyf_007217/article/details/8542359</guid><author>lyf_007217</author><pubDate>Fri, 25 Jan 2013 15:37:24 +0800</pubDate><description><![CDATA[android中跨历程通讯的4种方式




android中跨进程通讯的4种方式
由于android系统中应用程序之间不能共享内存。因此，在不同应用程序之间交互数据（跨进程通讯）就稍微麻烦一些。在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件：Activity、Content Provider、Broadcast和Se]]></description><category></category></item><item><title><![CDATA[android线程池]]></title><link>https://blog.youkuaiyun.com/lyf_007217/article/details/8542238</link><guid>https://blog.youkuaiyun.com/lyf_007217/article/details/8542238</guid><author>lyf_007217</author><pubDate>Fri, 25 Jan 2013 15:27:56 +0800</pubDate><description><![CDATA[线程池的基本思想还是一种对象池的思想，开辟一块内存空间，里面存放了众多(未死亡)的线程，池中线程执行调度由池管理器来处理。当有线程任务时，从池中取一个，执行完成后线程对象归池，这样可以避免反复创建线程对象所带来的性能开销，节省了系统的资源。
比如：一个应用要和网络打交道，有很多步骤需要访问网络，为了不阻塞主线程，每个步骤都创建个线程，在线程中和网络交互，用线程池就变的简单，线程池是对线程的一种封]]></description><category></category></item><item><title><![CDATA[android 如何结束一个线程?]]></title><link>https://blog.youkuaiyun.com/lyf_007217/article/details/8542133</link><guid>https://blog.youkuaiyun.com/lyf_007217/article/details/8542133</guid><author>lyf_007217</author><pubDate>Fri, 25 Jan 2013 15:12:07 +0800</pubDate><description><![CDATA[如何结束一个线程？

 

关于线程的结束有以下几点：

1.不要手动调用stop方法强行终止一个线程，这种方式不安全。



通过帮助文档，我们可以知道，Android的线程类本身就提供了一些公共方法去结束线程。

final void  stop()

This method is deprecated. because stopping
 a thread in]]></description><category></category></item><item><title><![CDATA[android中service与线程]]></title><link>https://blog.youkuaiyun.com/lyf_007217/article/details/8542091</link><guid>https://blog.youkuaiyun.com/lyf_007217/article/details/8542091</guid><author>lyf_007217</author><pubDate>Fri, 25 Jan 2013 14:55:14 +0800</pubDate><description><![CDATA[android sdk中的描述


Caution: A service runs in the main thread of its hosting process—the service does not create its own thread and does not run in a separate process (unless you specify otherwise).]]></description><category></category></item><item><title><![CDATA[关于android收不到开机广播]]></title><link>https://blog.youkuaiyun.com/lyf_007217/article/details/8424015</link><guid>https://blog.youkuaiyun.com/lyf_007217/article/details/8424015</guid><author>lyf_007217</author><pubDate>Mon, 24 Dec 2012 11:12:09 +0800</pubDate><description><![CDATA[Android3.1后Boot_COMPLETED广播不响应的问题

   最近在做一个应用，要求开机自启动服务，网上找的开机自启动应用基本上都是能过接收开机广播来实现的，但有时候会收不到广播，在网上查了下，解释如下：



    在做Android开发时，很多应用由于各种目的，希望在机器启动时被唤醒，一般的做法是写一个BroadcastReceiver，接收对应的boot acti]]></description><category></category></item><item><title><![CDATA[android intent大全]]></title><link>https://blog.youkuaiyun.com/lyf_007217/article/details/8255927</link><guid>https://blog.youkuaiyun.com/lyf_007217/article/details/8255927</guid><author>lyf_007217</author><pubDate>Tue, 04 Dec 2012 14:51:58 +0800</pubDate><description><![CDATA[1.Intent的用法：


(1)用Action跳转
1、使用Action跳转，如果有一个程序的AndroidManifest.xml中的某一个 Activity的IntentFilter段中 定义了包含了相同的Action那么这个Intent就与这个目标Action匹配。如果这个IntentFilter段中没有定义 Type,Category，那么这个 Activity就匹配了。但是如]]></description><category></category></item><item><title><![CDATA[AsyncTask的用法]]></title><link>https://blog.youkuaiyun.com/lyf_007217/article/details/8252679</link><guid>https://blog.youkuaiyun.com/lyf_007217/article/details/8252679</guid><author>lyf_007217</author><pubDate>Mon, 03 Dec 2012 17:31:19 +0800</pubDate><description><![CDATA[AsyncTask的用法





      在开发Android应用时必须遵守单线程模型的原则： Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则： 
1. 不要阻塞UI线程 
2. 确保只在UI线程中访问Android UI工具包 
      当一个程序第一次启动时，Android会同时启动一个对应的主线程(Mai]]></description><category></category></item><item><title><![CDATA[Android异步下载网络图片]]></title><link>https://blog.youkuaiyun.com/lyf_007217/article/details/8252583</link><guid>https://blog.youkuaiyun.com/lyf_007217/article/details/8252583</guid><author>lyf_007217</author><pubDate>Mon, 03 Dec 2012 17:19:17 +0800</pubDate><description><![CDATA[Android异步下载网络图片（其一）





项目中有时候需要获取网络上的图片，并下载下来到手机客户端显示。怎么做呢？

实现思路是：

 1：在UI线程中启动一个线程,让这个线程去下载图片。

 2：图片完成下载后发送一个消息去通知UI线程

 2：UI线程获取到消息后，更新UI。

 这里的UI线程就是主线程。

 这两个步骤涉及到一些知识点，即是：﻿﻿]]></description><category></category></item><item><title><![CDATA[Android Context学习]]></title><link>https://blog.youkuaiyun.com/lyf_007217/article/details/8240646</link><guid>https://blog.youkuaiyun.com/lyf_007217/article/details/8240646</guid><author>lyf_007217</author><pubDate>Thu, 29 Nov 2012 18:47:27 +0800</pubDate><description><![CDATA[Android中Context详解——你所不知道的Context  




大家好，  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ，说它熟悉，是应为我们在开发中时刻的在与它打交道，例如：Service、BroadcastReceiver、Activity等都会利用到Context的相关方法 ； 说它陌生，完全是因为我们真正的不懂Context的原理、]]></description><category></category></item><item><title><![CDATA[JAVA基础之理解JNI原理]]></title><link>https://blog.youkuaiyun.com/lyf_007217/article/details/8073645</link><guid>https://blog.youkuaiyun.com/lyf_007217/article/details/8073645</guid><author>lyf_007217</author><pubDate>Mon, 15 Oct 2012 16:32:42 +0800</pubDate><description><![CDATA[JNI是JAVA标准平台中的一个重要功能，它弥补了JAVA的与平台无关这一重大优点的不足，在JAVA实现跨平台的同时，也能与其它语言（如C、C++）的动态库进行交互，给其它语言发挥优势的机会。

有了JAVA标准平台的支持，使JNI模式更加易于实现和使用。在此总结了下面这个知识图：



实例：

环境说明：ubuntu 10.4.2 LTS系统

程序清单1：src/com/]]></description><category></category></item></channel></rss>