欢迎转载,转载请注明:http://blog.csdn.net/zhgxhuaa

1.   前言

1.1.  行业背景简单介绍

当下,智能家居与智能穿戴设备无疑是继智能手机后两个最热门的方向。而智能家居在占领用户“客厅”的行动中。电视无疑占领着一个十分重要的位置。

近期两年,智能电视(包含盒子),发展的如火如荼,引发了一波电视换机潮。如今购买电视,不是智能电视,甚至都不好意思拿出来说。

然而,国内移动应用市场激战正酣的三巨头(百度、360、腾讯)在电视应用分发上都鲜有举动,市面上仅仅有一些小公司在做,当中做的还算不错的有:奇珀市场、爱家电视应用市场。

直到在今年(2014年)4月360推出了“360电视助手”以及”360电视助手手机端”,电视市场逐渐開始改变。

1.2.  一次糟糕的个人体验

讲一个小故事:一张SD卡引发的血案。

背景:

在去年的时候,我购买了2台创维的Android智能电视和一台大麦盒子。拿到电视以后。我仅仅有一个非常easy的想法:我不想花钱看电视,我要在电视上面看优酷、看爱奇艺、看腾讯视频。

现实情况是。电视厂商为了推广自己的付费视频。在电视机自带的电子市场中,根本没有这些应用。

看到这里有些朋友会说,你找张SD卡把应用拷贝进去,然后依照不即可了?没错。但是。我木有SD卡呀……于是開始了一段崎岖的折腾之路。

我的坎坷看片经历:

1、  打开电视浏览器搜索优酷下载。提示”没有SD卡下载不了”

2、  安装电视市场中的QQ,远程发生优酷到电视,提示”没有SD卡,无法接收”

3、  于是乎在绞尽脑汁之后。在QQ的”很多其它“里面我找到了”应用宝”。这里真要庆幸哥们是做开发的啊。否则预计打死都找不到这里。

此过程全然通过鼠标进行,遥控器操作不了。

4、  在H5的应用宝中搜索”豌豆荚“,安装后。在里面搜索优酷,提示”没有SD卡下载不了”;果断卸载“豌豆荚”。安装“百度手机助手”。提示”没有SD卡下载不了”……到这里哥们已经接近崩溃了。

5、  最后在H5的应用宝中下载应用宝client,发现没有SD卡也能够下载(这里说一下应用宝在没有SD卡时会先下载到/data/文件夹)。于是乎感叹“应用宝真好。”。

6、  带着从绝望中刚恢复过来的喜悦,在应用宝中搜索优酷,下载安装完毕、打开。

尼玛。是横屏的有木有?!原来手机市场里面一般都仅仅有手机和pad的应用,木有TV版本号。不仅屏幕是横的,并且不支持遥控器。

那究竟要怎么办?我仅仅想看个片而已呀,My God !!。

7、  幸亏哥们练过!我想到了没有SD卡。我可不能够挂载一张虚拟的SD卡到电视上?于是開始了新一轮验证。

8、  在应用宝中,下载“ES文件浏览器”。然后在个人电脑中注冊申请“百度云”账号,在“ES文件浏览器”的设置中与百度云绑定。然后在“ES文件浏览器”中挂载虚拟存储。

9、 在电脑上搜索TV版的优酷、爱奇艺等,将这些APK复制到百度云里面去。然后在电视机上打开“ES文件浏览器”。找到挂载的虚拟存储位置,点击APK安装。最终成功安装了!当看到电视上出现优酷的画面是。哥们都要泪奔了,有木有……

整个过程下来。浪费了哥们大半个下午的时间。

或许有些人会说,怎么不通过电脑USB连接。然后安装。

可是USB须要驱动呀…..并且对小白用户的话,是根本不可能通过USB安装应用的。

1.3.  360电视助手体验

前面说过,我购买了2台电视和一台盒子。在购买盒子的时候,我无意中发现了“360电视助手”,于是乎我在前面的体验一下子简单多了:扫描局域网、建立连接,然后在手机端选择自己喜欢的应用安装。发现盒子就已经给我安装好了。然后在手机上选择一个电影打开播放,此时电视也開始播放了…..

整个过程下来,不超过5分钟。

1.4.  360电视助手概览

首先看一下360电视助手TV端的界面:

以下是TV端首页截图:

以下是手机端的截图:

