- 博客(14)
- 收藏
- 关注
原创 Linux ALSA架构:PCM_WRITE流程 (三)
这两个函数根据流的类型是播放还是录制,将操作分派给另外四个函数 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 时,报错并返回。
2025-09-10 19:09:29
1497
原创 Linux ALSA架构:PCM_OPEN流程 (二)
我们 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 音频。
2025-09-10 11:27:47
1449
原创 Linux ALSA架构:LINUX声卡创建(一)
snd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下,声卡驱动的第一个动作通常就是创建一个snd_card结构体。Linux ALSA架构:声卡及设备(二)一、声卡结构体与创建、注册。
2025-09-05 15:12:10
714
1
转载 Android Service重起异常
现在有这样的需求,防止自己的app被其他的应用程序(比如qq手机管家)杀死,该怎么实现呢。我们知道app都是运行在进程中的,android是怎样管理这些进程的呢。要想app不被杀死,只要做到进程不被结束就解决了问题。但是不幸的是,第三方app很容易利用系统的api(比如killBackProgress())轻易杀死其他进程。那该怎么办呢? 目前有这样的解决方案。在本进程被其他应用程序杀
2013-06-14 11:08:40
2660
转载 android中跨进程通讯的4种方式
android中跨历程通讯的4种方式 android中跨进程通讯的4种方式 由于android系统中应用程序之间不能共享内存。因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些。在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activity、Content Provider、Broadcast和Se
2013-01-25 15:37:24
2853
转载 android线程池
线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。 比如:一个应用要和网络打交道,有很多步骤需要访问网络,为了不阻塞主线程,每个步骤都创建个线程,在线程中和网络交互,用线程池就变的简单,线程池是对线程的一种封
2013-01-25 15:27:56
69462
1
原创 android 如何结束一个线程?
如何结束一个线程? 关于线程的结束有以下几点: 1.不要手动调用stop方法强行终止一个线程,这种方式不安全。 通过帮助文档,我们可以知道,Android的线程类本身就提供了一些公共方法去结束线程。 final void stop() This method is deprecated. because stopping a thread in
2013-01-25 15:12:07
107011
1
转载 android中service与线程
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).
2013-01-25 14:55:14
8299
转载 关于android收不到开机广播
Android3.1后Boot_COMPLETED广播不响应的问题 最近在做一个应用,要求开机自启动服务,网上找的开机自启动应用基本上都是能过接收开机广播来实现的,但有时候会收不到广播,在网上查了下,解释如下: 在做Android开发时,很多应用由于各种目的,希望在机器启动时被唤醒,一般的做法是写一个BroadcastReceiver,接收对应的boot acti
2012-12-24 11:12:09
7516
转载 android intent大全
1.Intent的用法: (1)用Action跳转 1、使用Action跳转,如果有一个程序的AndroidManifest.xml中的某一个 Activity的IntentFilter段中 定义了包含了相同的Action那么这个Intent就与这个目标Action匹配。如果这个IntentFilter段中没有定义 Type,Category,那么这个 Activity就匹配了。但是如
2012-12-04 14:51:58
796
转载 AsyncTask的用法
AsyncTask的用法 在开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则: 1. 不要阻塞UI线程 2. 确保只在UI线程中访问Android UI工具包 当一个程序第一次启动时,Android会同时启动一个对应的主线程(Mai
2012-12-03 17:31:19
713
转载 Android异步下载网络图片
Android异步下载网络图片(其一) 项目中有时候需要获取网络上的图片,并下载下来到手机客户端显示。怎么做呢? 实现思路是: 1:在UI线程中启动一个线程,让这个线程去下载图片。 2:图片完成下载后发送一个消息去通知UI线程 2:UI线程获取到消息后,更新UI。 这里的UI线程就是主线程。 这两个步骤涉及到一些知识点,即是:
2012-12-03 17:19:17
2119
转载 Android Context学习
Android中Context详解——你所不知道的Context 大家好, 今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中时刻的在与它打交道,例如:Service、BroadcastReceiver、Activity等都会利用到Context的相关方法 ; 说它陌生,完全是因为我们真正的不懂Context的原理、
2012-11-29 18:47:27
723
转载 JAVA基础之理解JNI原理
JNI是JAVA标准平台中的一个重要功能,它弥补了JAVA的与平台无关这一重大优点的不足,在JAVA实现跨平台的同时,也能与其它语言(如C、C++)的动态库进行交互,给其它语言发挥优势的机会。 有了JAVA标准平台的支持,使JNI模式更加易于实现和使用。在此总结了下面这个知识图: 实例: 环境说明:ubuntu 10.4.2 LTS系统 程序清单1:src/com/
2012-10-15 16:32:42
902
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