基本上是APP开发中涉及的相关技术的介绍。涉及的知识点和技术细节很多,很多与技术相关的内容没有标题暗示的技术背景是可以理解的,而是涉及到很多专业术语和原则。也有一些内容是用隐喻来讲原理的。
可以看作是开发人员APP开发技术的索引。没有技术背景的产品经理也可以通过这本书了解哪些IT知识,学习一些常识。例如,普通肖像照片不能转化为矢量图。
三星的总体评价具有参考价值。
以下是书中一些内容的摘录:
1:在一些视频网站上,所有的电影名称和演员名称都立即显示,电影的海报是在框架加载完成后,然后发起AJAX请求。使用这种异步加载模式可以最大限度地减轻用户在等待时的焦虑。P3
2:因此,在分析HTML文档时,浏览器会将每个标签抽象成代码中的对象,并根据这个层次组织DOM. P4
3:因此,有人发明了一种叫做虚拟DOM的便捷方法。简单来说,就是用JavaScript模拟一棵简单的DOM树,然后在上面练习所有的DOM操作。当时机成熟时,将虚拟DOM树与真实浏览器的DOM树进行比较,计算差异,一次性改变真实的DOM树。这两步大大提高了JavaScript操纵DOM树的效率。P5
4:当然,有办法防止它。当开发人员引用第三方库时,在页面上写下其散列值。如果第三方库被劫持,计算出的散列值与开发人员在页面上写的不匹配,浏览器将无法执行。另一种解决方案是使用HTTPS链接来解决大多数劫持问题。P13
5:使用WebSocket可以很好地解决这个问题.Websocket是HTML5的一个主要特征,它是基于TCP的全双工协议,即客户端可以向服务器发送信息,服务器也可以向客户端发送信息。Websocket首次建立连接时,使用普通HTTP和服务器通信,并告诉服务器后面的交互使用Websocket。P24
6:综上所述:浏览器直接输出HTML页面,简称“直出”.直出没有什么神秘之处,只是需要Node.JS的支持、服务器和前端都是用JavaScript语言编写的,相当于在服务器上运行浏览器,它直接将渲染的内容输出给客户端浏览器。P25
7:单页Web应用程序将在用户单击链接后直接联系服务器(不会告诉浏览器页面切换)以获取数据。虽然它似乎与多页Web应用程序没有什么不同,但它在技术上有很大的不同。P26
8:如今,移动终端上的许多应用都采用了Hybrid。 APP架构。所谓Hybrid APP,指使用原生和H5两种UI呈现内容。P366
9:看到路上的街景收藏车(如图2-7所示)吗?如果读者认为他们只是在收集街景,他们就错了。当他们在街上漫游时,他们会写下附近无线路由器的MAC地址和GPS信息。日复一日,年复一年,建立了一个庞大的Wi-Fi定位数据库。P42
10:发送心跳包是有代价的。为了省电,手机锁屏后,CPU处于休眠状态,但发送心跳包会唤醒CPU,必然会增加功耗。这只是一个长连接通道。如果手机里有20或30个带推送的应用呢?聪明的Android工程师和iOS工程师早就想到了这一点,他们分别设计了GCM(Google Cloud Messaging)和APNs(Apple Push Notification service)解决多个APP有多个长连接通道的问题。P45
11:在图2-11中,猫的眼睛和鼻子一起模糊,严重扭曲,所以我们通常选择一种特殊的高斯模糊算法:双边滤波器。它的优点是可以保存边缘,如皮肤和眉毛之间的交界处。双边滤波器后,眉毛没有变化,只有皮肤进行了高斯模糊处理。在实际应用过程中,还将使用肤色检测、人脸识别等技术。P47
12:通过缩放和灰度处理图片,最终提取64位的散列值作为特征代码,以匹配图片。同样,要识别一首歌,我们也应该首先找到它的特点,即音乐的“指纹”,以下简称“音乐线”。P48
13:因此,当我们通常使用搜索引擎时,它的搜索结果不是实时发现的,而是提前使用倒排索引来显示关键字的索引结果。P79
14:CSRF攻击的本质是浏览器无法区分用户是在当前网站上自愿发起的请求,还是在其他网站上模拟用户行为。
15:因此,避免CSRF攻击的措施之一是区分当前请求的来源网站。P133
16:最后,处理一个应用程序的过程变成了“下载应用程序-反编译-篡改代码-重新包装-国内分发”。这个过程非常简单,只需要十分钟就可以做成批处理任务,但开发一个应用程序至少需要几个月的时间。P138
17:一个好的产品设计是这样的:当地应该默认写下一些频道,它们经常显示,不会改变太多,这被称为基础数据或默认数据。如果没有这个写死的数据,当你的客户运行到网络数据传回或没有网络时,头部就没有信息显示。因此,基础数据主要用于解决用户体验问题。当没有网络或第一次启动时,通知用户客户端正常运行。P161
18:因此,JSON不是凭空想出的深刻概念,而是为了解决“对象”在互联网上传输的问题而诞生的。此时,让我们来看看它的英文名称JavaScript Object Notation(JavaScript的对象标记法),你觉得是真的吗?P180
19:那么问题来了,如何充分调动显卡的强大能力,帮助我们绘制图形呢?Opengl就是为此诞生的。Opengl是一组可以在不同平台上运行的API,支持各种语言的API。最重要的是,它可以利用显卡的硬件加速能力来帮助我们绘制图形。P181
20:Opengl在过去的两年里很受欢迎,主要是因为iOS和Android都依靠它来玩游戏和写界面。严格地说,在移动平台上,每个人都使用Opengl-ES,是Opengl的子集。Opengl有700多个API,OpenGL-ES切断了一些不常用的API,移动端不好用。P182
21:既然矢量图可以缩放而不失真,为什么不把所有的图片都做成矢量图呢?答案是,我做不到。在一张普通的图片中,有人物和风景。每一个细节都不能用数学方程来描述。它只能根据点对点映射制作一个位置图,这个位置图的分辨率取决于镜头的分辨率。P188
22:React是Facebook推出的前端框架。准确地说,它是前端UI组件库。P197
23:ReactNative是Facebook用JavaScript语言同时编写iOS、Android和后台的技术.ReactNative于2016年9月发布的Android版本在IT圈掀起了一波热潮,喜欢品尝新鲜度的程序员不断投资。P198
24:由于ReactNative引擎的启动耗时,第一个屏幕的速度可能会稍慢一些。此外,ReactNative还会增加JStonative的通信成本。此外,由于翻译后的UI布局采用了纯原生的实现方式,动画和滑动将与原生一样顺畅。但是React有一个严重的伤害,那就是List(列表)的性能很差。P200
25:谷歌正式发布Flutter,一经推出就受到众多开发者的追捧。Flutter的诞生不像ReactNative那样站在ReactJS的肩膀上,显得平淡多了。它的开发者来自谷歌的Chrome团队。是的,是那些做浏览器的技术人员。他们试图在普通应用程序上使用浏览器渲染技术,并改变了一个框架,让每个人都兴奋不已。P202
26:谷歌使用Dart而不使用JavaScript的原因还有另一层原因.Dart语言可以像Java一样预先编译成APK包中的二进制代码,也可以像JavaScript一样动态发布,随时解释和执行。P203
免费获取价值¥9800项目解决方案