• [技术干货] Android和IOS两个系统手机APP功能测试
      功能测试  每一个功能是否能正常操作。  每个功能响应出来的效果是否符合预期结果。  功能点击后返回的值是否正确。  如果app存在互动的功能,是否可以同步,比如微信朋友圈点赞的功能,群管理员管理成员的功能,视频会议中的互动功能等等。  在进行某一个功能的时候,断网重连后会出现什么样的情况。  某一功能进行时,断网不重连会出现什么情况。  应用的前后台切换  APP切换到后台,再打开APP,检查是否停留在上一次操作界面,检查功能是否正常、程序是否崩溃、数据是否更新。  手机锁屏解锁后进入APP,检查是否停留在上一次操作界面,检查功能是否正常、程序是否崩溃、数据是否更新。  APP使用过程中被电话中断,再回到APP,检查是否停留在上一次操作界面,检查功能是否正常、数据是否更新。  Kill掉APP后,再打开APP,检查功能是否正常、数据是否更新、用户登录状态是否正常。  存在必须处理的提示框,切换到后台,再切换到前台,检查提示框是否存在。  APP使用过程中,出现断电/意外关机重启等异常情况,再次打开APP,检查APP功能是否正常。  APP切换到后台,再回到app,检查功能及应用状态是否正常,IOS4和IOS5的版本的处理机制有的不一样。  对于多次进行后台程序切换,软件会不会被Kill。
  • [技术干货] Android和IOS两个系统的手机APP安装测试
      安装测试  软件在不同操作系统(Android系统和IOS系统)上是否正常安装。  软件在不同版本的操作系统(如Android 5.0/Android 6.0/Android 7.0/Android8.0和iOS 9.0/iOS 10.0/iOS 11.0/iOS 12.0)上是否正常安装。  软件在不同的品牌手机(华为/三星/OPPO/VIVO等其他品牌手机)上是否正常安装。  卸载旧版本再安装(这个操作可以排插新版本的安装包是否丢失库,如果是覆盖安装的话会继续依赖旧库,导致问题发现不了)。  覆盖安装是否正常。  降级安装是否能成功。  磁盘空间不足时,是否可以正常安装,安装的现象是什么。  安装过程中是否可以手动取消。  安装过程中突然手机关机怎么处理。  卸载测试  按照手机自身的卸载流程卸载是否能正常卸载。  使用adb命令卸载是否可以卸载。  卸载过程中有没有异常提示。  卸载过程中突然关机是否卸载成功。  界面测试(UI)。  界面上的布局是否按照需求上设计。  界面内容是否符合文档需求,文字是否有乱码或者翻译问题。  图片、动画、边框、颜色、字体、背景、按钮、目录、菜单、弹框、列表等…  软件logo,颜色,名称。
  • 华为FreeBuds3兼容ios不
    华为FreeBuds3兼容ios不
  • [技术讨论] 多队列网卡简介
    多队列网卡简介多队列网卡是一种技术,最初是用来解决网络IO QoS (quality of service)问题的,后来随着网络IO的带宽的不断提升,单核CPU不能完全处满足网卡的需求,通过多队列网卡驱动的支持,将各个队列通过中断绑定到不同的核上,以满足网卡的需求。常见的有Intel的82575、82576,Boardcom的57711等,下面以公司的服务器使用较多的Intel 82575网卡为例,分析一下多队列网卡的硬件的实现以及linux内核软件的支持。1.多队列网卡硬件实现图1.1是Intel 82575硬件逻辑图,有四个硬件队列。当收到报文时,通过hash包头的SIP、Sport、DIP、Dport四元组,将一条流总是收到相同的队列。同时触发与该队列绑定的中断。2. 2.6.21以前网卡驱动实现kernel从2.6.21之前不支持多队列特性,一个网卡只能申请一个中断号,因此同一个时刻只有一个核在处理网卡收到的包。如图2.1,协议栈通过NAPI轮询收取各个硬件queue中的报文到图2.2的net_device数据结构中,通过QDisc队列将报文发送到网卡。3. 2.6.21后网卡驱动实现2.6.21开始支持多队列特性,当网卡驱动加载时,通过获取的网卡型号,得到网卡的硬件queue的数量,并结合CPU核的数量,最终通过Sum=Min(网卡queue,CPU core)得出所要激活的网卡queue数量(Sum),并申请Sum个中断号,分配给激活的各个queue。如图3.1,当某个queue收到报文时,触发相应的中断,收到中断的核,将该任务加入到协议栈负责收包的该核的NET_RX_SOFTIRQ队列中(NET_RX_SOFTIRQ在每个核上都有一个实例),在NET_RX_SOFTIRQ中,调用NAPI的收包接口,将报文收到CPU中如图3.2的有多个netdev_queue的net_device数据结构中。这样,CPU的各个核可以并发的收包,就不会应为一个核不能满足需求,导致网络IO性能下降。4.中断绑定当CPU可以平行收包时,就会出现不同的核收取了同一个queue的报文,这就会产生报文乱序的问题,解决方法是将一个queue的中断绑定到唯一的一个核上去,从而避免了乱序问题。同时如果网络流量大的时候,可以将软中断均匀的分散到各个核上,避免CPU成为瓶颈。/proc/interrupts5.中断亲合纠正一些多队列网卡驱动实现的不是太好,在初始化后会出现图4.1中同一个队列的tx、rx中断绑定到不同核上的问题,这样数据在core0与core1之间流动,导致核间数据交互加大,cache命中率降低,降低了效率。inux network子系统的负责人David Miller提供了一个脚本,首先检索/proc/interrupts文件中的信息,按照图4.1中eth0-rx-0($VEC)中的VEC得出中断MASK,并将MASK写入中断号53对应的smp_affinity中。由于eth-rx-0与eth-tx-0的VEC相同,实现同一个queue的tx与rx中断绑定到一个核上set_irq_affinity脚本位于http://mirror.oa.com/tlinux/tools/set_irq_affinity.sh。6.多队列网卡识别#lspci -vvvEthernet controller的条目内容,如果有MSI-X && Enable+ && TabSize > 1,则该网卡是多队列网卡,Message Signaled Interrupts(MSI)是PCI规范的一个实现,可以突破CPU 256条interrupt的限制,使每个设备具有多个中断线变成可能,多队列网卡驱动给每个queue申请了MSI。MSI-X是MSI数组,Enable+指使能,TabSize是数组大小。转载:https://blog.csdn.net/turkeyzhou/article/details/7528182
  • [公告] 【版本更新】移动端5.33.9(iOS版本号为5.33.13)版本更新了
  • [AI人工智能全栈成长...] 【问答官3阶段】有没有可能HiLens 中的系统ios是否也可以安装在普通的设备上呢?
    有没有可能HiLens 中的系统ios是否也可以安装在普通的设备上呢?就是可以根据HIlens 硬件的架构标准去生产一批类似的硬件,然后把HiLens中的系统弄出来,然后也可以安装在类似的硬件标准的设备上的吧?
  • [问题求助] HWH5.getAuthCode()是否支持ios13.6???
    https://open-doc.welink.huaweicloud.com/docs/jsapi/2.0.4/hwh5-cloudonline.js该js文件中的 HWH5.getAuthCode()api不支持ios13.6吗?
  • [入驻式求助] 全渠道IOS手机端视频坐席求助
    银行的全渠道坐席,因部分苹果手机用户升级系统到IOS14版本后,导致视频通话后视频窗口弹不出来,银行坐席看不到用户视频图像,请问是否需要更换新的sdk版本?
  • [问题求助] IOS无法播放OBS中存储的视频问题
    我们有一个场景:使用微信小程序上传手机视频到OBS中,然后从OBS下载视频在小程序中播放。目前andorid手机可以上传视频并播放正常,但是IOS手机虽然上传成功但是不能正常播放视频。目前定位到的问题点是:把视频访问连接发送到微信群中,IOS手机是无法打开视频。也就是说可以排除小程序的影响因素。
  • [技术干货] JS 安全随机数 .crypto及其兼容性
    在JS中经常使用Math.Random|()函数来产生随机数,但这个函数产生的随机数并不具有真正的随机性,而且加密型不够强。因此在特定的需要加密性强的安全随机数时,可以使用JS提供的windows.crypto来生成随机数。    Window.crypto只读属性返回与全局对象关联的 Crypto对象。 这个对象允许网页访问某些加密相关服务。    为了确保足够的性能,不使用真正的随机数生成器,但是它们正在使用具有足够熵值伪随机数生成器。它所使用的 PRNG 的实现与其他不同,但适用于加密的用途。该实现还需要使用具有足够熵的种子。    使用crypto尽可能在https 环境下使用,否则有时会返回undefined 或者 空对象函数比较Math.random() : 返回介于 0(包含) ~ 1(不包含) 之间的一个随机数。该函数不是加密安全的随机数生成器。window.crypto.getRandomValues(typedArray) : 返回非0的正整数,Crypto.getRandomValues(typedArray) 方法可以获取符合密码学安全性要求的随机值。typedArray是一个基于整数的 TypedArray,其可以是 Int8Array、Uint8Array、Int16Array、 Uint16Array、 Int32Array 或 Uint32Array。生成的属技术会存储在typedArray 数组中。使用方法如果只需要生成安全随机数,可以按下面代码所示使用:var arr = new Uint16Array(8);  window.crypto.getRandomValues(arr);  for (var i = 0; i < arr.length; i++) {    console.log(arr[i]);  }这里需要注意:window.crypto只能保证在通用浏览器上正常运行,如果要做兼容,需要使用如下前缀:webkit 兼容Chrome,Safari,Opera的新版本,几乎所有的iOS浏览器(包括iOS版的Firefox);基本上,任何基于WebKit的浏览器moz 兼容Firefoxo 兼容旧版,WebKit之前的版本以及Opera版ms 兼容微软的Internet Explorer和Microsoft Edge因此,要做全版本兼容,需要这样使用:var arr = new Uint16Array(8);  var crypto = window.crypto || window.webkitCrypto  || window.mozCrypto || window.oCrypto || window.msCrypto;  window.crypto.getRandomValues(arr);  for (var i = 0; i < arr.length; i++) {    console.log(arr[i]);  }除了生成安全随机数,window.crypto还可以对数据进行加解密(crypto rsa 只有一个算法(RSA-OAEP)支持加密 / 解密),通常用法有:生成公私钥对:crypto.subtle.generateKey导出公私钥: window.crypto.subtle.exportKe导入公私钥:window.crypto.subtle.importKey加密:window.crypto.subtle.wrapKey解密:window.crypto.subtle.unwrapKey签名:crypto.subtle.sign验签:crypto.subtle.verify加密明文:crypto.subtle.encrypt解密密文:crypto.subtle.decrypt转自:https://blog.csdn.net/gengkui9897/article/details/106344417?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160497463819725222404581%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160497463819725222404581&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v28-11-106344417.first_rank_ecpm_v3_pc_rank_v2&utm_term=window&spm=1018.2118.3001.4449
  • [技术干货] 视频中的码率是什么意思?
    视频中的码率是数据传输时单位时间传送的数据位数,单位千位每秒 ,通俗理解为取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,也就是说画面的细节越丰富,所以说影响视频画面质量,进而影响体验质量。 也就是说视频文件在单位时间内使用的数据流量,也叫码流率。码率越大,说明单位时间内取样率越大,数据流精度就越高,这样表现出来的的效果就是:视频画面更清晰画质更高。 超清码率: 1024kbps、 分辨率1280*720、 俗名720P高清码率: 512kbps 、分辨率640*480、俗名480P流畅码率: 256kbps、分辨率480*360、俗名360P    码率计算公式:基本的算法是:【码率】(kbps)=【文件大小】(字节)X8/【时间】(秒)*1000音频文件专用算法:【比特率】(kbps)=【量化采样点】(kHz)×【位深】(bit/采样点)×【声道数量】(一般为2)举例,D5的碟,容量4.3G,其中考虑到音频的不同格式,所以算为600M,(故剩余容量为4.3*1000-600=3700M),所以视频文件应不大于3.7G,本例中取视频文件的容量为3.446G,视频长度100分钟(6000秒),计算结果:码率约等于4933kbps  码率几点原则:1、码率和质量成正比,但是文件体积也和码率成正比。2、码率超过一定数值,对图像的质量没有多大影响。  常用的调节码率手段包括:①调节编码的帧率。通过调节序列在时间上的分辨率达到控制码率的目的。当码率高于信道时,通过丢帧来降低码率;当码率低于信道时,可提高帧率以提高视觉效果。②调节图像大小。通过调节序列在空间上的分辨率来达到控制码率的目的。当码率高于信道时,减小尺寸来降低码率;当码率低于信道时,增加图像尺寸以获得更好的效果。③调节量化参数。编码残差系数的量化参数会直接影响到码率。量化参数变大,则编码的比特数降低;量化参数变小,编码的比特数提高。 
  • [融合视频] iOS基线 关于GoogleCast 30s状态请求的问题
    问题场景:当前在GoogleCast投屏状态下,进入cast大屏控制界面。根据代码查看可知,客户端会每30s 调用接口查询当前cast的播放状态。当将该30s时间,改为5s后,拖动进度条时,会容易出现定时器查询状态和拖动进度条同时并发的现象,导致进度条闪动到原来的位置后再回到拖动的位置。当前想知道,代码当时设置每30s查询一次状态。这个30s的定时器设置当时是基于什么条件进行设置的。为什么时间是30s。谢谢!
  • [问题求助] 对象存储服务iOS SDK put上传完成的Response中未找到ObjectUrl
    你好,        我在对象存储服务iOS SDK put上传完成的Response中未找到ObjectUrl,请问是需要自己拼接吗?拼接规则是?
  • [融合视频] ios基线终端播放加密VOD 失败:playready设备证书不存在(321007)
    ios基线终端播放加密VOD 失败:playready设备证书不存在(321007)
  • [问题求助] VUE模板IOS端使用axios发送post请求,服务器无法获取提交的内容
    VUE模板IOS端使用axios发送post请求,服务器无法获取提交的内容。确定不是服务器的问题,因为安卓和模拟器都可以正常提交,IOS端使用HWH5.fetchInternet也可以正常提交。只是IOS端使用axios的时候POST提交错误,GET请求没问题,axios的post参数配置也没问题,各种方式都试过了。网络状态是200,但是服务器接收不到任何数据,无论是用$_POST还是php://input都无法接收到任何数据。我在微信小程序以及H5页面上是没问题的,所以不确定是不是welink这边有什么特殊的规则?