实例介绍
android 收音机 FM 驱动 hal层 框架层以及应用层代码 方法一 不需要framework部分 1.fm放到 \hardware\rk2x 2.FmRadio 放到 packages\apps 3.hardware\libhardware\include\hardware\fm.h 放到hardware\libhardware\include\hardware\fm.h 4.build\target\product中PRODUCT_PACKAGES :=加上 FmRadio \ 5./bionic/libc/kernel/common/linux/Hw_fm.h拷贝过去 6./de
【实例截图】
【核心代码】
FM移植包(基于Android4.4)
├── 方法一(FmService写在apk里面)
│ ├── bionic
│ │ └── libc
│ │ └── kernel
│ │ └── common
│ │ └── linux
│ │ └── Hw_fm.h
│ ├── drvier
│ │ └── fm
│ │ ├── 5807p
│ │ │ ├── built-in.o
│ │ │ ├── fm5807.c
│ │ │ ├── fm5807.h
│ │ │ ├── fm5807.o
│ │ │ ├── Kconfig
│ │ │ ├── Makefile
│ │ │ └── modules.order
│ │ ├── built-in.o
│ │ ├── Kconfig
│ │ ├── Makefile
│ │ ├── modules.order
│ │ └── qn8006
│ │ ├── hw_qn8006.h
│ │ ├── Kconfig
│ │ ├── Makefile
│ │ ├── qn8006.c
│ │ ├── qncommon.h
│ │ ├── qnconfig.h
│ │ ├── qndriver.c
│ │ ├── qndriver.h
│ │ ├── qnfunc.c
│ │ ├── qnfunc.h
│ │ ├── qnio.c
│ │ ├── qnio.h
│ │ └── qnreg.h
│ ├── FmRadio
│ │ └── FmRadio
│ │ ├── AndroidManifest.xml
│ │ ├── Android.mk
│ │ ├── bin
│ │ │ ├── aidl
│ │ │ │ └── com
│ │ │ │ └── rk
│ │ │ │ └── FmRadio
│ │ │ │ └── IfmService.aidl
│ │ │ └── AndroidManifest.xml
│ │ ├── gen
│ │ │ └── com
│ │ │ └── rk
│ │ │ └── FmRadio
│ │ │ ├── BuildConfig.java
│ │ │ ├── IfmService.java
│ │ │ └── R.java
│ │ ├── jni
│ │ │ ├── Android.mk
│ │ │ ├── com_android_server_FmService.cpp
│ │ │ └── Log.h
│ │ ├── project.properties
│ │ ├── res
│ │ │ ├── drawable
│ │ │ │ ├── areabutton2.png
│ │ │ │ ├── areabutton.png
│ │ │ │ ├── area.xml
│ │ │ │ ├── autobutton2.png
│ │ │ │ ├── autobutton.png
│ │ │ │ ├── auto.xml
│ │ │ │ ├── background.png
│ │ │ │ ├── channelbackground.png
│ │ │ │ ├── channelbutton2.png
│ │ │ │ ├── channelbutton.png
│ │ │ │ ├── channel.xml
│ │ │ │ ├── homebutton2.png
│ │ │ │ ├── homebutton.png
│ │ │ │ ├── home.xml
│ │ │ │ ├── icon.png
│ │ │ │ ├── modebutton2.png
│ │ │ │ ├── modebutton.png
│ │ │ │ ├── mode.xml
│ │ │ │ ├── nextbutton2.png
│ │ │ │ ├── nextbutton.png
│ │ │ │ ├── next.xml
│ │ │ │ ├── notice.png
│ │ │ │ ├── prebutton2.png
│ │ │ │ ├── prebutton.png
│ │ │ │ ├── pre.xml
│ │ │ │ ├── record1.xml
│ │ │ │ ├── record2.xml
│ │ │ │ ├── record3.xml
│ │ │ │ ├── recordbutton2.png
│ │ │ │ ├── recordbutton.png
│ │ │ │ ├── record_play.png
│ │ │ │ ├── record_play_select.png
│ │ │ │ ├── record_start.png
│ │ │ │ ├── record_start_select.png
│ │ │ │ ├── record_stop.png
│ │ │ │ ├── record_stop_select.png
│ │ │ │ ├── recordtimebackground.png
│ │ │ │ ├── record.xml
│ │ │ │ ├── savebutton2.png
│ │ │ │ ├── savebutton.png
│ │ │ │ ├── save.xml
│ │ │ │ ├── seek1.png
│ │ │ │ ├── startbutton2.png
│ │ │ │ ├── startbutton.png
│ │ │ │ ├── start.xml
│ │ │ │ ├── stopbutton2.png
│ │ │ │ ├── stopbutton.png
│ │ │ │ ├── stop.xml
│ │ │ │ ├── thumb.png
│ │ │ │ ├── vol.png
│ │ │ │ ├── widget_background.png
│ │ │ │ ├── widget_open_light.png
│ │ │ │ ├── widget_open.png
│ │ │ │ ├── widget_radio_icon.png
│ │ │ │ ├── widget_turn_next.png
│ │ │ │ └── widget_turn_pre.png
│ │ │ ├── layout
│ │ │ │ ├── channeldialog.xml
│ │ │ │ ├── main_layout.xml
│ │ │ │ ├── recordlayout.xml
│ │ │ │ └── widget_layout.xml
│ │ │ ├── values
│ │ │ │ └── strings.xml
│ │ │ ├── values-zh-rCN
│ │ │ │ └── string.xml
│ │ │ ├── values-zh-rTW
│ │ │ │ └── strings.xml
│ │ │ └── xml
│ │ │ └── fm_widget_info.xml
│ │ └── src
│ │ └── com
│ │ └── rk
│ │ └── FmRadio
│ │ ├── ChannelAdapter.java
│ │ ├── DBhelper.java
│ │ ├── FmRadio.java
│ │ ├── FmRadioService.java
│ │ ├── FmRelate.java
│ │ ├── FmWidgetProvider.java
│ │ └── IfmService.aidl
│ ├── FmRadio.rar
│ ├── hardware
│ │ ├── libhardware
│ │ │ └── include
│ │ │ └── hardware
│ │ │ └── fm.h
│ │ └── rk29
│ │ └── fm
│ │ ├── Android.mk
│ │ ├── fm.c
│ │ └── primitive
│ │ ├── rk28_fm.c
│ │ └── rk28_fm.h
│ └── kernel
│ └── drvier
│ └── fm
│ ├── 5807p
│ │ ├── fm5807.c
│ │ ├── fm5807.h
│ │ ├── Kconfig
│ │ └── Makefile
│ ├── built-in.o
│ ├── Kconfig
│ ├── Makefile
│ ├── qn8006
│ │ ├── hw_qn8006.h
│ │ ├── Kconfig
│ │ ├── Makefile
│ │ ├── qn8006.c
│ │ ├── qncommon.h
│ │ ├── qnconfig.h
│ │ ├── qndriver.c
│ │ ├── qndriver.h
│ │ ├── qnfunc.c
│ │ ├── qnfunc.h
│ │ ├── qnio.c
│ │ ├── qnio.h
│ │ └── qnreg.h
│ └── qn8035
│ ├── built-in.o
│ ├── fm8035.c
│ ├── fm8035.h
│ ├── fm8035.o
│ ├── Kconfig
│ └── Makefile
├── 方法二(FmService写在系统服务)
│ ├── Android HAL的被调用流程 - 嵌入精灵 - 博客频道 - CSDN.NET.htm
│ ├── android 平添系统服务 - Android.htm
│ ├── Android 添加系统服务.htm
│ ├── bionic
│ │ └── libc
│ │ └── kernel
│ │ └── common
│ │ └── linux
│ │ └── Hw_fm.h
│ ├── FmRadio
│ │ └── FmRadio
│ │ ├── AndroidManifest.xml
│ │ ├── Android.mk
│ │ ├── bin
│ │ │ ├── aidl
│ │ │ │ └── com
│ │ │ │ └── rk
│ │ │ │ └── FmRadio
│ │ │ │ └── IfmService.aidl
│ │ │ └── AndroidManifest.xml
│ │ ├── gen
│ │ │ └── com
│ │ │ └── rk
│ │ │ └── FmRadio
│ │ │ ├── BuildConfig.java
│ │ │ ├── IfmService.java
│ │ │ └── R.java
│ │ ├── project.properties
│ │ ├── res
│ │ │ ├── drawable
│ │ │ │ ├── areabutton2.png
│ │ │ │ ├── areabutton.png
│ │ │ │ ├── area.xml
│ │ │ │ ├── autobutton2.png
│ │ │ │ ├── autobutton.png
│ │ │ │ ├── auto.xml
│ │ │ │ ├── background.png
│ │ │ │ ├── channelbackground.png
│ │ │ │ ├── channelbutton2.png
│ │ │ │ ├── channelbutton.png
│ │ │ │ ├── channel.xml
│ │ │ │ ├── homebutton2.png
│ │ │ │ ├── homebutton.png
│ │ │ │ ├── home.xml
│ │ │ │ ├── icon.png
│ │ │ │ ├── modebutton2.png
│ │ │ │ ├── modebutton.png
│ │ │ │ ├── mode.xml
│ │ │ │ ├── nextbutton2.png
│ │ │ │ ├── nextbutton.png
│ │ │ │ ├── next.xml
│ │ │ │ ├── notice.png
│ │ │ │ ├── prebutton2.png
│ │ │ │ ├── prebutton.png
│ │ │ │ ├── pre.xml
│ │ │ │ ├── record1.xml
│ │ │ │ ├── record2.xml
│ │ │ │ ├── record3.xml
│ │ │ │ ├── recordbutton2.png
│ │ │ │ ├── recordbutton.png
│ │ │ │ ├── record_play.png
│ │ │ │ ├── record_play_select.png
│ │ │ │ ├── record_start.png
│ │ │ │ ├── record_start_select.png
│ │ │ │ ├── record_stop.png
│ │ │ │ ├── record_stop_select.png
│ │ │ │ ├── recordtimebackground.png
│ │ │ │ ├── record.xml
│ │ │ │ ├── savebutton2.png
│ │ │ │ ├── savebutton.png
│ │ │ │ ├── save.xml
│ │ │ │ ├── seek1.png
│ │ │ │ ├── startbutton2.png
│ │ │ │ ├── startbutton.png
│ │ │ │ ├── start.xml
│ │ │ │ ├── stopbutton2.png
│ │ │ │ ├── stopbutton.png
│ │ │ │ ├── stop.xml
│ │ │ │ ├── thumb.png
│ │ │ │ ├── vol.png
│ │ │ │ ├── widget_background.png
│ │ │ │ ├── widget_open_light.png
│ │ │ │ ├── widget_open.png
│ │ │ │ ├── widget_radio_icon.png
│ │ │ │ ├── widget_turn_next.png
│ │ │ │ └── widget_turn_pre.png
│ │ │ ├── layout
│ │ │ │ ├── channeldialog.xml
│ │ │ │ ├── main_layout.xml
│ │ │ │ ├── recordlayout.xml
│ │ │ │ └── widget_layout.xml
│ │ │ ├── values
│ │ │ │ └── strings.xml
│ │ │ ├── values-zh-rCN
│ │ │ │ └── string.xml
│ │ │ ├── values-zh-rTW
│ │ │ │ └── strings.xml
│ │ │ └── xml
│ │ │ └── fm_widget_info.xml
│ │ └── src
│ │ └── com
│ │ └── rk
│ │ └── FmRadio
│ │ ├── ChannelAdapter.java
│ │ ├── DBhelper.java
│ │ ├── FmRadio.java
│ │ ├── FmRadioService.java
│ │ ├── FmRelate.java
│ │ ├── FmWidgetProvider.java
│ │ └── IfmService.aidl
│ ├── FmRadio.rar
│ ├── frameworks
│ │ └── base
│ │ ├── Android.mk
│ │ ├── core
│ │ │ └── java
│ │ │ └── android
│ │ │ ├── app
│ │ │ │ └── ContextImpl.java
│ │ │ ├── content
│ │ │ │ └── Context.java
│ │ │ └── os
│ │ │ ├── FmManager.java
│ │ │ └── IFmManager.aidl
│ │ └── services
│ │ ├── java
│ │ │ └── com
│ │ │ └── android
│ │ │ └── server
│ │ │ ├── fm
│ │ │ │ └── FmService.java
│ │ │ └── SystemServer.java
│ │ └── jni
│ │ ├── Android.mk
│ │ ├── com_android_server_fm_FmService.cpp
│ │ └── onload.cpp
│ ├── hardware
│ │ ├── libhardware
│ │ │ └── include
│ │ │ └── hardware
│ │ │ └── fm.h
│ │ └── rk29
│ │ └── fm
│ │ ├── Android.mk
│ │ ├── fm.c
│ │ └── primitive
│ │ ├── rk28_fm.c
│ │ └── rk28_fm.h
│ └── kernel
│ └── drvier
│ └── fm
│ ├── 5807p
│ │ ├── fm5807.c
│ │ ├── fm5807.h
│ │ ├── Kconfig
│ │ └── Makefile
│ ├── built-in.o
│ ├── Kconfig
│ ├── Makefile
│ ├── qn8006
│ │ ├── hw_qn8006.h
│ │ ├── Kconfig
│ │ ├── Makefile
│ │ ├── qn8006.c
│ │ ├── qncommon.h
│ │ ├── qnconfig.h
│ │ ├── qndriver.c
│ │ ├── qndriver.h
│ │ ├── qnfunc.c
│ │ ├── qnfunc.h
│ │ ├── qnio.c
│ │ ├── qnio.h
│ │ └── qnreg.h
│ └── qn8035
│ ├── built-in.o
│ ├── fm8035.c
│ ├── fm8035.h
│ ├── fm8035.o
│ ├── Kconfig
│ └── Makefile
└── 移植说明.txt
102 directories, 265 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论