native和web适合的场景

Native:用户体验要求高业务变动很小(如首页)性能要求高Web:业务变化频繁(如广告)性能要求低展示性内容

hybrid App其实会有不同的分支

方案一:使用PhoneGap、AppCan之类的中间件,
以WebView作为用户界面层,
以Javascript作为基本逻辑,以及和中间件通讯,
再由中间件访问底层API的方式,进行应用开发。
这种架构一般会非常依赖WebView层的性能。方案二:使用Adobe Air、RubyMotion、Appcelerator或者是Xamarin这种非官方语言的工具,打包成原生应用的方式开发。
它们并没有很单纯地使用原生提供的语言进行开发,而是通过对开发者提供友好的开发工具,并折中地把这种开发语言转换成原生语言,最终打包出整个应用。方案三:在开发原生应用的基础上,嵌入WebView。
但是整体的架构使用原生应用提供,Native开发人员会写好基本的架构以及API让Web开发人员开发界面以及大部分的渲染。
多View混合型:即Native View和Web View独立展示,交替出现单View混合型:即在同一个View内,同时包括Native View和Web View。

在Android手机中
内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。2.如果访问的页面中有Javascript,则webview必须设置支持Javascript。webview.getSettings().setJavaScriptEnabled(true);  3.如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖 webview的WebViewClient对象。4.如果不做任何处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身, 如果希望浏览的网页回退而不是退出浏览器,需要在当前Activity中处理并消费掉该Back事件。 5.addJavascriptInterface(Object obj,String interfaceName)这个方法, 在webview加载的页面中就可以直接通过 javascript:window. interfaceName访问到绑定的java对象了。

1)为了让WebView从apk文件中加载assets,Android SDK提供了一个schema,前缀为"file:///android_asset/"。WebView遇到这样的schema,就去当前包中的 assets目录中找内容。2)addJavascriptInterface方法中要绑定的Java对象及方法要运行另外的线程中,不能运行在构造他的线程中,这也是使用 Handler的目的。

 mWebView.addJavascriptInterface(new Object() {       public void clickOnAndroid() {       mHandler.post(new Runnable() {       public void run() {       mWebView.loadUrl("javascript:wave()");       }       });       }       }, "demo"); <html> <mce:script language="javascript"><!-- function wave() { document.getElementById("droid").src="android_waving.png"; }       // --></mce:script> <body> <a onClick="window.demo.clickOnAndroid()"> <img id="droid" src="android_normal.png" mce_src="android_normal.png"/><br> Click me! </a> </body> </html> 

TCP协议

TCP 使用固定的连接
当应用程序通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。
这个请求必须被送到一个确切的地址。
在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信,将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。

TCP/IP 意味着 TCP 和 IP 在一起协同工作。TCP:负责应用软件和网络软件之间的通信。负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们。
IP:负责计算机之间的通信。负责将包发送至接受者。   

三次握手(Three-Way Handshake)即建立TCP连接,
就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。
在socket编程中,这一过程由客户端执行connect来触发TCP四次挥手即终止TCP连接,就是指断开一个TCP连接,
需要客户端和服务端总共发送4个包以确认连接的断开。
在socket编程中,这一过程由客户端或服务端任一方执行close来触发

 关闭连接时,当服务端收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,

 己方也未必全部数据都发送给对方了,所以己方可以立即close,

也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送。

转载于:https://www.cnblogs.com/avidya/p/7468233.html

