- rtsp服务器性能测试工具,RTSP性能优化 · ZLMediaKit/ZLMediaKit Wiki · GitHub
小野的乐趣生活
rtsp服务器性能测试工具
提示最新的性能参数,请参考#406GB28181的推流性能测试,请参考:#961概述在最近ZLMediaKit的一次提交中,我对rtsp服务器的性能做了一次改进,本次改进中,核心的思想是:缓存时间戳相同的RTP包(意味着是同一帧数据),作为一个数据包进行分发。理论上,这样做可以大大减少多线程分发时线程切换次数、多余发送逻辑代码的执行以及系统调用次数,预期在不增加播放延时的情况下能大幅提高rtsp服
- Linux/CentOS安装ZLMediaKit流媒体服务
linuxcentos
一、centoslinux下安装ffmpeg1、下载解压wgethttp://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gztar-zxvfffmpeg-3.1.tar.gz2、进入解压后目录,输入如下命令/usr/local/ffmpeg为自己指定的安装目录cdffmpeg-3.1./configure--prefix=/usr/local/ffmpegmak
- RK3568笔记十二:Zlmedia拉流显示测试
殷忆枫
RK3568学习笔记笔记
若该文为原创文章,转载请注明原文出处。Zlmediakit功能很强大,测试一下拉流,在通过解码显示。一、环境1、平台:rk35682、开发板:ATK-RK3568正点原子板子3、环境:buildroot测试的代码在GitHub-airockchip/rknpu2main_video.cc主要功能是通过Zlmedia拉取RTSP流,并解码,然后重新编码保存成视频,所以直接在例子上修改程序,增加DRM
- ZLMediaKit 切换用于源的RingBuffer
mo4776
ZLMediaKit源码分析网络音视频架构
背景有这样一个需求,基于webrtc实现的web实时流播放器,有4分屏,最大同时显示4个图像rtsp摄像头的图像。布局是固定的4分屏,但是分屏所显示的摄像头图像可以变化。那么把它抽象为技术实现,就是web同时会与ZLMediaKit建立4个pc对象,这个4个pc对象建立后,就不会销毁(直到web播放器关闭),由ZLMediaKit根据web请求的rtsp摄像头标识,将不同摄像头的流转给web。在Z
- 通过ZLMediaKit来说说流媒体服务的实现
mo4776
ZLMediaKit源码分析网络c++音视频
文章目录实现流媒体服务的三大基础事件循环并发模型错误处理流媒体服务的分类实现流媒体服务的三大基础事件循环。并发模型。错误处理。这是也是实现各种C++服务的基础,业务通过这三大基础进行构建。事件循环EventLoop,它通过事件驱动程序的流程,所处理的是IO和定时器事件。它的实现都是基于IO复用机制,比如Linux的epoll。现在有很多开源事件库实现,比如libevet,libuv,asio等,不
- ffmpeg rtsp推流
浪子寒烟
ffmpeg
学习ffmpeg流媒体,需要搭建流媒体服务器,本文用ZLMediaKit搭建rtsp服务器环境:Ubuntu16.04.71、代码下载gitclone--depth1https://gitee.com/xia-chu/ZLMediaKit.git2、下载组件,网友们都说非常重要cdZLMediaKit/gitsubmoduleupdate--init下载了3rdpart3、查看gcc版本:根据官网
- 【android】对于google-webrtc的性能中, memory leak
dualven_in_csdn
音视频androidandroidwebrtcjava
目录zlmediakit->webrtcplay->appwebrtcutil1/3测试程序等zlmediakit->webrtcplay->app编译sdk32有时候会从开始新增5M,就稳定在一个值了webrtcutil1/3测试程序等编译sdk30
- [ubuntu] git clone 报错fatal: unable to access ‘https://xxx.git/‘ 的解决方法
tianxinw
ubuntugitlinux
报错如下:看到有博主说执行命令:gitclonehttps://github.com/ZLMediaKit/ZLMediaKit.git改为gitclonegit/github.com/ZLMediaKit/ZLMediaKit.git执行之后报错:解决办法:执行如下命令gitconfig--globalurl.“https://github.com/ZLMediaKit/ZLMediaKit.g
- 使用AKStream对接gb28181
.net亦洪
服务器视频监控
优点:功能比较多,C#开发的,容易修改,内嵌入了zlmk流媒体服务品,启动简单缺点:sip对摄像头兼容还有问题,大华接入非常不稳定,注册等待时间久,对海康是正常,占用内存相对m7s大很多部署,代码git下载回来后,用visualstuio进行编译打包为两个目录AKStreamKeeperAKStreamWeb上传到ubuntu安装好zlmediaKit安装方法见官方安装ffmpegAKStream
- 新手使用wvp-pro和ZLMediaKit的菜鸟说明(手把手教)
houge101
wvpzlmzlmediaserver
对于wvp-pro的使用,很多大佬都是白嫖菜鸟党,很多都第一次使用wvp,甚至第一次接触国标,连国标最基本流程都不清楚。所以写此文档以供各位菜鸟大佬点评指正看此文档前提:(下文ZLMediaKit简称zlm)第一:先看三遍zlm和wvp的wiki!!!先看三遍zlm和wvp的wiki!!!先看三遍zlm和wvp的wiki!!!wvp的wiki:WVP-PRO文档zlm的wiki:https://g
- 【2023.7】ubuntu成功搭建最新wvp-pro和ZLMediaKit
computer_vision_chen
流媒体ubuntulinux流媒体ZLMediaKitwvp-prowvp
apt-getinstall-yopenjdk-11-jregitmavennodejsnpm教程下载zlm和wvp,安装mysql,redis等请看如下文章https://blog.51cto.com/u_16085888/62188622023年7月新版本的wvp,在数据库和配置操作与上方文章不同,正确配置内容如下:导入wvp中的数据库按教程中的步骤创建数据库之后不要按教程在MySql中创建一
- Ubuntu搭建国标平台wvp-GB28181-pro
ketaotech
音视频编解码和流媒体GB28181wvp-GB28181-pro
目录简介安装和编译1.查看操作系统信息2.安装最新版的nodejs3.安装java环境4.安装mysql5.安装redis6.安装编译器7.安装cmake8.安装依赖库9.编译ZLMediaKit9.1.编译结果说明10.编译wvp-GB28181-pro10.1.编译结果说明配置1.WVP-PRO配置文件1.1.Mysql数据库配置1.2.REDIS数据库配置1.3.配置服务启动端口1.4.配置
- Qt采集本地摄像头推流成rtsp/rtmp(可网页播放/支持嵌入式linux)
feiyangqingyun
Qt/C++项目作品qtQt推流Qt本地设备采集推流Qt本地摄像头采集
一、功能特点支持各种本地视频文件和网络视频文件。支持各种网络视频流,网络摄像头,协议包括rtsp、rtmp、http。支持将本地摄像头设备推流,可指定分辨率和帧率等。支持将本地桌面推流,可指定屏幕区域和帧率等。自动启动流媒体服务程序,默认mediamtx(原rtsp-simple-server),可选用srs、EasyDarwin、LiveQing、ZLMediaKit等。可实时切换预览视频文件,
- ARM平台移植ZLMediaKit
小宇宙L
armlinux
ZLMediaKit是一套高性能的流媒体服务框架,目前支持rtmp、rtsp、hls、http-flv等流媒体协议,支持linux、macos、windows三大PC平台和ios、android两大移动端平台。host主机:ubuntu18.04移植平台:rk3568交叉编译链版本:gccversion9.3.0https://github.com/ZLMediaKit/ZLMediaKit1,下
- RK3568笔记十:Zlmediakit交叉编译
殷忆枫
RK3568学习笔记笔记
若该文为原创文章,转载请注明原文出处。编译Zlmediakit的主要目的是想实现在RK3568拉取多路RTPS流,并通过MPP硬解码,DRM显示出来。为了实现拉取多路流选择了Zlmediakit,使用FFMEPG也可以,在RV1126上已经验证了可行性。一、环境1、移植平台:rk35682、开发板:ATK-RK3568正点原子板子3、环境:buildroot使用的是正点原子团队提供的虚拟机,通过了
- 重磅级视频直播推流服务,支持H265——Go2RTC
webmote
C#入门音视频ffmpeg转码服务流媒体h265
欢迎点赞:收藏⭐留言如有错误敬请指正,赐人玫瑰,手留余香!本文作者:由webmote原创作者格言:无尽的折腾后,终于又回到了起点,工控,我来了!序言最近在研究推流服务器,部署过SRS、ZLMediaKit等服务,从2者的使用来看,SRS相对表现优异,支持众多的媒体格式!然而,强中自有强中手,在Go2RTC的面前,忽然感觉他们都不香了!这款新进开源的服务,支持跨平台部署,占用资源极少,并且配置简单,
- 开源28181协议视频平台搭建流程
蒙奇·D·路飞-
音视频
最近项目中用到流媒体平台,java平台负责信令部分,c++平台负责流媒体处理,找了评分比较好的开源项目https://gitee.com/pan648540858/wvp-GB28181-pro流媒体服务基于c++写的https://github.com/ZLMediaKit/ZLMediaKit说明文档:https://github.com/ZLMediaKit/ZLMediaKit/wiki/
- 流媒体服务器ZLMediaKit与FFmpeg
十年编程老舅
音视频开发服务器ffmpegC++音视频开发音视频开发音视频ZLMediaKit流媒体服务器
流媒体服务器ZLMediaKit与FFmpegoverview关键字:ZLMediaKit、FFmpeg、srt、vlc如果想快速拥有自己的流媒体服务器,那么可以使用开源项目自己搭建。开源的流媒体服务器,在国内,GitHubstar数量比较高的:srs和ZLMediaKit。因为在工作中使用的是Mediakit,因此就介绍此开源流媒体服务器。本文就说一下通过ffmpeg向mediakit推流,使用
- C++流媒体服务器 ZLMediaKit框架ZLToolKit源码解读
夏天匆匆2过
C/C++音视频c++服务器开发语言c语言linux
ZLMediaKit是国人开发的开源C++流媒体服务器,同SRS一样是主流的流媒体服务器。ZLToolKit是基于C++11的高性能服务器框架,和ZLMediaKit是同一个作者,ZLMediaKit正是使用该框架开发的。ZLMediaKit开源地址:https://github.com/ZLMediaKit/ZLMediaKitZLToolKit开源地址:https://github.com/Z
- ffmpeg测试本地文件推流报错 Could not find a valid device can‘t configure encoder解决办法
艾克华
ffmpegffmpeg
这里写目录标题./configure--enable-shared编译想264报错Foundnoassembler[root@VM-16-6-centos~]#ffmpeg-re-i"/root/ZLMediaKit/release/linux/Debug/www/record/rtp/0BEBE85B/2021-11-10/21-33-37.mp4"-vcodech264-acodecaac-f
- vc2017编译从github网站上下载的源码
pkowner
c++
以ZLmediakit为例1.下载软件cmakehttps://github.com/Kitware/CMake/releases/download/v3.20.5/cmake-3.20.5-windows-x86_64.zipMicrosoftVisualStudiohttps://my.visualstudio.com/Downloads?q=visual%20studio%202017&wt
- ZLMediaKit的转流流程(二)
mo4776
ZLMediaKit源码分析c++音视频架构
在前面提到的转流流程还有一个细节:推流端和拉流端如果协议相同,则没有组视频帧的过程,而是直接转发。如果不相同,则有视频组帧,再打包的过程。直接转发这里以Rtmp推流端为例子。在RtmpSession中,有一个_push_src的成员变量,它是RtmpMediaSourceImp类型,作为一个Rtmp的源。在RtmpMediaSourceImp中有MultiMediaSourceMuxer成员变量_
- 优秀的流媒体服务器ZLMediaKit
mo4776
ZLMediaKit源码分析c++音视频
ZLMediaKit是国人写的优秀的流媒体服务器,它支持的协议多,稳定,性能优秀。它的可以作为音视频开发的百宝箱,特别是对协议的实现,可以直接复用。它适用于视频监控系统的转流服务或作为RTC系统的边缘媒体网关。而不太适合于高实时要求的RTCSFU转流服务。它非常值得学习:代码结构清晰,各种协议都是统一的实现思路,代码结构大致相同,非常易于阅读。对IO及线程模型设计的简明高效。对流媒体服务中的要点:
- ubuntu22.04搭建RTSP服务器
waketzheng
服务器运维
大致命令如下:
[email protected]:ZLMediaKit/ZLMediaKit.gitsudoapt-getinstallbuild-essentialsudoapt-getinstallcmake#除了openssl,其他其实都可以不安装sudoapt-getinstalllibssl-devsudoapt-getinstalllibsdl-devsudo
- ffmpeg推流本地MP4 h264视频文件到rtsp服务器,rtsp客户端NVDECODE无法解码
泰勒朗斯
FFmpeg
问题描述:最近在音视频遇到一个问题,因为需要,必须采用英伟达的NVDEC解码接受到的rtsp流,刚开始从摄像头拉流,解码非常正常,后来摄像头没了,就采用ffmpeg+ZLMediaKit进行rtsp推流,然后拉流解码,但是但是,结果突然就无法解码了。解决:首先想到的第一个是推的流有问题,结果用VLC又能打开。第二个想到的是bsf的h264_mp4toannexb转换有误,参考:https://gi
- wvp-GB28181-pro 2.0+ZLMediaKit 使用Dockerfile制作镜像以及部署【CentOS7】
浩瀚蓝天dep
GB28181GB28181ZLMedia
说明部署gb28181和zlm主要需要构建两个镜像,第一个为基础镜像,以centos7为基础构建新的基础镜像base.Dockerfile,第二个镜像为服务部署镜像server.Dockerfile,以第一个镜像base.Dockerfile构建出的镜像为基础镜像进行构建整个基础镜像的构建全部手动编译安装需要的依赖工具基础镜像版本:centos:centos7.9.2009JDK版本:17MAVE
- Zlmediakit 接收到 rtc包后的处理流程
随风漂荡->逆风飞翔
实时音视频zlmediakitwebrtc
客户端通过rtc推流(视频为h264)到ZlmediaKit时,ZlmediaKit收到包后,到进行rtp包排序的流程堆栈,方便了解逻辑#0mediakit::RtspMediaSourceImp::onWrite(this=0x7fffd0009d68,rtp=...,key_pos=false)at/root/src/tantao/cmds_master/cmds/src/Rtsp/RtspM
- ZLMediaKit学习(一):Window环境下推拉流
Mikite
原创学习linux运维
ZLMediaKit是一套高性能的流媒体服务框架,目前支持rtmp/rtsp/hls/http-flv流媒体协议。该项目已支持linux、macos、windows、ios、android平台,支持的编码格式包括H264、AAC、H265(仅rtsp支持H265);采用的模型是多线程IO多路复用非阻塞式编程(linux下采用epoll、其他平台采用select)。该框架基于C++11开发,避免使用
- ZLMediaKit 编译以及测试(Centos 7.9 环境)
bacawa
视频流处理centosZLMediaKit流媒体服务器
文章目录一、前言二、编译器1、获取代码2、编译器2.1编译器版本要求2.2安装编译器3、安装cmake4、依赖库4.1依赖库列表4.2安装依赖库4.2.1安装libssl-dev和libsdl-dev4.2.2安装ffmpeg-devel依赖和ffmpeg依赖三、构建和编译项目(启用WebRTC功能)1、openssl安装(openssl版本要求1.1以上)2、libsrtp安装3、编译ZLM四、
- zlmediakit 代码github地址下载
三希
gitclone/gitclone.com/
代码地址GitHub-ZLMediaKit/ZLMediaKit:WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRTserverandclientframeworkbasedonC++11利用工具下载下载代码地址https://gitcl
- jvm调优总结(从基本概念 到 深度优化)
oloz
javajvmjdk虚拟机应用服务器
JVM参数详解:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。
- 【Scala十六】Scala核心十:柯里化函数
bit1129
scala
本篇文章重点说明什么是函数柯里化,这个语法现象的背后动机是什么,有什么样的应用场景,以及与部分应用函数(Partial Applied Function)之间的联系 1. 什么是柯里化函数
A way to write functions with multiple parameter lists. For instance
def f(x: Int)(y: Int) is a
- HashMap
dalan_123
java
HashMap在java中对很多人来说都是熟的;基于hash表的map接口的非同步实现。允许使用null和null键;同时不能保证元素的顺序;也就是从来都不保证其中的元素的顺序恒久不变。
1、数据结构
在java中,最基本的数据结构无外乎:数组 和 引用(指针),所有的数据结构都可以用这两个来构造,HashMap也不例外,归根到底HashMap就是一个链表散列的数据
- Java Swing如何实时刷新JTextArea,以显示刚才加append的内容
周凡杨
java更新swingJTextArea
在代码中执行完textArea.append("message")后,如果你想让这个更新立刻显示在界面上而不是等swing的主线程返回后刷新,我们一般会在该语句后调用textArea.invalidate()和textArea.repaint()。
问题是这个方法并不能有任何效果,textArea的内容没有任何变化,这或许是swing的一个bug,有一个笨拙的办法可以实现
- servlet或struts的Action处理ajax请求
g21121
servlet
其实处理ajax的请求非常简单,直接看代码就行了:
//如果用的是struts
//HttpServletResponse response = ServletActionContext.getResponse();
// 设置输出为文字流
response.setContentType("text/plain");
// 设置字符集
res
- FineReport的公式编辑框的语法简介
老A不折腾
finereport公式总结
FINEREPORT用到公式的地方非常多,单元格(以=开头的便被解析为公式),条件显示,数据字典,报表填报属性值定义,图表标题,轴定义,页眉页脚,甚至单元格的其他属性中的鼠标悬浮提示内容都可以写公式。
简单的说下自己感觉的公式要注意的几个地方:
1.if语句语法刚接触感觉比较奇怪,if(条件式子,值1,值2),if可以嵌套,if(条件式子1,值1,if(条件式子2,值2,值3)
- linux mysql 数据库乱码的解决办法
墙头上一根草
linuxmysql数据库乱码
linux 上mysql数据库区分大小写的配置
lower_case_table_names=1 1-不区分大小写 0-区分大小写
修改/etc/my.cnf 具体的修改内容如下:
[client]
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/va
- 我的spring学习笔记6-ApplicationContext实例化的参数兼容思想
aijuans
Spring 3
ApplicationContext能读取多个Bean定义文件,方法是:
ApplicationContext appContext = new ClassPathXmlApplicationContext(
new String[]{“bean-config1.xml”,“bean-config2.xml”,“bean-config3.xml”,“bean-config4.xml
- mysql 基准测试之sysbench
annan211
基准测试mysql基准测试MySQL测试sysbench
1 执行如下命令,安装sysbench-0.5:
tar xzvf sysbench-0.5.tar.gz
cd sysbench-0.5
chmod +x autogen.sh
./autogen.sh
./configure --with-mysql --with-mysql-includes=/usr/local/mysql
- sql的复杂查询使用案列与技巧
百合不是茶
oraclesql函数数据分页合并查询
本片博客使用的数据库表是oracle中的scott用户表;
------------------- 自然连接查询
查询 smith 的上司(两种方法)
&
- 深入学习Thread类
bijian1013
javathread多线程java多线程
一. 线程的名字
下面来看一下Thread类的name属性,它的类型是String。它其实就是线程的名字。在Thread类中,有String getName()和void setName(String)两个方法用来设置和获取这个属性的值。
同时,Thr
- JSON串转换成Map以及如何转换到对应的数据类型
bijian1013
javafastjsonnet.sf.json
在实际开发中,难免会碰到JSON串转换成Map的情况,下面来看看这方面的实例。另外,由于fastjson只支持JDK1.5及以上版本,因此在JDK1.4的项目中可以采用net.sf.json来处理。
一.fastjson实例
JsonUtil.java
package com.study;
impor
- 【RPC框架HttpInvoker一】HttpInvoker:Spring自带RPC框架
bit1129
spring
HttpInvoker是Spring原生的RPC调用框架,HttpInvoker同Burlap和Hessian一样,提供了一致的服务Exporter以及客户端的服务代理工厂Bean,这篇文章主要是复制粘贴了Hessian与Spring集成一文,【RPC框架Hessian四】Hessian与Spring集成
在
【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中
- 【Mahout二】基于Mahout CBayes算法的20newsgroup的脚本分析
bit1129
Mahout
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information re
- nginx三种获取用户真实ip的方法
ronin47
随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能还加上了CDN加速,但是随之也遇到一个问题:nginx如何获取用户的真实IP地址,如果后端是apache,请跳转到<apache获取用户真实IP地址>,如果是后端真实服务器是nginx,那么继续往下看。
实例环境: 用户IP 120.22.11.11
- java-判断二叉树是不是平衡
bylijinnan
java
参考了
http://zhedahht.blog.163.com/blog/static/25411174201142733927831/
但是用java来实现有一个问题。
由于Java无法像C那样“传递参数的地址,函数返回时能得到参数的值”,唯有新建一个辅助类:AuxClass
import ljn.help.*;
public class BalancedBTree {
- BeanUtils.copyProperties VS PropertyUtils.copyProperties
诸葛不亮
PropertyUtilsBeanUtils
BeanUtils.copyProperties VS PropertyUtils.copyProperties
作为两个bean属性copy的工具类,他们被广泛使用,同时也很容易误用,给人造成困然;比如:昨天发现同事在使用BeanUtils.copyProperties copy有integer类型属性的bean时,没有考虑到会将null转换为0,而后面的业
- [金融与信息安全]最简单的数据结构最安全
comsci
数据结构
现在最流行的数据库的数据存储文件都具有复杂的文件头格式,用操作系统的记事本软件是无法正常浏览的,这样的情况会有什么问题呢?
从信息安全的角度来看,如果我们数据库系统仅仅把这种格式的数据文件做异地备份,如果相同版本的所有数据库管理系统都同时被攻击,那么
- vi区段删除
Cwind
linuxvi区段删除
区段删除是编辑和分析一些冗长的配置文件或日志文件时比较常用的操作。简记下vi区段删除要点备忘。
vi概述
引文中并未将末行模式单独列为一种模式。单不单列并不重要,能区分命令模式与末行模式即可。
vi区段删除步骤:
1. 在末行模式下使用:set nu显示行号
非必须,随光标移动vi右下角也会显示行号,能够正确找到并记录删除开始行
- 清除tomcat缓存的方法总结
dashuaifu
tomcat缓存
用tomcat容器,大家可能会发现这样的问题,修改jsp文件后,但用IE打开 依然是以前的Jsp的页面。
出现这种现象的原因主要是tomcat缓存的原因。
解决办法如下:
在jsp文件头加上
<meta http-equiv="Expires" content="0"> <meta http-equiv="kiben&qu
- 不要盲目的在项目中使用LESS CSS
dcj3sjt126com
Webless
如果你还不知道LESS CSS是什么东西,可以看一下这篇文章,是我一朋友写给新人看的《CSS——LESS》
不可否认,LESS CSS是个强大的工具,它弥补了css没有变量、无法运算等一些“先天缺陷”,但它似乎给我一种错觉,就是为了功能而实现功能。
比如它的引用功能
?
.rounded_corners{
- [入门]更上一层楼
dcj3sjt126com
PHPyii2
更上一层楼
通篇阅读完整个“入门”部分,你就完成了一个完整 Yii 应用的创建。在此过程中你学到了如何实现一些常用功能,例如通过 HTML 表单从用户那获取数据,从数据库中获取数据并以分页形式显示。你还学到了如何通过 Gii 去自动生成代码。使用 Gii 生成代码把 Web 开发中多数繁杂的过程转化为仅仅填写几个表单就行。
本章将介绍一些有助于更好使用 Yii 的资源:
- Apache HttpClient使用详解
eksliang
httpclienthttp协议
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会
- zxing二维码扫描功能
gundumw100
androidzxing
经常要用到二维码扫描功能
现给出示例代码
import com.google.zxing.WriterException;
import com.zxing.activity.CaptureActivity;
import com.zxing.encoding.EncodingHandler;
import android.app.Activity;
import an
- 纯HTML+CSS带说明的黄色导航菜单
ini
htmlWebhtml5csshovertree
HoverTree带说明的CSS菜单:纯HTML+CSS结构链接带说明的黄色导航
在线体验效果:http://hovertree.com/texiao/css/1.htm代码如下,保存到HTML文件可以看到效果:
<!DOCTYPE html >
<html >
<head>
<title>HoverTree
- fastjson初始化对性能的影响
kane_xie
fastjson序列化
之前在项目中序列化是用thrift,性能一般,而且需要用编译器生成新的类,在序列化和反序列化的时候感觉很繁琐,因此想转到json阵营。对比了jackson,gson等框架之后,决定用fastjson,为什么呢,因为看名字感觉很快。。。
网上的说法:
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。
- 基于Mybatis封装的增删改查实现通用自动化sql
mengqingyu
DAO
1.基于map或javaBean的增删改查可实现不写dao接口和实现类以及xml,有效的提高开发速度。
2.支持自定义注解包括主键生成、列重复验证、列名、表名等
3.支持批量插入、批量更新、批量删除
<bean id="dynamicSqlSessionTemplate" class="com.mqy.mybatis.support.Dynamic
- js控制input输入框的方法封装(数字,中文,字母,浮点数等)
qifeifei
javascript js
在项目开发的时候,经常有一些输入框,控制输入的格式,而不是等输入好了再去检查格式,格式错了就报错,体验不好。 /** 数字,中文,字母,浮点数(+/-/.) 类型输入限制,只要在input标签上加上 jInput="number,chinese,alphabet,floating" 备注:floating属性只能单独用*/
funct
- java 计时器应用
tangqi609567707
javatimer
mport java.util.TimerTask; import java.util.Calendar; public class MyTask extends TimerTask { private static final int
- erlang输出调用栈信息
wudixiaotie
erlang
在erlang otp的开发中,如果调用第三方的应用,会有有些错误会不打印栈信息,因为有可能第三方应用会catch然后输出自己的错误信息,所以对排查bug有很大的阻碍,这样就要求我们自己打印调用的栈信息。用这个函数:erlang:process_display (self (), backtrace).需要注意这个函数只会输出到标准错误输出。
也可以用这个函数:erlang:get_s