最近有个客户,需要在他的机顶盒上支持Airplay, 其机顶盒系统是Android4.0.4, 此版本系统没有mDNS(需要Android4.1+)及MediaCodec接口 (需要Android4.1.2+), 所以我们需要移植mDNS及使用软解码来实现. 此文介绍mDNS的移植.
mDNS我们选型使用Apple的开源软件mDNSResponder, 下载地址为
https://opensource.apple.com/tarballs/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目录,修改Makefi

本文介绍了如何在Android系统上移植mDNS服务。首先,通过NDK创建GCC工具链目录,然后修改mDNSPosix的Makefile以适应Android的编译环境。在解决编译错误后,编译生成服务端的库文件。接着,定义四个关键接口:初始化、结束、发布和取消发布服务。通过修改和调整源代码,去除main函数并改变Makefile配置以生成库文件。最后,编写测试程序验证mDNS功能。
最低0.47元/天 解锁文章
4379





