在android系统调试中使用tinyalsa命令

一年好景君须记,最是橙黄橘绿时。这篇文章主要讲述在android系统调试中使用tinyalsa命令相关的知识,希望能为你提供帮助。
【在android系统调试中使用tinyalsa命令】本文转载自: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 即可。   其它文件、动态库、命令均可以这样编译或移植。

    推荐阅读