给产品经理讲技术-02.客户端技术
2022-01-05 10:17:28 10 举报
AI智能生成
登录查看完整内容
客户端技术:“骗人”的动画、细说Android应用的“续命大法”、Hybrid APP、手机传感器知多少、定位终端设备位置的方法有哪些、客户端推送实现方式、为什么美颜APP可以美颜、听歌识曲的基本原理、朋友圈中的图片缓存系统、应用的生命周期
作者其他创作
大纲/内容
动画除了承担这些特效任务,还承担着施展“障眼法”的任务,这种任务和近景魔术拥有相同的目标——在用户的眼皮底下做些小手脚而不被发现例如常见的闪屏,它除了承载运营功能,还有一项任务就是减少应用启动耗时带来的体验下降。开发者利用闪屏展示的时间,把应用启动的准备工作在闪屏“后面”做完,同时,还能在闪屏上进行一些运营活动,可谓一石二鸟。
1.“骗人”的动画
“杀死”的应用很多都自己“复活”了,时不时还会推送几条消息。这些应用使了什么手段“续命”,让自己“死而复生”呢?
Android系统有一套广播机制,当系统下达指令时,它会通知与这件事情相关联的所有应用有了这套机制,良心应用就可以根据系统当前的状态调整任务进程,给用户带来更好的体验。但是,某些别有用心的应用就利用了这套机制钻空子,明明用户已经让它停止运行,它仍旧把自己唤醒,悄悄地躺在后台。
1.Android应用的“续命”三式。
大部分“复活”的应用都只学会了第一式,通过系统广播来唤醒自己
不过,有的ROM(Read-Only Memory,只读存储器)会对这些广播进行限制,于是就有了进阶版应对策略——守护进程唤醒方案。很多应用在启动后,还会创建一个守护进程,守护进程像一个小魔法师,在后台不断地检查应用进程的运行状态,一旦应用进程停止运行,它就默默地施法,把应用复活。
2.守护进程唤醒
守护进程也有一个局限,那就是需要应用程序通过其他方式启动过一次。为了解决这个问题,是时候拿出终极手段“全家桶系列”了原理很简单,就是不同应用之间相互唤醒,当应用A被“杀死”后,“同门兄弟”B就会将它“复活”;还有只要启动了A,它就会把它的“同门兄弟”B、C、D 都唤醒只有少数“大佬”拥有,是因为使用它的前提条件是用户手机里安装了同一个公司的多个应用,国内也只有少数几家公司拥有这个资源
这些应用无节制地自我“复活”,以始终与后台保持联络,随时激活自己并展示在用户面前,这对提高应用活跃度很有帮助。造成的后果是大量不被使用的应用常驻后台,占用了设备的 CPU、内存等资源,给用户带来卡、慢、耗电、费流量等糟糕的体验。
3.全家桶系列
Android应用的“续命”三式。
2.细说Android应用的“续命大法”
移动端上的很多应用都采用了Hybrid APP的架构。所谓Hybrid APP,就是指使用原生和H5两种UI呈现内容
对流畅性体验要求较高的场景
UI样式相对固定,不会频繁变化
交互复杂
何时使用原生UI
较强的动态运营需求
UI样式复杂多变
交互简单
多平台复用
3.Hybrid APP
磁场传感器可以测定出手机在x、y、z三个方向上的磁场强度,用户旋转手机,直到只有一个方向上的值不为零时,手机就指向了正南方。很多手机上的指南针应用,都利用了这个传感器的数据。同时,可以根据三个方向上磁场强度的不同,计算手机在三维空间中的具体朝向。
磁场传感器
加速度传感器返回的是当前手机在x、y、z三个方向上的加速度值如果手机水平放置,那么z方向上的值,就是当前的重力加速度G,可以通过判断G值的不同,推测用户是在南北极还是赤道
加速度传感器的另一个用处是计步当用户拿着手机运动时,手机会随着身体上下摆动,加速度传感器就会检测出加速度在某个方向上来回改变,通过计算来回改变的次数,可以得出步数。
加速度传感器
可以测定出当前手机在x、y、z三个方向上的角加速度,这个功能主要用来检测手机的旋转方向常见的翻转手机就可以接听电话的功能,就是利用三轴陀螺仪测定角加速度变化的功能实现的。
三轴陀螺仪
指纹解锁已经是智能手机的标配功能,它的实现完全依赖于手机中嵌入的指纹传感器
指纹传感器按技术可以分为光学式、电容式及射频式3种。手机上普遍采用的是电容式指纹传感器。
指纹传感器
它能够检测手机附近物体距手机正面的距离,它依靠一个小型雷达实现,通过发射一些脉冲信号并检测返回时间计算距离
这个传感器对脸大的用户来说是个福音,因为在接电话时,手机可以检测到脸靠近了,然后关闭屏幕,以避免脸对屏幕的误触。
近距离传感器
光线传感器检测手机正面接收的光照强度,从而对应地改变手机屏幕的亮度,让用户在不同光照下都能看清屏幕很多阅读类应用都有夜间模式,但都需要手动切换。
光线传感器
气压传感器可以检测当前的大气压强,从而推测出用户所在位置的海拔高度
气压传感器
有的手机自带温度传感器,可以获取当前环境的温度。
温度传感器
4.手机传感器知多少
用到定位功能的APP几乎随处可见。这些APP获得了定位权限后,就会通过系统接口获取当前手机的经纬度,上传给服务器
如何获取经纬度?手机里的 GPS,在出厂前都要添加一个加偏芯片,作用是人为地给定位到的原始经纬度造成一点偏移,生成所谓的“火星坐标”
为什么平时使用的地图软件可以精确定位呢?答案是这些地图软件中的地图也做了同样的偏移调整。
到了室内,卫星信号会变得很弱,GPS就没有用武之地了。针对这种场景,还有两套定位方案可以用:基站定位和 Wi-Fi定位它们的原理很相似。定位的关键是参照物,基站定位的参照物就是基站运营商通过查询手机连接的基站的位置,就能找到设备的具体位置。Wi-Fi定位的参照物是无线路由器
5.定位终端设备位置的方法有哪些
传统的APP架构里,通常是APP主动向服务器请求数据,服务器被动地提供数据
如果此时服务器上又有了新的新闻,无论这条新闻多么重要,在用户没有主动刷新的情况下,是没有办法让用户看到的推送就是为了解决这样的困境,它给了服务器一个展示自我的机会,主动连接所有 APP
实现一个推送系统需要服务端和客户端的配合一种方法是轮询,也就是不停地向服务器发起请求,APP 既然不知道何时会发生新的新闻,就一遍一遍地问,这是种一定会成功的办法另一种方法是建2.另一种方法一条长时间连接服务器和 APP 的通道,通过这条通道,不仅APP可以向服务器请求数据,服务器也可以向APP发送数据,看起来非常完美,但是如果APP被用户关闭,通道就断了。好在Android系统给APP提供了一个良好的运行环境,APP可以启动后台服务来维持这条通道,即使APP被关闭,服务依然可以运行
如果手机里装了二三十个带有推送的 APP 呢,会增加电量的消耗Android工程师和iOS工程师,分别设计了GCM(Google CloudMessaging)和APNs(Apple Push Notificationservice)来解决多个APP有多个长连接通道的问题
6.客户端推送实现方式
为什么美颜 APP 可以美颜呢?那些美白、磨皮功能又是依靠什么原理呢?美颜从根本上讲是一种图像处理的手段,使用 Photoshop(PS)软件也能实现同样的功能,只不过APP把PS需要的步骤单独抽取出来,做了精简和优化,让不会使用PS的普通用户也能一键看到效果
美颜里的磨皮效果是如何实现的?磨皮就是把照片中人物粗糙的皮肤变成光滑的皮肤,有个很简单暴力的方法就是做模糊处理。比较常见的模糊算法是高斯模糊,高斯模糊算法:双边滤波。它的好处是可以保存边缘,比如皮肤和眉毛的交接处,经过双边滤波后眉毛没有变化,只有皮肤做了高斯模糊处理
美颜没什么神秘的,其原理就是利用了图像处理中的几个滤镜算法需要注意的是,千万不要用CPU做滤镜算法的运算,而要用OpenGL充分发挥GPU的能力,因为GPU的设计原理最适合这种工作量大又没有难度的重复计算任务。
7.为什么美颜APP可以美颜
听歌识曲和在百度上搜索一个关键词的技术原理并没什么区别,最大的难题在于歌曲本身是二进制数据,无法直接与后台数据库中的数据做对比,所以如何判断两个音频相互匹配是问题的关键“以图搜图”的功能通过对图片进行缩放、灰度处理,最后提取出一个64位的散列值作为特征码,用它去做匹配。同样,要识别一首歌曲,也要先找到它的特征,也就是音乐的“指纹”,简称“乐纹”。
找乐纹的第一步,就是要把一首歌或者一段录音转换成单声道、低采样率的WAV格式目的是排除其他干扰,保留音乐的整体特征。音频是由声卡对声波的采样生成的在波形图上,波的起伏表示了音量大小,起伏幅度越大,声音越响亮。这样的波越密越拥挤,表示它的变化越快、频率越高,人听到的声音也越尖锐。所以描述一段音频需要音量和频率两个要素
总结一下,听歌识曲的实现方式是对数据库里的所有音乐提取乐纹。对每一首音乐,先算出它的频谱图,然后把它分成几个片段,每一段都在频谱图上找几个点作为特征点,从而生成这一片段的乐纹。
8.听歌识曲的基本原理
缓存的概念是什么呢?缓是“临时”的意思,存是“存储”的意思,所以缓存的概念就是“临时存储”。缓存系统通常分两级,称为一级缓存和二级缓存。一级缓存也叫内存缓存,二级缓存也叫磁盘缓存(在硬盘或者SD卡上的缓存)
一级缓存存取速度最快,会多占一些内存,这是非常合理的一种以空间换取时间的程序设计,数据随着程序退出而消失。二级缓存容量更大,存取速度要慢一些,程序下次启动时,依然可以使用缓存内容进入朋友圈,图片占用的内存空间不断增加,如果用户往回滑动,会发现刚才的图片都还在,因为这时一级缓存还没满,所有被缓存的图片都能正常满足业务需求。如果我们持续刷新朋友圈的内容,直至一级缓存的空间被完全占用,就必然要对缓存的图片进行淘汰,目前业界主要采用LRU(Least Recently Used)算法进行淘汰,也就是近期最少被使用的图片被淘汰。按照这种规则,第一张图片会被淘汰出一级缓存,继而被安放到二级缓存,即存储到硬盘上注意,这里的“淘汰”,也仅仅是将图片从一级缓存迁移到二级缓存,并没有完全丢弃。
9.朋友圈中的图片缓存系统
应用的生命周期是对应用在宿主的环境中从创建、运行到消亡的一种过程描述。对用户来说,直观的感受是应用的启动、前台运行和退出。从技术上讲,一个应用在实际运行的过程中会有很多生命周期的状态描述
10.应用的生命周期
02.客户端技术
给产品经理讲技术读书笔记分享
0 条评论
回复 删除
下一页