项目简介
这是一个在Android平台上运行GNU Radio的开发环境,提供实时数据流处理框架,主要用于软件定义无线电系统(SDR)。该项目支持最新的GNU Radio版本(v3.8),可在Android设备上高效进行信号处理。
项目的主要特性和功能
- 多架构支持:支持32位和64位ARM架构(
armeabi-v7a
和arm64-v8a
)。 - 硬件前端支持:支持RTL - SDR、HackRF、Ettus B2XX等流行的SDR硬件。
- Android硬件接口:通过gr - grand模块支持Android设备的麦克风、扬声器、加速度计等硬件。
- 无需Root:无需对设备进行Root操作。
- C++信号处理:所有信号处理都在C++领域完成。
- Java交互:通过Control Port、PMTs、ZeroMQ、TCP/UDP等方式与GNU Radio流图进行交互。
- 自定义缓冲区:使用Android共享内存实现自定义GNU Radio双映射环形缓冲区。
- SIMD加速:通过VOLK库进行SIMD加速,并提供Android性能分析工具。
- OpenCL支持:通过gr - clenabled模块支持OpenCL加速。
- 性能分析:提供Android应用程序来分析GNU Radio运行时、VOLK和OpenCL的性能。
- 示例应用:包括WLAN接收器和FM接收器等示例应用程序。
安装使用步骤
构建工具链
- 安装Docker:确保Docker已安装并配置,容器需要约18Gb的空间。
- 检出存储库:
shell cd gnuradio-android/docker
- 构建Docker容器:
shell docker build -t gnuradio-android .
- 运行Docker容器:
shell docker run -it --privileged -v /dev/bus/usb:/dev/bus/usb --net=host --env="DISPLAY" --volume="$HOME/.Xauthority:/home/android/.Xauthority:rw" gnuradio-android
- 启动Android Studio:
shell ~/src/android-studio/bin/studio.sh
- 设置手机为开发者模式:按照Android开发者文档的指示操作。
- 打开示例项目:例如FM接收器项目位于
~/src/android-fm
,在Android Studio中打开并测试工具链。
使用工具链
- 设置架构:根据目标架构选择合适的构建脚本(如
build.sh
或build_aarch64.sh
),并设置TOOL_CHAIN_ROOT
变量指向Android NDK。 - 链接工具链:在
CMakeLists.txt
和app/build.gradle
中设置工具链路径。 - SIMD加速:通过VOLK库进行SIMD加速,运行性能分析应用生成配置文件。
- GPU加速:支持OpenCL加速,需将相关库文件从手机复制到工具链目录。
- SDR驱动:支持RTL - SDR、HackRF、Ettus B2XX等设备,通过Android的
UsbManager
进行初始化。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】