作为即时通讯(IM、消息推送等应用场景)相关技术的开发者人员来说,似乎了解跨专业的通信技术(这是大学通信工程专业类学生的学习内容),有点过于深入和底层了,因为一般来说熟练掌握逻辑层的TCP\IP相关协议、网络编程相关的应用技术就差不多能胜任这方面的本职工作了。

没错,确实是这样。但在开发IM、推送这类应用系统时,尤其在移动网络下,各种弱网问题,让人非常痛苦。

典型的弱网问题,比如:

1)频繁掉线;
    2)丢包严重;
    3)网络抖动;
    4)网络延迟;
    ........

那么,针对以上现象,怎么才能有底气的跟老板、客户、产品经理地解释以下问题?

1)导致这些现象的根本原因到底是什么?
    2)怎么跟老板解释,要搞定在高铁上用好音视频聊天功能很困难?
    3)怎么跟客户解释P2P在3G、4G甚至5G网络下的成功率问题?
    4)怎么向客户说明,商场或人多场合下,明明信号很好,但你的APP确用不了?
    .......

你说这些都是网络问题,APP代码无能为力。那么,你倒是讲讲到底是什么样的网络问题?能把人讲信服了,就可以甩锅给网络,不然只能是APP代码背锅了。现实吧!

所以,我们还是老老实实花点功夫来研究研究通信技术吧(通信技术直面的是网络通信物理层),至少遇到问题,不说给别人,至少给自已找到一个说的过去的解释。这才是一个优秀程序员的修养!

网上能找到的通信技术资料都太过专业或太不专业,要么都是搞网络工程方面的内行人编写的(内容专业但很枯燥难懂),要么就是外行的IT开发人员写的(很少见,且价值不大,因为不够专业,所以内容并不准确,参考价值很有限)。即时通讯聊天软件app开发可以加蔚可云的v:weikeyun24咨询

既能让外行的普通程序员看懂,还能准确地讲明白通信技术知识,这样的资料简直比找金矿还难。因为普通程序员能接触到的网络编程、网络通信方面的资料多针对数据通信的逻辑层(比如:tcpip、socket等知识范畴),而通信技术涉及的是数据通信的物理层(交换机、路由器、天线、网络制式等),某种意义上来说,这是完全不同的技术方向。

好消息是,经过长时间的资料搜集,终于有了本系列文章,希望能给你带来帮助。

移动通信早已深入人们的日常生活,对于IM开发者或者移动端程序员来说,自已和兄弟们辛辛苦苦开发的产品,经常被用户、测试、产品经理、老板等各种喷,最常见的就是:“为什么我在公司里,APP用的好好的,回到家就说网络不行了?”、“我在路上还是好的,怎么一回来就报通信超时?到底是代码有bug还是怎么回事?”

针对这类问题的上报,每次都要费很大的劲,查找原因、进行解释,但往往因对移动通信技术的了解太浅,找到的理由就比较牵强,别说用来说服用户,就连我们自已都有点不信。

实际上,关于手机信号的问题真的不是大家想象得那么简单。所以本文正好收集整理了这一块的通信技术知识,一如既往的力求通俗易懂,希望对你有用。

什么叫手机信号差?

对于手机信号差,大家最直观的感受通常是,手机上网速度慢,打电话会时断时续,听不清对方的声音。

实际上,手机信号的质量,是可以有参照基准的。

首先第一个基准,就是信号格数。当手机上显示的信号格数只剩下一格或二格时,人们就会判断为手机信号差。

但是,这种判断方式不太准确。因为手机信号格数并不是准确而一致的判断标准。手机的信号格数不是按照统一的标准计算出来的,它是手机厂商自己定义的,它只与手机厂商使用的算法有关。所以,不同品牌的手机在相同的环境下显示的信号格数不一定一致。它并不能真实反映你手机的信号强度。

不过,幸运的是,有一种方法可以发现手机的真实信号强度。比如,苹果手机在拨号界面输入*3001#12345#* —>拨号 —>在屏幕左上角显示信号强度(单位为dBm)。

安卓手机可通过系统设置—> 关于手机 —> 状态消息 —>信号强度查看。安卓手机还可以在拨号界面,输入 *#*#4636#*#* ,也可以查看(亲测小米手机可以)。

现在就拿起你的手机试一试,你会看到一个负值,后面的单位为dBm。这个数字代表什么意思呢?通常它的范围在 -50 dBm 到 -120 dBm之间。-50 dBm一定是信号满格,代表信号很好。而如果是-120 dBm,你的手机或者没有信号,或者只有一格信号。

大致对应关系如下:

  • 1)-50 到 -79 dBm,4到5格信号,表明信号非常好;
  • 2)-80 到 -89 dBm,3到4格信号,表明信号良好;
  • 3)-90 到 -99 dBm,2到3格信号,表明信号一般;
  • 4)-100 到 -109 dBm,1到2格信号,表明信号较差;
  • 5)-110 到 -120 dBm,0到1格信号,表明信号非常差。

细心一点,你还会看到,安卓和苹果手机的信号格数与信号强度的对应关系是不一样的。甚至,苹果不同IOS版本的信号格数与信号强度的对应关系也不一样。

好了,现在您理解了到底什么叫信号差。

为什么你家里的信号差?

与收音机、卫星、WiFi等一样,2G/3G/4G信号都是通过无线电波传送的,这个无处不在的无线电波其实没有你想象的那么强大,它们脆弱而敏感。