1.5.  360电视助手的创新点

那这款360电视助手与其它的手机助手或者电视应用市场相比有什么特别之处呢?

一般的电视电视版助手有两大功能:一是帮助用户下载和更新应用。二是做视频、软件、应用分发。360电视助手具有例如以下一些特点:

1、  在同一个局域网环境下。能够通过手机端直接安装TV端到电视上,而不须要复制到SD卡或者U盘上。

2、  在TV端安装后会作为Server与手机端进行局域网通信,手机端能够控制TV端进行应用安装、视频播放、甚至玩游戏等。

3、  TV端集成暂时root能力。在通过手机端操作“安装到电视”时,电视上会静默安装好该应用。

4、  提供遥控器功能。能够通过手机遥控电视。

2.   技术实现分析

本文主要对360电视助手中的两个核心技术点进行分析研究:

A.        怎样通过局域网(Wifi)环境。直接安装应用到电视端。

B.        在电视上安装电视助手(TV端)后。手机端怎样与TV端进行局域网内通信。

2.1.  局域网应用安装

局域网内直接安装apk到TV端是通过我们万能的adb实现的。

关于adb的使用方法这里就不详细介绍了,不熟悉的读者能够自行查阅Android官方文档,或者在cmd环境中运行“adb”命令查看。这里仅仅介绍电视助手的原理。

电视助手的实现原理例如以下:

1.         首先确保电视端中“设置 ->开发人员选项->开启开发人员选项”处于开启状态,这个在非常多电视中默认是开启的。而且在没有开启的电视中,360会引导用户开启。

2.         在手机端通过“ping”命令扫描探測局域网内可用的ip,以下是反编译之后的代码:

关于“ping”命令的使用方法例如以下:

3.         通过“cat /system/build.prop | grep \"product\"”命令获取TV端的产品名称,反编译代码例如以下:

4.         在获得到TV端的名称后。会提示是否要连接到TV端。

此时,通过“adb connect <host>[:<port>]”命令连接电视,以下是反编译后的代码:

5.         在连接到TV端,通过下“cat/system/build.prop”命令获取TV端的相关信息,以下是反编译后的代码:

6.         在连接到TV端后,就能够通过“adb install –r ”命令进行局域网内远程安装了,反编译代码例如以下:

在运行“adb install”命令后,依据运行结果中是否包括“Success”推断是否成功安装,再不是“Success”的情况会返回详细的错误原因。能够进行解析。

7.         在运行结束。断开连接时,能够运行“adb disconnect”命令,反编译代码例如以下:

8.         在TV端安装后,手机端能够通过”am start“命令唤起TV端,反编译代码例如以下:

好了,到这里360电视助手client是怎样在wifi环境下,直接安装到电视端的就都明确了。

2.2.  搭建局域网C/S通信

在电视中安装了TV端以后,TV端会作为一个Server与手机端(Client)形成一个C/S结构,接下来的事情就是Client与Server直接的网络通信了。

这里之所以採用C/S结构进行通信,个人认为原因有两点:

A.        adb connect建立的连接不稳定。随时可能会断开,并且也无法感知连接是否可用等连接状态。

B.        有些操作通过adb是完毕不了的,必须通过C/S的方式,将”指令“发生到Server端(电视),在Server端运行完毕后,再将结果返回到手机。举个简单的样例,比方说我想要获取电视上已安装应用列表等。

360电视助手中,C/S接口。用的是12333port,也就是说TV端会以socket监听12333port。这从手机端反编译的代码也能够看出:

在手机端将命令以http请求的方式发送到TV端。手机端与TV端的数据以jeson的形式进行传输,以下是反编译代码:

好了,到这里360电视助手是怎样局域网下进行通信的,就清楚了。

在360电视助手中。除了上面介绍的局域网通信方式外,也有利用普通无线网络进行push的方式。先将手机端的操作指令发送的360的server,再从serverpush到目标端进行响应。这些不是本文想要分析的重点,不再分析。

