android mdns开发实例,Android开发
android mdns开发实例,Android开发
mDNS移植Android系统简介。最近有个客户,需要在他的机顶盒上支持Airplay, 其机顶盒系统是Android4.0.4, 此版本系统没有mDNS(需要Android4.1+)及MediaCodec接口 (需要Android4.1.2+), 所以我们需要移植mDNS及使用软解码来实现. 此文介绍mDNS的移植。
mDNS我们选型使用Apple的开源软件mDNSResponder, 下载地址为/
使用mDNSResponder, 需要解决两个问题: 1个是解决Android移植问题,另外一个是解决CS问题,我们要求是以库文件的方式提供给Airplay协议栈使用.
mDNSResponder解压之后, 会出现如下文件夹
APPLE_LICENSE Clients Makefile mDNSCore mDNSMacOS9 mDNSMacOSX mDNSPosix mDNSShared mDNSVxWorks mDNSWindows README.txt
我们实际只需要使用mDNSCore/mDNSPosix/mDNSShared, 其他目录都不需要.修改步骤如下:
将自己使用的NDK生成独立的gcc的tool chain目录 进入mDNSPosix目录,修改Makefile,将CC/LD/修改为NDK Tool Chain的gcc/ld路径make os=linux编译的时候可能会遇到编译错误,主要是Android的某些函数定义没有或者和POSIX Linux不一致, 修改掉即可编译成功,则会生成一个服务器端的service, 我们不需要使用它,接下来我们需要修改源代码及makefile,使其生成库文件所有确定我们的库文件提供4个接口:初始化mDNSService/结束mDNSService/PublishService/DePublishService参考mDNSPosix/PosixDaemon.c文件,修改或者重新撰写,实现以上4个接口修改mDNSPosix/PosixDaemon.c文件,取消main函数修改Makefile, 将生成可执行文件修改为生成库文件撰写测试程序,测试。
- 怎么开展性能测试
- MindSpore实现语音指令识别(迁移tf入门教程)
- platform
- vmware虚拟机屏幕如何适应窗口全屏
- linux下生成dump文件方法及设置
- 服务器iis短文件名漏洞,IIS短文件名漏洞分析及一个实例
- 电脑强制删除顽固文件
- 梯度下降法和最速下降法区别
- 声音的数字化表示
- ABAP 设置ALV复选框
- Linux中EXT3与EXT4的区别!
- 记录一次前途迷茫的选择
- R型聚类分析
- C++实现matlab中的interp1和interp2插值
- 基于离散小波变换 (DWT)的图像信息隐藏算法
- 生成网站与发布网站的区别
- https 双向认证开发实践
- supersqli(SQL注入流程及常用SQL语句)
- 渗透常用SQL注入语句大全
- 主流开发语言特点