如何在android 中编译alsa-utils工具
iOS软件是用Objective C编写的,目前只能在Mac OS X上用Xcode开发。Android软件可以用Java写,所以更适合国内散户程序员的条件。
回复bearqq 的帖子我电脑里已经装了kubuntu,知道你有编译好的rgb2565工具,可不可以直接给我发一下,我只是用了改一下开机logo。 查看原帖>>
最近在看ALSA 的driver,尝试了在android 中编译alsa-utils工具,下面讲述下,我是如何进行编译以及过程中遇到的问题如何解决的:首先我从ALSA 官方网上下载了alsa-utils-1.0.23版本的工具,因为我android 的alsa-lib 也是1.023版本的,防止版本不一样出现问题,我就选择了版本一样,我们的alsa-lib放的路径是在android_source/external/alsa-lib目录下面,我们下载的alsa-utils-1.023工具包也下载放在里面。
接下来我们需要完成以下几个动作:
1、在alsa-utils下面创建一个Android.mk
写的内容是:
ifeq ($(strip $(BOARD_USES_ALSA_AUDIO)),true)
LOCAL_PATH:= $(call my-dir)
#
# Build aplay command
#
include $(CLEAR_VARS)
LOCAL_CFLAGS := \
-fPIC -D_POSIX_SOURCE \
-DALSA_CONFIG_DIR=\"/system/usr/share/alsa\" \
-DALSA_PLUGIN_DIR=\"/system/usr/lib/alsa-lib\" \
-DALSA_DEVICE_DIRECTORY=\"/dev/snd/\"
LOCAL_C_INCLUDES:= \
$(LOCAL_PATH)/include \
$(LOCAL_PATH)/android \
external/alsa-lib/include
LOCAL_SRC_FILES := \
aplay/aplay.c
LOCAL_MODULE_TAGS := debug
LOCAL_MODULE := alsa_aplay
LOCAL_SHARED_LIBRARIES := \
libasound \
libc
include $(BUILD_EXECUTABLE)
3、进入第2步中创建的sys目录,在sys目录中创建signal.h头文件,在这个头文件中写如以下内容
[plain] view plaincopyprint?
01.#include <signal.h>
#include <signal.h>4、接下来你直接编译android 就可以了,在编译过程中可能出现以下 错误“
4.1:kernel/common/linux/un.h:18: error: expected specifier-qualifier-list before 'sa_family_t
那是因为我们在alsa-utils/alsactl/init_parse.c里面在include un.h之前没有#include <sys/socket.h>,你只要在这之前include这个头文件就解决了
4.2:还有可能遇到这个错误:在aplay.c里面会提示报错'S_IRGRP' undeclared (first use in this function,你只要在在aplay.c里面添加一个头文件:#include <sys/stat.h>,这样就解决了
4.3:接下来可能语言到这样的错误:speaker-test.c里面报wav_file_dir没有定义,这个值是用来定义你的wav文件存放在pad中的位置的,你随便放在哪里,我定义的路径 就是在/sdcard目录下面
经过上面的种种修改,alsa-utils工具终于编译成功了
以上就是我在编译过程中的遇到的问题
转载
蓝牙耳机算不算可穿戴设备?
可穿戴设备面临的最大对手其实是手机,要怎么证明我比手机有用呢?想想Android、iPhone,就在你兜里。它们很做的事很多,而且做得都不错;加上手机总是随身携带的。Google Glass、智能手表、计步器,啊哈?为什么不用手机呢,把它掏出来能有多难。有时候掏手机确实没有那么方便,但这样的时间能有多少?
Agar.io - 细胞追杀战 #iOS #Android
游戏中的发射功能和道具利用,让小细胞也能逆袭大细胞。玩家间的恶搞和组团作战,如中国玩家追击「Obama」,为游戏增添了更多趣味性。技术与挑战尽管服务器在国外,可能带来一些卡顿和广告干扰,但这并没有减少游戏的魅力。它作为一款Time Killer游戏,容易让人上瘾。无论iOS还是Android用户,都可体验到它的...
现在很纠结,我想再装一个系统,是装Linux或Android x86_64还是Chrome...
安全稳定,不需要什么垃圾文件清理或者磁盘清理。裸奔也不会中病毒。可以满足工作,编程,服务器的需要(娱乐性相对差一些)实用性很强,如果不是把电脑当游戏机,linux系统能够满足日常的使用和工作的需要~目前我的电脑上只有linux系统~建议linux的ubuntu或者fedora发行版,大小600-900m左右 安卓x86很X蛋的...
「谁才是穿戴机皇?」OPPO Watch 2 ECG版 VS 华为 Watch 3 对比测评...
得益于魔改Android的功劳,不必像 HW3 那样顶着鸿蒙的帽子有所避讳(花粉别喷我,这个是华为工程师微博上自己说的),加上不同于HW3为圆形屏幕,OW2的适配要简单的多。可以ADB安装一些不在官方应用市场的app,比如:酷安、B站、抖音等等。 比如第三方应用市场,Etralab 三、【信息展示】 这点不必多言,无论是信息...
剪映的音频分离用意何在?
剪映的音频分离功能是把视频的图像和声音可以分离开,但是很多人不知道怎么操作,今天就和大家分享一下使用方法。设备:华为p30 系统:Android11.0 软件:剪映8.0.16 1、首先在手机中,打开剪映APP。2、添加本地视频素材。3、点击工具栏的“剪辑”。4、接着在工具栏找到并点击“音频分离”按钮。5、...
为什么日本IT行业java最好就业?java优势何在?
Android应用程序。各种Web和桌面应用程序。金融服务业服务器应用程序。物联网,区块链。大数据技术。人工智能,机器学习。因此,如果你想为一家大公司工作,从事大型复杂的项目,Java是一个不错的选择。如果你对移动软件开发感兴趣,java是Android的本机语言。根据IDC的数据,在2020年,Android的智能手机市场...
英雄杀全武将的台词有什么?
英雄杀是由腾讯游戏推出主要流行于腾讯QQ平台的游戏,能提供给平台玩家交流与竞技的游戏乐趣。可在PC,iPhone与android平台上运行。英雄杀是取材于三国杀的桌游卡牌类游戏,所有QQ用户均可参与到游戏中。英雄杀融合了“杀人游戏”和其他策略卡牌游戏的特点,游戏过程紧张有趣,且需要冷静的判断和智慧才能完成...
应用定价 0.99 美元和 1 美元相比,优势何在?
【定价0.99美元】这是一种征对消费者的心理战述。除了美国,这种做法现在在国内也很多,比如在屈臣氏内,某种商品的价格为89.99元,其实付款时就要给90元,但这在人心理上就是八十多元的东西而已。但个人日常的经验告诉我,0.99和1肯定是有着很大的区别的。第一、便宜了一分钱。看似不经意的一...
CSS3 的动画的意义何在?
回答:让你的页面动画在移动设备上运行更快。这是一个有趣的话题。这也是移动互联网前端工程师关心的问题。 我们都知道JavaScript效率低下的两个主要原因:操作DOM和使用页面动画。浏览器上的动画效果并不比客户端容易。通常情况下,我们会通过频繁的CSS操作来实现视觉动画效果。在DOM和CSS的频繁操作,浏览器...
阅读体验感宛若纸书的海信TOUCH音乐阅读器魅力何在?
在配置方面,海信TOUCH音乐阅读器的续航能力够强,无需频繁充电。它搭载的高通八核1.8GHz主频处理器,拥有4GB+128GB大内存,让我们在阅读的时候更加流畅,不卡顿。而它的Android11开放系统,内置6大主流阅读类App,我们可以随心下载自己想要阅读的书籍,想看什么书就可以下载什么书看,十分方便省心。海信...
夹荔优普:最近在看ALSA 的driver,尝试了在android 中编译alsa-utils工具,下面讲述下,我是如何进行编译以及过程中遇到的问题如何解决的: 首先我从ALSA 官方网上下载了alsa-utils...
虎林市19465158141: 如何将android studio整个工程编译成aar - ?
夹荔优普: 要输出aar文件,必须将Module配置为library,在gradle文件中如下:输出aar:applyplugin:'com.android.library';输出apk:applyplugin:'com.android.application'.将Module配置为library后,构建输出一个aar文件,根据渠道和BuildType的不同,在相...
虎林市19465158141: android studio怎么执行编译 - ?
夹荔优普: 安装Android Studio的准备工作 1.下载好JDK 去官网上找一个下载下来 2.安装JDK.并配置环境变量.安装过程可以一直下一步,无脑操作 3.下载Android Studio的安装包 去官网上找一个,下载下来 (jdk的环境变量一定要配置) 准备工作完成之后...
虎林市19465158141: 如何单独编译Android源代码中的模块 - ?
夹荔优普: 1.make 模块名称 需要查看Android.mk文件的LOCAL_PACKAGE_NAME变量. 2.mmm命令 用于在源码根目录编译指定模块,参数为模块的相对路径.只能在第一次编译后使用.比如要编译Phone部分源码,需要在终端中执行以下命令: $...
虎林市19465158141: 如何将Android的第三方jar包编译进入apk中 ? - ?
夹荔优普: 在你的android工程下面建一个libs文件夹,然后把第三方jar包拷贝进去.右键点击libs文件夹,选择Build Path —— Use as Source Folder 再运行试试.
虎林市19465158141: 如何将源代码编译后的文件编译到android中 - ?
夹荔优普: 1.将应用程序源码复制进Android源码目录中(提前编译好源码)2.使用build/envsteup.sh 配置shell - mm TARGET_PRODUCT=product_name 或直接./build_android.sh 也能完成编译.3.在源码目录:out/target/product/productname/obj/APPS/test...
虎林市19465158141: android studio怎么配置编译so库 - ?
夹荔优普: 在app的build文件中,注意不是整个project的build.gradle文件中的android{}中加入sourceSets{main{jniLibs.srcDirs=['libs']}} 就行了.然后把so文件夹armeabi添加到libs中就行了.不用打包了
虎林市19465158141: 如何在eclipse下编译android代码 - ?
夹荔优普: eclipse下编译android代码的流程如下: 1.点击android工程,点击run 2.弹出窗口,选择运行设备,如下图,点击run就可以编译,运行
虎林市19465158141: android 怎么使用自己编译的openssl - ?
夹荔优普: 自己结一下帖.是ndk api 8以下不支持libdl中某些特性的原因,添加 Application.mk APP_PLATFORM := android-8 再次编译成功
虎林市19465158141: android 怎么把多个so文件编译成jar - ?
夹荔优普: 一共分为2步: 1.在Java中编写要调用的静态方法和需要加载的库,并生成头文件. 2.配置gradle 3.配置Android.mk文件和application.mk文件 下面一步步的走: 首先需要在Java类中声明要调用的方法,以及要加载的库,我们在包下新建一个...