adb的那点小事——360电视助手实现研究相关推荐

  1. 从一个ADB漏洞,窥到周鸿祎的电视野心

    前些天360公司发布了电视助手的新版本,为此还专门召开了一个发布会,还特别找了一些半裸的帅哥以及美女出来秀了一下身材. 对于这次的发布会来说,真正让人惊讶的并不是电视助手这个产品的功能,而是安装它的方 ...

  2. adb连接手机时,端口被360手机助手占用,无法连接的问题

    一.问题描述: adb连接手机时,端口被占用,无法连接,如下图所示: adb server version (31) doesn't match this client (40); killing.. ...

  3. [奇兔教程] 关闭360手机助手服务,解决adb冲突问题

    转:http://bbs.7to.cn/thread-25825-1-1.html 如果你的电脑上安装了360,就自带了360手机助手,360手机助手是默认自启的,即手机连接上之后就会启动.这时如果你 ...

  4. 360手机助手显示手机型号错误

    今天客户反馈,在使用360手机助手的时候,显示的手机型号有时候错误,比如你用的华为的手机,而显示的是THC的手机型号,需要我们修改,我先分析了一下,根本不可能啊,因为我认为显示的型号应该是读系统的属性 ...

  5. 连接不成功,360手机助手

    开启360手机助手,连接不成功. CMD下:adb shell出现提示: * daemon not running. starting it now on port 5037 * 百度解决:参考 ht ...

  6. 揭秘360手机助手未经用户同意,自动开启辅助功能的“黑科技”

    转载自:https://www.freebuf.com/articles/terminal/121253.html 0×00 概述 Android为正常使用手机有障碍的用户提供了辅助功能,即Acces ...

  7. 猜想豌豆夹,360手机助手,腾讯手机管家,小米盒子传屏等工具开发思路

    1.豌豆夹,360手机助手,91等连接Android手机的时候,这些工具都是服务器端,手机是客户端,都是采用TCP/IP的通讯方式. 其中都是监听5037端口的独占模式,因此一台PC不可能使用多个an ...

  8. 360健康助手文件存储位置 获取图片

    最近发现360健康助手的背景图都不错,想留下来当背景,故找一找-- 文件存储位置 %AppData%\Roaming\360safe\DesktopRest\eye bk_image目录中是背景图片, ...

  9. 360手机助手游戏怎么实名认证 360手机助手下载的游戏怎么关了悬浮窗

    360手机助手除了我们日常的传输文件,分享资源之外,上面还是有海量的游戏资源供我们下载的,而且平台还提供360币可以进行充值,不过很多小伙伴在下载游戏之后不知道在哪实名认证,哪里可以改实名认证?下面一 ...

最新文章

  1. uber_Uber是如何制成的
  2. VCSA 6.5 HA配置 之三 :准备工作
  3. 从view 得到图片
  4. 移动路线(信息学奥赛一本通-T1194)
  5. SpringCloud+Redis
  6. 心情有些复杂,不知道还能做多久,未来也不知道该如何选择
  7. OSChina 周二乱弹 —— 加班的代码不要枉费了我的童子功
  8. 设计模式之行为型备忘录模式
  9. CFileDialog多选文件的最大数量
  10. 大表join大表_阿里开发规范:超过三张表,禁止join骚操作
  11. Keil(MDK)4升级到Keil(MDK)5
  12. 减持奈飞增持京东健康,“贝莱德们”为何开始偏爱中国企业?
  13. 高通WLAN框架学习(27)-- Types of regulatory 和WCNSS_qcom_cfg.ini配置参数
  14. 刘彬20000词汇01
  15. 微软最爽命令行工具将成 Win11 默认终端
  16. 哔哩哔哩2020校园招聘前端笔试题(卷一)
  17. C#获取字符串的长度
  18. vc驿站视频教程笔记2 ansi 和 unicode
  19. 高科技引领时尚 甘肃天星独创全球共振迷你音响
  20. 手机远程管理服务器软件,远程控制软件 手机远程管理服务器

热门文章

  1. 淘客基地助手2.1 18.2.13内测版本公告
  2. sanic学习踩坑记录:第一坑——sanic_jinja2应用报错ModuleNotFoundError: No module named ‘AppName‘
  3. Excel卡方检验,chisq.test()对数据排列有要求
  4. IDEA无法识别项目中的Java类
  5. 记一次snmp远程连接失败的记录
  6. 锚杆拉拔试验弹性模量计算_锚杆拉拔试验方法
  7. 学人工智能一次竞赛都不打?闹呢?
  8. 利用.NET做“电子书阅读器”原来这么简单(其实你也可以做出金山词霸)
  9. 企业申请e-mark认证要怎么做?
  10. 达梦数据库培训学习学习心得