hybrid几种模式

native和web适合的场景

Native:
    用户体验要求高
    业务变动很小(如首页)
    性能要求高

Web:
    业务变化频繁(如广告)
    性能要求低
    展示性内容

hybrid App其实会有不同的分支

方案一:使用PhoneGap、AppCan之类的中间件,
以WebView作为用户界面层,
以Javascript作为基本逻辑,以及和中间件通讯,
再由中间件访问底层API的方式,进行应用开发。
这种架构一般会非常依赖WebView层的性能。

方案二:使用Adobe Air、RubyMotion、Appcelerator或者是Xamarin这种非官方语言的工具,打包成原生应用的方式开发。
它们并没有很单纯地使用原生提供的语言进行开发,而是通过对开发者提供友好的开发工具,并折中地把这种开发语言转换成原生语言,最终打包出整个应用。

方案三:在开发原生应用的基础上,嵌入WebView。
但是整体的架构使用原生应用提供,Native开发人员会写好基本的架构以及API让Web开发人员开发界面以及大部分的渲染。
在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一般都会分开发送。

时间: 2024-10-29 19:08:53

hybrid几种模式的相关文章

VLAN之access,trunk,hybrid三种模式区别

tag报文结构是在源mac地址和目的mac地址之后,加上了4bytes的vlan信息,普通的PC网卡是不能识别 的. Access端口只属于1个VLAN,一般用于连接计算机端口. Trunk类型的端口可用于多VLAN通信. Hybrid类型的端口允许多VLAN通过,可以接收发送多VLAN报文,可用于交换机与交换机的连接,也可用于交换机和计算机的连接. Hybrid类型的端口和trunk端口在处理数据包时,方法是一样的.唯一不同之处在于发送数据包时,hybrid端口可以允许多个VLAN的数据包发送

APP开发的三种模式

APP开发的三种模式:Native App .web App.hybrid App 1.原生app 使用原生app (android或iOS)开发APP.. 技术: Native技术主要用于提供原生支持,要做到跨平台,就需要掌握部分Android和iOS的知识,除了多线程,文件存储等基础知识,Android需要非常熟练的掌握WebView.WebSettings.WebChromeClient.WebClient四大对象.iOS需要非常熟练掌握UIWebView对象. 缺点:技术多,门槛高.无法

Hybrid App 开发模式

开发移动App主要有三种模式:Native. Hybrid 和 Web App. 需要注意的一点是在选择开发模式的时候,要根据你的项目类型(图片类?视频类?新闻类?等),产品业务和人员技术储备等做权衡. Hybrid开发模式就是既有Native开发也有Web app的开发.那我们怎么去确定App中某个功能模块使用Native还是Web开发?它们之间如果需要接口通信又该如何去实现呢?又该如何更好的去维护Hybrid App产品呢? 1.Native or Web开发模块 当我们选择用Hybrid模

Hybrid App—Hybrid App开发模式介绍和各种开发模式对比

什么是Hybrid App 最开的App开发只有原生开发这个概念,但自从H5广泛流行后,一种效率更高的开发模式Hybrid应运而生,它就是"Hybrid模式".Hybrid APP是目前广泛流行的一种APP开发模式 H5渗入APP开发 我们都知道,原生APP开发中有一个webview的组件(Android中是webview,iOS7以下有UIWebview,7以上有WKWebview),这个组件可以加载Html文件. 在Html5没有兴盛之前,加载的Html往往只能用来做一些简单的静态

公众号运营常见的4种模式

本文和大家分享的主要是新媒体运营中运营公众号的4种模式,一起来看看吧,希望对大家有所帮助. 如果把公司的公众号当作一个人来看待,那么有三个环节将决定它的生死: 公众号命名20%; 老板(领导)的战略50%: 运营模式30% 保证不了一见钟情 起码也不能让人一见转身吧 当用户要关注一个公众号,第一眼注意到最醒目的就是"公众号名称",这个"公众号名称"决定该用户对关注之后的愿景想象.如果看到的是一个不知名的公司名字,比如你看到的是"广州力图油漆公司.巴图鲁科技

Binlog的三种模式

binlog模式分三种(row,statement,mixed) 1.Row 日志中会记录成每一行数据被修改的形式,然后在slave端再对相同的数据进行修改,只记录要修改的数据,只有value,不会有sql多表关联的情况. 优点:在row模式下,bin-log中可以不记录执行的sql语句的上下文相关的信息,仅仅只需要记录那一条记录被修改了,修改成什么样了,所以row的日志内容会非常清楚的记录下每一行数据修改的细节,非常容易理解.而且不会出现某些特定情况下的存储过程和function,以及trig

Linux网卡bond的七种模式详解

像Samba.Nfs这种共享文件系统,网络的吞吐量非常大,就造成网卡的压力很大,网卡bond是通过把多个物理网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,具体的功能取决于采用的哪种模式. 一.bond的七种模式介绍:1.mode=0(balance-rr)(平衡抡循环策略)链路负载均衡,增加带宽,支持容错,一条链路故障会自动切换正常链路.交换机需要配置聚合口,思科叫port channel.特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1-.一直循环

httpd的三种模式比较

查看你的httpd使用了哪种模式: /usr/local/apache2/bin/httpd -V |grep 'Server MPM' 使用哪种模式,需要在编译的时候指定 --with-mpm=prefork|worker|event 当然也可以编译的时候,让三者都支持: --enable-mpms-shared=all 然后在配置文件中,修改 LoadModule mpm_worker_module modules/mpd_mpm_worker.so 2.2版本默认为worker,2.4版本

WCF的三种模式

WCF通信的3种模式 1.正常模式:客户端调取接口->等待服务响应->接受响应->执行客户端后面代码(wcf服务有入参,有返回值) 2.数据报模式:客户端调取接口->不等待响应,直接执行客户端后面代码(wcf服务有入参,无返回值) 3.双工模式:客户端调取接口->服务端立刻回复介绍到请求->服务端继续执行,客户端也继续执行->服务端执行回调客户端回调函数,传递信息给客户端(wcf服务有入参,无返回值,但必须定义客户端回调函数) 上代码: 接口代码 using Sy