前言 最近有一个需求是和在app中前端本地存储相关的,所以恶补了一下相关知识 webView开启支持H5 LocalStorage存储 有些时候我们发现写的本地存储没有起作用,那是因为默认WebView没有开启LocalStorage存储.开启方法如下 首先得有Webview控件: 有人问我是不是需要写布局文件,不写行不行,现在我就告诉你们,不写没问题,需要写就写不写直接创建New一个也行. 下面我就介绍一个,我new一个Webview实现localStorage. WebView mywebV…
前言 最近有一个需求是和在app中前端本地存储相关的,所以恶补了一下相关知识 webView开启支持H5 LocalStorage存储 有些时候我们发现写的本地存储没有起作用,那是因为默认WebView没有开启LocalStorage存储.需要开启 H5使用的Local Storage存的数据,原生要拿到数据有两种方案 用WebView执行js方法来读取数据: 找到Local Storage存储路径,直接读取: 参考 iOS用原生代码读写Webview的Local Storage…
参考 Android中.9图片的含义及制作教程 .9.png Android .9.png 的介绍…
Android原生与H5交互的实现 H5调用原生的方式 方式可能有多种,根据开发经验,接触过两种方式. 方法一:Android向H5注入全局js对象,也就是H5调Android 1.首先对WebView进行初始化 WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true); //允许在WebView中使用js 2.创建一个类JavaScriptMetod,专门用来给js提供可调用的方法 3.创…
Deeplink应用描述 Deeplink,简单讲,就是你在手机上点击一个链接之后,可以直接链接到app内部的某个页面,而不是app正常打开时显示的首页.不似web,一个链接就可以直接打开web的内页,app的内页打开,必须用到deeplink技术. 想要在h5页面中唤起app的某个页面也要用到该技术,两个App之间完成横向调用也是通过该技术 假如要从APP-F调用APP-T 1)APP-T要进行自定义scheme的配置(iOS是info文件,Android是activity),并进行参数处理的…
方法一: 情况一: if (window.JdAndroid){          window.JdAndroid.setPayCompleted();          window.JdAndroid.setPageIndex("cashierDesk_finish"); } 调用方式:h5调用Android方法 传递数据:通过参数传递给Android 情况二: var viewAppSuccessPage = function(){ return "closePayS…
webview是什么?作用是什么?和浏览器有什么关系? Android系统中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫做 WebView 组件也就是说WebView是一个基于webkit引擎.可以解析DOM 元素展现web页面的控件,它和浏览器展示页面的原理是相同的所以可以把它当做浏览 器看待 WebView是用于展示网络请求后的结果,也就是将url网络请求的结果展示在里面. Android的Webview在低版本和高版本采用了不同的webkit版本内核,Androi…
Android原生如何渲染H5页面 Android与 H5 的交互方式大概有以下 1 种: 利用WebView进行交互(系统API) iOS原生如何渲染H5页面 iOS 与 H5 的交互方式大概有以下 5 种: 利用 WKWebView 进行交互 (系统 API) 利用 UIWebView 进行交互 (系统 API) 苹果的 javascriptcore.framework 框架; 跨平台 cordova 框架; 第三方 WebViewJavascriptBridge 总结 其实就是使用WKWe…
前言 现在移动端 web 应用,很多时候都需要与原生 app 进行交互.沟通(运行在 webview中),比如微信的 jssdk,通过 window.wx 对象调用一些原生 app 的功能.所以,这次就来捋一捋 h5 与原生 app 交互的原理. h5 与原生 app 的交互,本质上说,就是两种调用: app 调用 h5 的代码 h5 调用 app 的代码 app 调用 h5 的代码 因为 app 是宿主,可以直接访问 h5,所以这种调用比较简单,就是在 h5 中曝露一些全局对象(包括方法),然…
混合开发 随着移动互联网的高速发展,常规的开发速度已经渐渐不能满足市场需求.原生H5混合开发应运而生,目前,市场上许多主流应用都有用到混合开发,例如支付宝.美团等.下面,结合我本人的开发经验,简单谈一下对混合开发的认识以及实现方式. 混合开发的优点 优点显而易见,由前端工程师写一个页面,多个平台都可以运行,省了Android和iOS工程师不少事,无形中提高了开发效率,节约了开发成本. 缺点 凡是使用过的人都知道,H5的界面显示在手机上,对点击.触摸.滑动等事件的响应并不如原生控件那样流畅,甚至还…
方法一: app可以把参数传到h5的链接里,用类似?xx=xx&xx=xx的形式拼接,js解析参数即可. 方法二: 情况一:app调用h5 原生app都可以对js的function进行触发,前端要做的只是将js定义好方法名和参数,交给app人员即可,app将数据通过参数传入 情况二:h5调用app 当H5页面加载时,就可以通过javascript去调用app自定义的方法(和调用js函数相似),执行成功后,app会进行callback回调把数据返回给H5,也就是函数的返回值 参考 H5必知必会之与…
前面两篇文章介绍了Zookeeper是什么和可以干什么,那么接下来我们就实际的接触一下Zookeeper这个东西,看看具体如何使用,有个大体的感受,后面再描述某些地方的时候也能在大脑中有具体的印象.本文只关注分布式模式的zookeeper,因为这也是在生产环境的唯一部署方式,单机的zookeeper可以在测试和开发环境使用,但是单机环境的zookeeper就不再是zookeeper了.安装配置很简单,官网也有介绍,这里就只对后面的文章有提到的点说明下. 配置-zoo.cfg 这是zookeepe…
(一)LayoutInflater原理分析 LayoutInflater主要用于加载布局.通常情况下,加载布局的任务都是在Activity中调用setContentView()方法来完成的,该方法内部使用LayoutInflater来加载布局. 想要使用LayoutInflater,首先需要获取到LayoutInflater的实例,有两种方法可以获取到: LayoutInflater layoutInflater = LayoutInflater.from(context); LayoutInf…
多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 程序的运行速度可能加快 在一些等待的任务实现上如用户输入.文件读写和网络收发数据等,线程就比较有用了.在这种情况下我们可以释放一些珍贵的资源如内存占用等等. 线程在执行过程中与进程还是有区别的.每个独立的线程有一个程序运行的入口.顺序执行序列和程序的出口.但是线程不能够独立执行…
Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发. 什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. so…
在上一篇文章中我们大致浏览了zookeeper的启动过程,并且提到在Zookeeper的启动过程中leader选举是非常重要而且最复杂的一个环节.那么什么是leader选举呢?zookeeper为什么需要leader选举呢?zookeeper的leader选举的过程又是什么样子的?本文的目的就是解决这三个问题. 首先我们来看看什么是leader选举.其实这个很好理解,leader选举就像总统选举一样,每人一票,获得多数票的人就当选为总统了.在zookeeper集群中也是一样,每个节点都会投票,如…
在上一篇,我们了解了zookeeper最基本的配置,也从中了解一些配置的作用,那么这篇文章中,我们将介绍Zookeeper的启动过程,我们在了解启动过程的时候还要回过头看看上一篇中各个配置参数在启动时的位置. Zookeeper的启动入口在org.apache.zookeeper.server.quorum.QuorumPeerMain. 在这个类的main方法里进入了zookeeper的启动过程,首先我们会解析配置文件,即zoo.cfg和myid. 这样我们就知道了dataDir和dataLo…
Zookeeper主要可以干哪些事情 配置管理,名字服务,提供分布式同步以及集群管理.那这些服务又到底是什么呢?我们为什么需要这样的服务?我们又为什么要使用Zookeeper来实现呢,使用Zookeeper有什么优势? 配置管理 在我们的应用中除了代码外,还有一些就是各种配置.比如数据库连接等.一般我们都是使用配置文件的方式,在代码中引入这些配置文件.但是当我们只有一种配置,只有一台服务器,并且不经常修改的时候,使用配置文件是一个很好的做法,但是如果我们配置非常多,有很多服务器都需要这个配置,而…
network 类型 local:通信不跨主机,必须同一网段,主要做单机测试使用: flat:统计可以跨主机,但是需要在同一网段: 每个 flat network 都会独占一个物理网卡 计算节点上 bridge 的名称与控制节点上一致,都是 brqf153b42f-c3,表明是同一个 network vlan: 工作在二层广播域(链路层),二层隔离,跨主机通信,可以不必在同一网段(待确认),同一vlan下的网络,都可以进行通信,但是vlan之间通信必须使用路由器,即:vlan内网络互通,vlan…
基于Jmeter5.2.1 断言之响应断言 响应断言:对服务器的响应接口进行断言校验,来判断接口测试得到的接口返回值是否正确. 测试字段就是指要断言的内容的匹配处. 响应文本:就是响应的body部分: 响应代码:http响应代码,如101,200,302,404,501等.当我们要验证404,501等http响应代码时,需要勾选“ 忽略状态”.因为当http 响应代码为400,500时,jmeter默认这个请求时失败的: 响应信息:响应代码对应得响应信息,例如“OK",区分大小写: 模式匹配规则…
Zookeeper的client是通过Zookeeper类提供的.前面曾经说过,Zookeeper给使用者提供的是一个类似操作系统的文件结构,只不过这个结构是分布式的.可以理解为一个分布式的文件系统.我们可以通过Zookeeper来访问这个分布式的文件系统. Zookeeper的client api给我们提供以下这些API: 1. create 在给定的path上创建节点,这个path就像文件系统的路径,比如/myapp/data/1,在创建节点的时候还可以指定节点的类型:是永久节点,永久顺序节…
什么是zookeeper zookeeper是分布式协调服务,可以在分布式系统中共享配置.协调锁资源.提供命名服务那分布式协调服务又是个什么东西呢?首先我们来看“协调”是什么意思.在一个并发的环境里,我们为了避免多个运行单元对共享数据同时进行修改,造成数据损坏的情况出现,我们就必须依赖像锁这样的协调机制,让有的线程可以先操作这些资源,然后其他线程等待. 为什么要用zookeeper? 在进程内进行协调我们可以使用语言,平台,操作系统等为我们提供的机制.那么如果我们在一个分布式环境中呢?也就是我们…
一.lvm 扩容 问题: 我们阿里云服务器有一个磁盘容量为 1T ,但是最近由于业务的扩增,磁盘容量已经不够了,需要增大磁盘的容量.磁盘挂载在 /home,使用的是 LVM.我们现在需要对磁盘进行扩容. 通过增加新的磁盘,然后将磁盘添加到卷组(VG),然后再将逻辑卷(LV)扩容. 扩容原有的磁盘.然后再将逻辑卷(LV)扩容. 1.1.方式一(增加新的磁盘) 增加新的磁盘和 原有硬盘做了分区基本一致. 实际操作 # 我们增加了一块硬盘,/dev/vdc # 创建分区 [root@djx ~]# f…
一.Android权限背景知识 在Android 6.0之前,所申请的权限只需要在AndroidManifest.xml列举就可以了,从而容易导致一些安全隐患,因此,在Android 6.0时,Google为了更好的保护用户隐私提出了新的权限管理机制,同时将其分为两大类: (1)Normal Permissions Normal Permission一般不涉及用户隐私,是不需要用户进行授权的,比如手机震动,访问网络等. (2)Dangerous Permission Dangerous Perm…
目录 Linux基础知识第八讲,系统相关操作命令 一丶简介命令 2.磁盘信息查看. 3.系统进程 Linux基础知识第八讲,系统相关操作命令 一丶简介命令 时间和日期 date cal 磁盘和目录空间 df du 进程信息 ps top kill 1.时间和日期命令学习. 序号 命令 作用 01 date 查看系统时间 02 cal calendar 查看日历,-y 选项可以查看一年的日历 如下: 2.磁盘信息查看. 序号 命令 作用 01 df -h disk free 显示磁盘剩余空间 02…
原文链接:MySQL学习总结:提问式回顾 undo log 相关知识 1.redo 日志支持恢复重做,那么如果是回滚事务中的操作呢,也会有什么日志支持么? 也回滚已有操作,那么就是想撤销,对应的有撤销日志,也叫做 undo log. undo 日志分为两大类:「TRX_UNDO_INSERT」和「TRX_UNDO_UPDATE」,undo 日志需根据大类分开存储,不能混淆. 「TRX_UNDO_INSERT」对应的是insert语句.「TRX_UNDO_UPDATE」对应的是update语句和d…
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:extensible markup language 定义:用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 解析XML的方式: SAX——Simple API for XML,既是一种接口,也是一个软件包采用的是事件驱动,也就是它解析…
Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4节 透视表和交叉表 第5节 时间序列 第6节 日期的规范.频率以及移动 第7节 时区处理 第8节 时期及算术运算 第9节 重采样及频率转换 第10节 时间序列绘图 groupby 技术 一.实验简介 Python 数据分析(二)需要同学们先行学完 Python 数据分析(一)的课程. 对数据集进行分…
一定要看的 Android 资源目录的相关知识 raw drwable valueshttp://blog.csdn.net/shichexixi/article/details/5985677 http://developer.android.com/guide/topics/resources/index.htmlhttp://developer.android.com/guide/topics/resources/accessing-resources.htmlhttp://develop…
这篇文章主要介绍了学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等),需要的朋友可以参考下     Ruby 这个就不用多说了 RVM 用于帮你安装Ruby环境,帮你管理多个Ruby环境,帮你管理你开发的每个Ruby应用使用机器上哪个Ruby环境.Ruby环境不仅仅是Ruby本身,还包括依赖的第三方Ruby插件.都由RVM管理. Rails 这个也不用多说,著名开发框架.详细看 http://zh.wikipedia.org/wiki/Ruby_on…