它不但易受干扰,而且信号传播时衰减极快,幸好背后有一群通信工程师随时都在呵护着这些脆弱而且神秘的家伙。

其中,建筑物阻挡是手机信号的最大杀手,也是你家里手机信号差的根本原因。

这个建筑物阻挡有多狠呢?这得看你家的建筑结构和材料。

现在,我来罗列一下扼杀手机信号的九大杀手…

IM即时通讯开发时手机信号为什么会差相关推荐

  1. iOS和Android即时通讯开发时后台实时消息推送的原理和区别

    iOS和Android上的实时消息推送差异很大,往小了说是技术实现的差异,往大了说是系统实现理念的不同.实时消息推送在移动端互联网时代很平常,也很重要,它的存在让智能终端真正成为全时信息传播的工具.本 ...

  2. 即时通讯开发时Https的安全性原理

    那么什么是HTTPS?我们看维基百科给HTTPS的定义:HTTPS(Hypertext Transfer Protocol Secure)是一种通过计算机网络进行安全通信的传输协议.HTTPS经由HT ...

  3. 即时通讯开发时移动端实时音视频直播技术之处理

    视频或者音频完成采集之后得到原始数据,为了增强一些现场效果或者加上一些额外的效果,我们一般会在将其编码压缩前进行处理,比如打上时间戳或者公司 Logo 的水印,祛斑美颜和声音混淆等处理.在主播和观众连 ...

  4. Android 即时通讯开发小结(二)

    <Android 即时通讯开发小结>基于IM Andriod 开发的各种常见问题,结合网易云信即时通讯技术的实践,对 IM 开发做一个全面的总结. 相关推荐阅读:. Android即时通讯 ...

  5. im即时通讯开发之后台应用保活、消息推送的噩梦

    Android P的最后一个开发者预览版(即DP5)已如期发布于2018年7月26日,根据上面这张发布路线图,相信Android P的正式版将很快到来.对于Andriod开发者来说,不管Andriod ...

  6. im即时通讯开发:进程被杀底层原理、APP应对被杀技巧

    本文的技术原理讲解透彻.系统源码分享到位.样例代码也很有参考意义,希望能对有同样兴趣爱好的Android开发者.IM开发者.推送系统开发者等,带来对于Android进程保活技术的深入理解. 一直以来, ...

  7. 盘点im即时通讯开发中Android后台保活方案

    对于IM应用和消息推送服务的开发者来说,在Android机型上的后台保活是个相当头疼的问题. 老板一句:"为什么微信.QQ能收到消息,而你写的APP却不行?",直接让人崩溃,话说老 ...

  8. 即时通讯开发如何构建一套移动端消息推送系统

    消息推送作为移动端 APP 运营中的一项关键技术,已经被越来越广泛的运用. 本文追溯了推送技术的发展历史,剖析了其核心原理,并对推送服务的关键技术进行深入剖析,围绕消息推送时产生的服务不稳定性,消息丢 ...

  9. Android 即时通讯开发小结(一)

    本文将基于 IM Andriod 开发的各种常见问题,结合网易云信即时通讯技术的实践,对 IM 开发做一个全面的总结. 客户端架构 作为一个 IM 软件,最重要的一个特性就是保证消息的达到率和实时性. ...

最新文章

  1. mp3 音频 音乐 tag ID3 ID3V1 ID3V2 标签 读取信息 获得图片 jpeg bmp 图片转换(上)
  2. MYSQL注入天书之前言
  3. vue animation css实现左右折叠面板
  4. CImage类的用法(转帖)
  5. 基础知识:Mac上更改“字体”窗口中的字体大小
  6. A.I. Wiki 人工智能
  7. hive 下载和导入数据 hive -e
  8. 学校家教服务管理系统mysql_数据库课程设计报告-学校家教服务管理系统.doc
  9. 飞控算法-姿态解算之互补滤波
  10. linux双系统默认进入win10,win10 linux 双系统 默认win10启动
  11. 批处理创建隐秘的加密文件夹,是男人就把秘密藏起来
  12. 2020年遥感类期刊SCI期刊影响因子排名—遥感, 地理, 水文类
  13. fx5u模拟量如何读取_三菱fx5u模拟量输入接线
  14. [附源码]java毕业设计归元种子销售管理系统
  15. React 组件封装之 Tree 树形控件
  16. 浅谈面试与简历——总结于尚硅谷视频《程序员面试指南》
  17. xcode 断点不现实栈_真正成为“全栈”是不现实的,但您应该尝试
  18. 3.18 使用橡皮擦工具制作图像合成效果 [原创Ps教程]
  19. 关于校招和嵌入式软开的学习路线的总结和一些思考
  20. 接入华为联运 / 小米联运 怎么测?

热门文章

  1. 八进制转10进制--巧妙方法
  2. Linux系统时间同步北京时间
  3. 墨者靶场- mysql注入
  4. python使用zxing解析二维码
  5. android 9 手机硬件性能,安卓手机性能排行:小米11垫底,一加9 Pro第四,第一名意料之外...
  6. npm安装 less
  7. 专业Netflix视频下载器NoteBurner Netflix Video Downloader Mac
  8. Java语言基础Day14(内部类、类作为成员变量类型、接口作为成员变量类型、接口作为方法的参数或返回值、红包案例、JDK9的JShell、编译器的两点优化)
  9. Scrapy 框架介绍 [Scrapy 框架概述][Scrapy 框架的特点][Scrapy 框架的架构概述]
  10. Excel如何简单快速在行上输入ABC序列?