H5与Native交互之JSBridge技术

做过混合开发的很多人都知道Ionic和PhoneGap之类的框架,这些框架在web基础上包了一层Native,然后通过Bridge技术使得js可以调用视频、位置、音频等功能。本文就是介绍这层Bridge的交互原理,通过阅读本文你可以了解到js与ios及android底层的通讯原理及JSBridge的封装技术及调试方法。 一、原理篇 下面分别介绍IOS和Android与Javascript的底层交互原理 IOS 在讲解原理之前,首先来了解下iOS的UIWebView组件,先来看一下苹果官方的介绍: You can use the UIWebView class to embed web content in your »

有赞应用层网关剖析

提到应用网关系统,我们脑海中或多或少都会闪过一些关键词,比如统一入口、高并发、大流量、限流、防刷、实时监控等等。 Youzan Application Gateway Center(公司内部称之为Carmen系统),它就是目前有赞的应用层网关系统。每天承载着亿级别的请求量,持续的为开放平台和多个有赞App应用提供着稳定的服务。 今天我们来一起剖析下整个有赞的应用层网关,聊聊网关的当前的概况、整个网关系统的构成、遇到的一些问题的思考和解决方案。当然在进入正题之前,我们不妨先对这个网关系统提出几个问题: 网关在有赞技术生态系统中的使用场景是什么? 一个请求通过网关,它会有多少额外的性能消耗? 网关系统能给我们带来哪些显而易见的好处? »

机器学习搭便车指南–决策树(1)

前言 有赞大数据团队内部建立机器学习系列课程, 旨在结合实际项目重新讲解一遍核心机器学习技术. 我们始终相信技术是推动业务进步的原动力. 我们把我们学习的重点记录下来, 分享给大家, 一同学习. 和普通机器学习教程不同, 除了讲解重要理论之外, 我们结合scikit-learn源码加强对知识的理解. 文章有大量的讨论, 都是我们实践过程中遇到的问题. 1. 决策树的基本概念 我们这里介绍一下一个比较简单的机器学习系统----决策树. 它的概念最容易理解, 因为人类的许多决策实际上就是一个决策树. 通常使用的分类回归树(class and regress tree)是一个二叉树。它的形式一般为: 每个方框代表一个节点. 每个非叶子节点有2个分支, »

记一次基于Robotium改造的测试实践

1、前言 去年年终复盘,测试这边留了两个Action:一是自动化工具推广,提高开发可操作性;二是App自动化稳定性及推广。如何提高可操作性?如何推广?由此便萌生了要做一个专门的App。 今年初,我们上线了买家端入口,产品采用大量H5开发,随着产品迭代的加快以及开发测试比的增加,老的框架已经无法满足新的挑战: 开发自测 前端页面变动频繁(目前来看这点还好) App上各类组件的测试 获取测试覆盖率 无论如何,对于本篇读者我都默认你已经会了一点Android测试开发的基础。本篇不谈论做UI自动化的投入产出比,而是对Android测试技术的研究和一些想法,希望能给到测试开发们工作上的一些帮助。 2、 »

TCP网络编程杂谈

作为一名IT工程师,网络通信编程相信都会接触到,比如Web开发的HTTP库,Java中的Netty,或者C/C++中的Libevent,Libev等第三方通信库,甚至是直接使用Socket API,但是很多程序员都仅限于使用,对于使用的方式是否合理并没有特别深的理解,比如有一股脑的使用线程池解决问题的(虽然大部分情况采用多线程方案不会有什么问题,但是编程复杂度比起单线程提升了很多,线程开的太多也会导致切换过于频繁,性能未必有太大提升),也有始终用一条线程处理所有业务的,然后上线之后经常出现各种服务响应慢等问题。 在介绍TCP的网络通信编程时,不得不提到同步,异步,阻塞,非阻塞这几个概念,C++系和Java系沟通网络IO相关时, »