android调频收音机代码,android 收音机 FM 驱动 hal层 框架层以及应用层代码
【實例簡介】
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寫在系統(tǒng)服務)
│?? ├── Android HAL的被調用流程 - 嵌入精靈 - 博客頻道 - CSDN.NET.htm
│?? ├── android 平添系統(tǒng)服務 - Android.htm
│?? ├── Android 添加系統(tǒng)服務.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
總結
以上是生活随笔為你收集整理的android调频收音机代码,android 收音机 FM 驱动 hal层 框架层以及应用层代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android组合动画还原,Androi
- 下一篇: html怎么随机放图片,HTML技术:如