hybrid几种模式相关推荐

  1. 华为交换机三种模式的理解

    关于华为交换机三种模式的理解 先来看看Access,Hybrid,Trunk三种模式对数据包的处理 端口类型 对收到报文的处理 发送报文的处理 当收到不带tag的报文时 当收到带tag的报文时 Acc ...

  2. 2021-12-23 网工基础(十四) 链路聚合的两种模式、堆叠、集群、IP路由基础

    一 链路聚合的两种模式 1.手工模式(管理员手工指定,无协议报文.没有开销) 2.LACP模式(交换机之间会交互LACP的协议,会有一点儿报文交互)一般正常情况下推荐使用LACP模式. 一般自动协商都 ...

  3. Apple Watch上的静音模式,免打扰模式和剧院模式之间的区别(以及何时使用每种模式)

    Since it was introduced, the Apple Watch has gained a number of different modes, but it's not immedi ...

  4. java 脸面识别技术_浅析人脸识别的3种模式

    人脸识别的三种应用模式:1:1 身份验证模式本质上是计算机对当前人脸与人像数据库进行快速比对并得出是否匹配的过程,可以简单理解为证明你就是你.1:N 则是在海量的人像数据库中找出当前用户的人脸数据并进 ...

  5. 2021年大数据Spark(九):Spark On Yarn两种模式总结

    目录 Spark On Yarn两种模式 引入 一.当一个MR应用提交运行到Hadoop YARN上时 二.当一个Spark应用提交运行在集群上时 注意 client 模式 cluster 模式 总结 ...

  6. spi协议时序图和四种模式实际应用详解

    大家好,我是无际. 上个章节我们讲解了spi接口定义,今天我们更加深入讲解下spi协议时序图和spi四种模式的用法. 刚开始接触单片机开发时,最怕就是看时序图,对于我来说就是奇怪的知识. 特别是SPI ...

  7. Oracle 11g dataguard三种模式以及实时查询(Real-time query)功能设置

    之前我们讨论过<Linux Oracle 11g dataguard物理standby 配置过程>, 但是在实际过程中会遇到不同的问题,首先我们讨论下ORACLE DATAGUARD的三种 ...

  8. 一文把Redis主从复制、哨兵、Cluster三种模式摸透

    概述 Redis作为缓存的高效中间件,在我们日常的开发中被频繁的使用,今天就来说一说Redis的四种模式,分别是「单机版.主从复制.哨兵.以及集群模式」. 可能,在一般公司的程序员使用单机版基本都能解 ...

  9. 简述python中怎样导入模块_Python中导入模块的两种模式,import

    import import pandas import pandas as pd 使用函数方式:.(),或者.() 比如 pandas.read_csv("data/stock.csv&qu ...

最新文章

  1. 全程图解:Centos 5.2 下 ORACLE10G 安装配置
  2. hihocoder 1580 Matrix(北京icpc2017网络赛)
  3. linux系统获取光盘信息api,C++ 通过WIN32 API 获取逻辑磁盘详细信息的几种方法
  4. 微信小程序 开发文档
  5. python打开快捷方式_Python打开一个JAR快捷方式
  6. LeetCode for SQL 176. 第二高的薪水 (ifnull limit order by)
  7. 痞子衡嵌入式:极易上手的可视化wxPython GUI构建工具(wxFormBuilder)
  8. 3-6 字符和字符串处理
  9. 笔记︱精准营销解决方式以及营销组合评估
  10. Gerber文件解析
  11. sqlserver2012下载地址
  12. AT070TN83 V1.0 背光不亮
  13. Adversarial Discriminative Domain Adaptation阅读笔记(详细)
  14. js正则判断域名和IP的端口路径是否正确
  15. the specified jre installation does not exist 规定的jre没有安装
  16. JDK 8 之 Stream sorted() 示例
  17. Android 接入穿山甲激励视频广告步骤与错误总结
  18. vue 微信公众号开发
  19. nit报名费用计算机基础,2015年NIT计算机应用基础考试:Windows基本操作(Windows 7)...
  20. 【数据挖掘导论】对于决策树要掌握的几个问题

热门文章

  1. 戴尔服务器安装Exsi Server
  2. C51外扩6264芯片在proteus下的仿真
  3. Web前端:UI设计对提高用户参与度的重要性
  4. 常见的前端大厂ui库
  5. 神经网络数学建模怎么算,神经网络数学建模论文
  6. 王鸿飞:十有八九的博士和博导不合格
  7. 什么是服务器集群技术,有哪些优缺点?
  8. 【观察】中国移动“加持”之后,紫光云未来的升势与胜势
  9. 【计算机网络】期末复习
  10. safari浏览器附件下载文件中文名字乱码(转) || 苹果IOS 微信浏览器预览PDF乱码 解决方案(转)