Android 系统开发之FM

http://www.mobidever.com/forum.php?mod=viewthread&tid=2909


好像现在fm的很少,一般都没什么人去做,所以android目前也没有fm的应用接口类,所以要通过
HAL,实现JNI,然后应用程序通过JNI来跳用底层的,从而实现相关的功能,
这些东西都需要自己去实现的,比较的麻烦,需要有底层c,c++,到java,其实只要把思路弄清楚
都不是什么大的问题,问题就是些细节方面的问题
软件的大体思路就在这里:

FMRadio.apk   --> Java应用
libfmradio_jni.so : frameworks/base/fmradio/jni  --> Jni
libfmradioplayer.so  :             -->    HAL
libfmradiostackservice.so  :       -->    HAL

要添加一个Fm服务,让系统启动就可以启动这个服务
应该是在这个文件夹下(这个是系统的,如果不懂这些脚本文件的话,可以去搜索下这些关键字是什么意思,
或者可以去查看下文档,具体文档在哪个目录下我也不知道,反正这init.rc就这么几种【命令,服务,属性】)
/system/core/rootdir/init.rc中,需要启动一个FM服务,这里叫fmradio,可执行文件叫fmradioserver
service fmradio /system/bin/fmradioserver

fmradioserver
int main(int argc, char** argv)
{
....
    FMRadioStackService::instantiate(); // start the fmradio.stack service
....
}

FMRadioStackService.cpp
void FMRadioStackService::instantiate() {
    defaultServiceManager()->addService(
            String16("fmradio.stack"), new FMRadioStackService());
}

通过这个FMRadioStackService类,FM的基本功能已经可用
我还只实现到这里,我还没有研究过怎么写一个JNI,如果有人熟悉这块的话,给个资料文档什么的,
以后写完了之后我会把自己的代码和想法分享给大家,希望大家多多指点


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值