[Android6.0]App中调用init.rc中的服务,从而运行shell脚本
来源:互联网 发布:新疆农业大学网络课程 编辑:程序博客网 时间:2024/06/16 20:29
Author: Younix
Platform: RK3399
OS: Android 6.0
Kernel: 4.4
Version: v2017.07
需求:希望在 Android App 中添加 SPDIF 测试功能。对 Android App 开发不熟悉,为节省开发时间走 Android Audio Manager 太麻烦了。所以希望直接通过 shell 脚本,调用 tinyplay 命令来进行。
- Initrc 中添加 spdiftest 服务
- Devicemk 拷贝脚本和测试音频
- 测试脚本 spdif-tset
- App 调用
Init.rc 中添加 spdiftest 服务
对于我这个项目,是在 init.tablet.rc 中添加
service spdiftest /system/bin/spdif-test class main disabled oneshot
Device.mk 拷贝脚本和测试音频
工程 Device.mk 文件(rk3399_mid.mk)中添加
PRODUCT_COPY_FILES += \ device/rockchip/rk3399/rk3399_mid/test/spdif-test:system/bin/spdif-test \ device/rockchip/rk3399/rk3399_mid/test/test-music.wav:system/media/audio/test-music.wav
Spdif-test 实际为测试脚本
Test-music.wav 实际为测试音频
测试脚本 spdif-tset
如下
#!/system/bin/sh tinymix -D 0 "Stereo DAC MIXL DAC L1 Switch" 1 tinymix -D 0 "Stereo DAC MIXR DAC R1 Switch" 1 tinymix -D 0 "OUT MIXL DAC L1 Switch" 1 tinymix -D 0 "OUT MIXR DAC R1 Switch" 1 tinymix -D 0 "HPOVOL L Switch" 1 tinymix -D 0 "HPOVOL R Switch" 1 tinymix -D 0 "HPO MIX HPVOL Switch" 1 tinymix -D 0 "HPO L Playback Switch" 1 tinymix -D 0 "HPO R Playback Switch" 1 tinyplay /system/media/audio/test-music.wav -D 1 -d 0
App 调用
在 App 中通过 SystemProperties.set(“ctl.start”,”spdiftest”);
调用 spdiftest 服务(实际是 spdif-test 脚本)
private void setSpdifOn() throws IOException { SystemProperties.set("ctl.start","spdiftest"); Log.v(TAG, "Call System Service 'spdiftest' in init.rc to test SPDIF."); }
阅读全文
0 0
- [Android6.0]App中调用init.rc中的服务,从而运行shell脚本
- init进程 && 解析启动脚本init.rc && init.rc中启动sh文件 && JAVA中跑shell
- init.rc启动 shell脚本
- init.rc启动 shell脚本
- init.rc启动 shell脚本
- Android6.0 init.rc中创建符号链接失败问题
- Android6.0 init.rc中创建符号链接失败问题
- 在android init.xxx.rc中启动shell脚本
- 启动和停止init.rc中的服务
- 在Android app中调用shell脚本
- Android中使用启动脚本init.rc
- init.rc在boot中执行shell脚本,无法创建目录
- Android在init.rc中加入脚本开机安装APK并启动APK的服务
- [init.rc] android开机过程执行shell脚本
- linux C中调用shell命令和运行shell脚本
- linux C中调用shell命令和运行shell脚本
- linux C中调用shell命令和运行shell脚本
- linux C中调用shell命令和运行shell脚本
- 大数据分析与生态系统论坛:金融、电网、容器、数据库、图计算等共谱大数据生态
- Android插件化学习
- 机器学习九大算法---决策树
- 基于golang rocksdb实现的高性能队列
- iTerm2 指南
- [Android6.0]App中调用init.rc中的服务,从而运行shell脚本
- 笔记
- Ubuntu 16.04安装微信
- 设计模式(十八)------23种设计模式(10):命令模式
- 【bootstrap】入门
- 工作日常1
- 输出菱形星号
- 启动jetty:Unsupported major.minor version 52.0
- LLVM每日谈之二十七 几个在线编译器资源