本文转载自:http://blog.csdn.net/tangdexi112/article/details/17579021

我们在进行音频调试的时候,需要使用tinymix、tinyplay、tinycap等命令,来调试codec,
那么在android中,这些命令是不存在的,那么我们需要使用这些命令的话,就只有自己移植了。
该怎么样移植呢???
 
1)开始,我们直接按照linux下的步骤移植,编写Makefile 使用arm-linux-gcc 编译源码,
编译完成之后,通过adb push 将这些文件传送至/system/bin 下,运行tinymix ,
发现无法执行,百度之后发现,传统的linux下的执行程序的库是glibc,而在android系统中是
bionic ,库不一样,所以无法运行。
 
2)那该怎么办呢??
我们查看源码,发现在external/tinyalsa/ 文件夹下已经存在了tinyalsa的源码了,
查看Android.mk:
LOCAL_PATH:= $(call my-dir)
 
include $(CLEAR_VARS)
LOCAL_C_INCLUDES:= external/tinyalsa/include
LOCAL_SRC_FILES:= mixer.c pcm.c
LOCAL_MODULE := libtinyalsa
LOCAL_SHARED_LIBRARIES:= libcutils libutils
LOCAL_MODULE_TAGS := optional
LOCAL_PRELINK_MODULE := false
 
include $(BUILD_SHARED_LIBRARY)
 
include $(CLEAR_VARS)
LOCAL_C_INCLUDES:= external/tinyalsa/include
LOCAL_SRC_FILES:= tinyplay.c
LOCAL_MODULE := tinyplay
LOCAL_SHARED_LIBRARIES:= libcutils libutils libtinyalsa
LOCAL_MODULE_TAGS := optional
 
include $(BUILD_EXECUTABLE)
 
include $(CLEAR_VARS)
LOCAL_C_INCLUDES:= external/tinyalsa/include
LOCAL_SRC_FILES:= tinycap.c
LOCAL_MODULE := tinycap
LOCAL_SHARED_LIBRARIES:= libcutils libutils libtinyalsa
LOCAL_MODULE_TAGS := optional
 
include $(BUILD_EXECUTABLE)
 
include $(CLEAR_VARS)
LOCAL_C_INCLUDES:= external/tinyalsa/include
LOCAL_SRC_FILES:= tinymix.c
LOCAL_MODULE := tinymix
LOCAL_SHARED_LIBRARIES:= libcutils libutils libtinyalsa
LOCAL_MODULE_TAGS := optional
 
include $(BUILD_EXECUTABLE)
我们只需要模块化编译这些命令即可,libtinyalsa.so动态库是由mixer.c pcm.c 生成的,和这三个命令文件无关。
 
3)模块化编译:
先在源码中执行:source build/envsetup.sh   ---->这一步会配置相关环境变量
进入external/tinyalsa/下,在终端输入命令mm 即可编译。
注意:如果提示找不到java环境,那么就将java环境变量添加至系统中,
具体为export 到 ~/.bashrc 文件中,随后source ~/.bashrc 即可。
 
其它文件、动态库、命令均可以这样编译或移植。

在android系统调试中使用tinyalsa命令【转】的更多相关文章

  1. Android系统shell中的clear命令实现【转】

    本文转载自:http://blog.csdn.net/morixinguan/article/details/73467845 之前一直不太清楚,当我们在shell命令行输入很多命令,会在屏幕上输出一 ...

  2. Android系统简介(中):系统架构

    Android的系统架构栈分为4层,从上往下分别是Applications.Application framework.Libraries  & Android Runtime.Linux  ...

  3. 这些Android系统样式中的颜色属性你知道吗?

    Android 系统样式中的颜色属性 推荐阅读看完后彻底搞清楚Android中的 Attr . Style .Theme 几个常用的颜色属性 先放上一张经典的图片,图片来自网络. 这张图在网上很是流传 ...

  4. adb logcat调试中常用的命令介绍

    Android日志系统提供了记录和查看系统调试信息的功能.日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命 令来查看和使用. adb logcat 命令格式 : ad ...

  5. 浅谈Android系统开发中LOG的使用

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6581828 在程序开发过程中,LOG是广泛使用 ...

  6. 浅谈Android系统开发中LOG的使用【转】

    本文转载自:http://blog.csdn.net/luoshengyang/article/details/6581828 在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以 ...

  7. Windows系统-cmd中的tracert命令

    大部分同学都是用的Linux系统来测试网络命令相关工具,我用Windows10系统来测试tracert.        tracert:也被称为Windows路由跟踪实用程序,在命令提示符(cmd)中 ...

  8. Android NDK 开发中 adb logcat 命令的使用

    一.LogCat 存储在一个叫做 circular memory buffers 的缓冲中. 平时常用的都是通过eclipse 自带的 logcat 插件查看 logcat ,其实也可以通过命令来导出 ...

  9. android 应用程序中执行Linux 命令

    ADB 无线调试命令son = "setprop service.adb.tcp.port 5555\n" + "stop adbd\n" + "st ...

随机推荐

  1. JS高级——eval

    eval函数可以用来将字符串转换成JavaScript代码并且运行 <script> eval('var a=10'); console.log(a);//10 </script&g ...

  2. SQL基本操作——declare if lese while

    declare --第一种 declare @i int set @i= (select COUNT(*) from t8) select @i --第二种 declare @i int select ...

  3. k[原创]Faster R-CNN论文翻译

    物体检测论文翻译系列: 建议从前往后看,这些论文之间具有明显的延续性和递进性. R-CNN SPP-net Fast R-CNN Faster R-CNN Faster R-CNN论文翻译   原文地 ...

  4. python mongodb压力测试脚本

    $ pip install pymongo #!/usr/bin/env python #coding=utf-8 #Author: Ca0Gu0 from pymongo import MongoC ...

  5. PHP 之base16加密解密封装

    /** * @Description: base16加密 * @Author: Yang * @param $data * @return string */ function base16_enco ...

  6. demo记录

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http ...

  7. 爬虫系列(九) xpath的基本使用

    一.xpath 简介 究竟什么是 xpath 呢?简单来说,xpath 就是一种在 XML 文档中查找信息的语言 而 XML 文档就是由一系列节点构成的树,例如,下面是一份简单的 XML 文档: &l ...

  8. js中阻止事件冒泡和浏览器默认行为

    在使用javascript编程时会遇到一个问题,就是当你给html添加事件时,由于浏览器默认的为冒泡型事件触发机制,所以会触发你不想触发的事件.那么通过如下的函数可以解决这个问题.[兼容IE和FF] ...

  9. 关于wordclou的一些简单操作

    详细讲解一下怎么用python的三方库wordcloud制作一个关于歌曲<Vincent>的歌词,有特别背景的云词效果,如图所示: 首先的先准备好一张背景图,为了云词效果,可以实现修改一下 ...

  10. java 多线程面试题

    1.什么是线程? 线程是操作系统能够运行的最小调度单位,他被包含在进程中,是进程中实际运作的单位. 2.线程和进程的区别 线程是进程的子集,一个进程有很多线程,每个线程执行不同的任务,不同的进程使用不 ...