一年好景君须记,最是橙黄橘绿时。这篇文章主要讲述在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 即可。
其它文件、动态库、命令均可以这样编译或移植。
推荐阅读
- 寻找bug并消灭系列——记录在Android开发所遇到的bug
- Android开发-Crimina
- NetApp DataONTAP 集群模式 学习笔记3
- Android开发之基于监听的事件处理
- NetApp DataONTAP 集群模式 学习笔记2
- Android开发34周——Criminallntent项目
- 安卓开发——拍照裁剪并保存为头像报错(裁剪图片无法保存的)
- Android开发之CriminalIntent项目开发(其一)
- Android按键添加和处理的方案