• 在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 即可。
     
    其它文件、动态库、命令均可以这样编译或移植。
  • 相关阅读:
    SkyWorking基础:6.2版本安装部署
    ZooKeeper基础:快速部署
    Linux基础:uniq命令总结
    Linux基础:seq命令总结
    JavaScript BOM对象
    JavaScript常用项目(更新至19.11.17)
    JavaScript触发器
    JavaScript选择器和节点操作
    小花梨的取石子游戏【博弈】
    杨辉三角打表
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/7616741.html
Copyright © 2020-2023  润新知