基于iTop4412的FM收音机系统设计(三)
2024-08-28 15:16:00
说明:第一版架构为:APP+JNI(NDK)+Driver(linux),优点是开发简单,周期短,也作为自己的毕业设计
现在更新第二版,FM服务完全植入Android系统中,成为系统服务,架构为:APP+Frameworks+JNI+HAL+Driver
整个系统设计,大致分为三篇文章介绍完毕,包括:
一、驱动设计篇
二、系统API接口篇
三、APP功能实现篇
---------------------------------------------------(三)APP设计篇-----------------------------------------------------------------
前两篇文章介绍了底层是怎么实现的,现在终于可以和用户进行交互了
这里暂时只介绍调用底层API的方法,具体实现后续再补充...
1.导包
import android.os.ServiceManager;
import android.os.IFMService;
2.获取系统的FM服务
private IFMService fmService = null;
fmService = IFMService.Stub.asInterface(ServiceManager.getService("fm5767"));
3.调用底层服务,如获取当前频率
int curFreq = fmService.getFreq();
我们可以用同样的方式调用其他的API,API的查阅在frameworks/base/core/java/android/os/IFMService.aidl文件中
package android.os; interface IFMService {
int getADC();
int getFreq();
void setFreq(int freq);
void searchNextorPreFreq(int enable);
void setNextorPreFreq(int enable);
void enableMute(int enable);
int getIsMute();
void startAutoSearch();
}
4.由于我们在系统中自行添加了API,所以最好编译APP是放在系统源码里进行编译,使用mm命令即可
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_PACKAGE_NAME := FmRadio LOCAL_PROGUARD_FLAG_FILES := proguard.flags include $(BUILD_PACKAGE) # Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))
github上的代码暂时是APP->JNI(NDK)->Driver架构的,后续会更新...欢迎大家指出错误与不足指出,非常感谢~~
完整工程代码下载:
https://github.com/pngcui/FM-radio
最新文章
- JQuery中使用Ajax实现诸如登录名检测等异步请求Demo
- 【编程题目】和为 n 连续正数序列
- 黑马程序员:Java编程_面向对象
- CUBRID学习笔记 22 插入数据
- XBox360-双光盘游戏自制GOD
- 【待补】java开发Web Service
- memcached一些整理
- [JAVA关键字] static &; final
- 临时对象与NRV技术
- arrow functions 箭头函数
- SpringBoot系列——Redis
- CentOS7编译安装php7.1
- Inquirer.js
- ORM版学员管理系统
- 痞子衡嵌入式:蓝牙芯片厂商三强(Qualcomm&;CSR, TI, Nordic)产品一览
- swift3笔记
- 自学Zabbix11.1 Zabbix 配置SNMP监控
- DRF之接口文档以及Xadmin
- shell command
- DELPHI新的变量的声明方法
热门文章
- DataStage 六、安装和部署集群环境
- System.Web.HttpUtility VS System.Web.HttpServerUtility VS System.Net.WebUtility
- Hadoop学习【一】单机版搭建
- linux每天一小步---tail命令详解
- InstaGAN: Instance-Aware Image-to-Image Translation
- python ghost.py使用笔记
- 利用ROW_NUMBER中的partition by 删除重复Key的数据
- selenium 元素可以定位到,但是无法点击问题
- Hibernate4获取Connection,ResultSet对象
- Docker Warning : the backing xfs filesystem is formatted without d_type support