zoukankan      html  css  js  c++  java
  • 在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 即可。
     
    其它文件、动态库、命令均可以这样编译或移植。
  • 相关阅读:
    kibana We couldn't activate monitoring
    学Redis这篇就够了!
    elasticsearch 官方监控文档 老版但很有用
    java dump 内存分析 elasticsearch Bulk异常引发的Elasticsearch内存泄漏
    Apache Beam实战指南 | 大数据管道(pipeline)设计及实践
    InnoDB一棵B+树可以存放多少行数据?
    函数编程真不好
    面向对象编程灾难
    可能是全网最好的MySQL重要知识点 | 面试必备
    终于有人把elasticsearch原理讲通了
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/7616741.html
Copyright © 2011-2022 走看看