最近有个客户,需要在他的机顶盒上支持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, 其他目录都不需要.修改步骤如下:
  1. 将自己使用的NDK生成独立的gcc的tool chain目录
  2. 进入mDNSPosix目录,修改Makefile,将CC/LD/修改为NDK Tool Chain的gcc/ld路径
  3. make os=linux
  4. 编译的时候可能会遇到编译错误,主要是Android的某些函数定义没有或者和POSIX Linux不一致, 修改掉即可
  5. 编译成功,则会生成一个服务器端的service, 我们不需要使用它,接下来我们需要修改源代码及makefile,使其生成库文件
  6. 所有确定我们的库文件提供4个接口:初始化mDNSService/结束mDNSService/PublishService/DePublishService
  7. 参考mDNSPosix/PosixDaemon.c文件,修改或者重新撰写,实现以上4个接口
  8. 修改mDNSPosix/PosixDaemon.c文件,取消main函数
  9. 修改Makefile, 将生成可执行文件修改为生成库文件
  10. 撰写测试程序,测试
 技术交流有兴趣请加:
 音视频技术交流群:308601278
 无线投屏技术交流群:582349005
 无线投屏官网: http://www.wirelessdisplay.cn/
 无线投屏DEMO下载: https://github.com/wirelessdisplay
 
 公司官网
 www.bijienetworks.com
 我司有成熟的视频会议/视频监控/视频调度/无线投屏盒子销售,也可做音视频相关产品和技术的定制化开发
 商务合作请至邮件marketing@bijienetworks.com

mDNS移植Android系统简介相关推荐

  1. android mdns开发实例,Android开发_mDNS移植Android系统方案介绍

    mDNS移植Android系统简介.最近有个客户,需要在他的机顶盒上支持Airplay, 其机顶盒系统是Android4.0.4, 此版本系统没有mDNS(需要Android4.1+)及MediaCo ...

  2. 【译】Android系统简介—— Activity

    续上一篇,继续介绍Android系统.上一篇: [译]Android系统简介 本文主要介绍构建Android应用的一些主要概念: Activity Activity是应用程序中一个单独的有UI的页面( ...

  3. Android系统简介(上、中、下):历史渊源

    上个月,看到微信的一系列文章,讲到Linux的鼻祖-李纳斯的传记<Just for Fun>, 其人神乎其能, 其人生过程非常有趣,值得每个程序员细细品味. 而实际上,对我而已,虽然做软件 ...

  4. Android系统简介

    一.Android系统的前世今生 目前全球智能手机最主要的两大阵营是Android和IOS,Android和IOS是移动操作系统的名称,它们背后的公司是谷歌和苹果,所以有时候也叫做谷歌系统和苹果系统. ...

  5. Android 系统简介

    简介 Android 是什么?   Android 是一款操作系统.   Android 是 IT 巨头 Google 公司推出的一款手机系统,是基于Linux内核(不包含 GNU 组件)的自由及开放 ...

  6. dlna移植android系统,基于Android的DLNA互动视频系统的设计与实现

    摘要: 随着人们对智能系统的要求越来越高,为了满足市场需求,相应的一系列Android应用也应运而生.其中,Android手机上的视频播放器便是最具有代表性的应用之一,然而Android自带的多媒体库 ...

  7. android mini2440,移植Android系统到mini2440

    我将最新Android系统的Linux内核2.6.29下载下来,针对我的G1手机进行了打补丁(nand flash.多点触摸支持),并编译出了G1的Linux内核,使用Fastboot引导入G1,实践 ...

  8. 【Arch】Android系统简介

    文章目录 0.Google IO 1.Android系统发展历程 2.Android系统特点 3.Android系统框架 0.Google IO 下面是Google IO的logo(Innovatio ...

  9. Android系统基础与常用布局

    Android学习笔记 一.Android系统简介 1.1 体系架构 采用了分层的架构,如下图 1.1.2 Linux内核 ​ Android 平台的基础是 Linux 内核.例如,Android R ...

最新文章

  1. Linkedin 工程师如何优化他们的 Java 代码
  2. [置顶] 自己动手实现OpenGL-OpenGL原来如此简单(三)
  3. python 基础之字典一
  4. 快速入门系列--MVC--03控制器和IOC应用
  5. 注意!FOB条款下,发货人还有这些费用要承担?
  6. 我常用的python函数(part2)--executemany方法
  7. 非安装版的PostgreSQL8.3.3的首次使用经历
  8. 443. 压缩字符串
  9. .xib .plist .pch
  10. JQuery和JavaScript常用方法的一些区别
  11. php float转int 元转分
  12. [解题报告]HDU 2019 数列有序!
  13. Visio2016卸载干净,以及同时安装Office2016和Visio2016的方法
  14. otsu阈值分割算法原理_Otsu算法
  15. 南阳oj入门题-阶乘因式分解(一)
  16. 历时54年,完成了1574架飞机生产,“天空女王”波音747正式停产 | 美通社头条...
  17. Java学习之路——接口
  18. 软考成绩什么时候出来?
  19. MobileNetv2-SSDlite训练自己的数据集(一)——配置安装caffe-ssd
  20. Linux下重启磁盘盘符会变,linux系统 重启盘符错乱问题

热门文章

  1. 【小坤哥】杂谈 - 梦想总是要有的,万一实现了呢
  2. 传感器-光感和指南针
  3. FFmpeg Filter简单使用
  4. light动名词_初中英语语法学习:动名词专项训练
  5. 查看服务器会话链接信息,配置远程桌面服务会话的远程控制
  6. 凯利公式在期货交易中杠杆比例控制上的应用举例及组合投资策略探讨
  7. 传李国宝与美国监管当局就道琼斯案和解
  8. 计算机在科技英语翻译中起的作用,四字词语在科技英语翻译中的应用解析
  9. Unity3D ——游戏开炮,开枪屏幕震动效果实现
  10. 生日相同c语言结构体,生日相同(结构体)