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写在系统服务)
│ ├── 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
android调频收音机代码,android 收音机 FM 驱动 hal层 框架层以及应用层代码相关推荐
- Android 自动搜索频道,Android自定义收音机搜台控件RadioRulerView
前言:像这类的自定义控件有非常多的开源项目,但还是没有找到我项目想要的,所以简单实现了一个,下面简单讲讲实现原理. 效果图: 实现思路: 首先画固定背景尺子,而实现这个则要计算刻度线的宽度.刻度线间的 ...
- Android架构实例分析之编写hello驱动的HAL层代码
Android架构实例分析之编写hello驱动的HAL层代码 摘要: HAL层中文名称又叫硬件抽象层,可以理解我Linux驱动的应用层.本文实现了一个简单的hello HAL的代码,衔接hello驱动 ...
- java手机电池充电代码,android电池管理系统从上层的java到底层驱动的调用(转载)...
1.概述 随着移动智能设备的快速发屏,电池的续航能力在很大情况下诱导了大众消费者的购买选择,android系统对电源管理的合理与否直接影响到电池的续航能力,而电池系统作为其中的一部分,主要用于对电池状 ...
- Android开发收音机功能,Android实现的网络收音机示例利用Vitamio组件
Vitamio组件异常强大,请自行百度,android开源的媒体处理框架,无所不能 本项目需要Vitamio项目作为引用项目(Android Library) xmlns:tools="ht ...
- android tab 悬停效果代码,Android 仿腾讯应用宝 之 Toolbar +Scroolview +tab滑动悬停效果...
Android 仿腾讯应用宝 之 Toolbar +Scroolview +tab滑动悬停效果 来源:互联网 作者:佚名 时间:2015-02-10 15:36 Android 仿腾讯应用宝 之 To ...
- 《Android深度探索(卷1):HAL与驱动开发》——6.4节使用多种方式测试Linux驱动...
本节书摘来自异步社区<Android深度探索(卷1):HAL与驱动开发>一书中的第6章,第6.4节使用多种方式测试Linux驱动,作者李宁,更多章节内容可以访问云栖社区"异步社区 ...
- android 电容屏(二):驱动调试之基本概念篇
关键词:android 电容屏 tp 工作队列 中断 多点触摸协议 平台信息: 内核:linux2.6/linux3.0 系统:android/android4.0 平台:S5PV310(sams ...
- 新书出版:《Android深度探索(卷1):HAL与驱动开发》
<Android深度探索(卷1):HAL与驱动开发> [1]亚马逊 [2]当当网 [3]京东商城 [4]互动网 [5]淘宝网 [6]豆瓣网 < Android深度探索(卷1):HAL ...
- Android笔记 一Android基础知识 摘自第一行代码Android
一Android常见版本号 代号 及市场占有率 版本号 系统代号 API 市场占有率 2.2 Froyo 8 1.2% 2.3.3 – 2.3.7 Gingerbread 10 19.0% 3.2 H ...
最新文章
- 国内首个手机AR实景驾驶导航上线,还能识别车辆行人,搜狗地图出品
- 安装两个硬盘时应如何跳线?
- 工业用微型计算机(9)-指令系统(6)
- VTK:几何对象之TriangleStrip
- Django笔记(1)
- python 1+2+3+4+5+6+7+8+9累加求和_求1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+...+N! N阶阶乘求和算法 JAVA C Python...
- DiQuick Web UI 框架 V1.3.2 版本更新
- [转载] Python性能优化技巧总结
- vc 模拟按键 模拟windows消息方式_PC微信电脑端WeChat点击脚本(按键精灵)2020小工具...
- 极客大学架构师训练营 大数据架构、Spark、Flink、机器学习、PageRank算法、神经网络 第13次作业
- Unity之读取身份证信息
- 在网页输出10的阶乘.php,VB 用for循环语句编写程序,计算和输出10的阶乘
- 2017年工作总结--初出茅庐
- Maya无法创建新模型解决方案1
- 一个简单的C语言代码段,逻辑题
- 04_UUID128修改与广播名
- Python对千分位的处理
- 第一次读完《百年孤独》是种什么体验
- 计算机ppt要求,计算机信息化培训总要求.ppt
- SQL语言——DML与DQL
热门文章
- 【机器学习PAI实践七】文本分析算法实现新闻自动分类
- 饿了么多活利器:实时双向复制工具(DRC)
- Understanding G1 GC Logs--转载
- 1号店11.11:从应用架构落地点谈高可用高并发高性能--转载
- 【科技金融】互金风控大数据盘点
- 《Credit Risk Scorecard》第四章:Data Review and Project Parameters
- Vue 里的$如何理解
- 英伟达宣布全面支持ARM高性能计算,三周打造全球排名第22超算
- ElasticSearch 6.0.0 IK分词 Kibana 6.0.0
- 区块链开源实现fabric快速部署及CLI体验