Jenkins 是一款优秀的开源自动化服务器,允许持续集成和持续交付。Jenkins 支持数百个插件,以支持项目的构建、部署和自动化。
Jenkins 官网:https://jenkins.io/
「持续集成(Continuous Integration)」、「持续交付(Continuous Delivery)」和「持续部署(Continuous Deployment)」这三个概念的解释。
持续集成 强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
持续交付 在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。
持续部署 则是在持续交付的基础上,把部署到生产环境的过程自动化。
Jenkins 基础环境Jenkins 使用 Java 编写,支持所有主流操作系统。
本文仅介绍在 Windows 操作系统下 Jenkins 单机本地部署。
首先应配置 Java 环境,然后部署 Tomcat 服务。
然后即可安装 Jenkins 应 ...
简单地记录下 Android 移动端直播技术实现方法。
目前对移动端直播技术实现方法了解还不够全面,本文仅介绍一种基于 RTMP 协议的在线直播实现方法。
直播系统可以简单地分为三部分:服务端、推流端、拉流端。
简单的直播系统1、服务端:SRS
SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。
源代码:https://github.com/ossrs/srs
部署方法:https://github.com/ossrs/srs/wiki/v1_CN_SampleRTMP
2、推流端:OBS Studio
OBS Studio 是一款优秀的开源直播推流软件,支持 Windows, Mac or Linux 操作系统。
官网:https://obsproject.com/
3、拉流端:VLC media player
VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。
官网:http://www.videolan.org/vlc/
其实这里好多视频播放器都支持的。
移动端实现方 ...
Ubuntu 16.04 LTS 系统下编译 ijkplayer Android 源码。
前面介绍过 ijkplayer 的使用,要想支持更多的特性,还是需要编译下源码的。
本文编译源码的主要目的是支持更多的格式,以及支持 HTTPS 链接。
NDK 版本:android-ndk-r10e
ijkplayer 仓库地址 https://github.com/Bilibili/ijkplayer
环境准备0、最好还是在 Ubuntu 环境下编译,在 Windows 下编译可以参考
https://blog.csdn.net/u010072711/article/details/51354834
并不推荐此方法。
1、然后需要有 Java 及 Android 环境,可参考
https://www.wshunli.com/posts/80d94eb7.html
2、编译之前,还要准备一些工具
sudo apt-get updatesudo apt-get install gitsudo apt-get install yasm
源码编译1、从 GitHub 拉取源码,并打开源码目录
g ...
EXOPlayer 是Google 官方开源的一款 Android 播放器,支持本地或者网络的音频和视频播放,支持 DASH、HLS 等流媒体协议,但是不支持 rtsp、rtmp 协议。
EXOPlayer 仓库地址:https://github.com/google/ExoPlayer
Google 的亲儿子,还是要学习下啊。
引入依赖引入依赖可以一次性全部引入所有依赖:
dependencies { implementation 'com.google.android.exoplayer:exoplayer:2.X.X'}
也可以根据需要引入不同模块。
dependencies { implementation 'com.google.android.exoplayer:exoplayer-core:2.X.X' implementation 'com.google.android.exoplayer:exoplayer-dash:2.X.X' implement ...
ijkplayer 是 Bilibili 基于 ffmpeg 开发并开源的轻量级视频播放器,支持播放本地网络视频,也支持流媒体播放。
支持 Android 和 iOS 操作系统,所以文章起名还是有点瑕疵的,哈哈哈 。
ijkplayer 仓库地址:https://github.com/Bilibili/ijkplayer
目前 Android 主流的视频播放器是 ijkplayer、ExoPlayer、MediaPlayer。
其中 MediaPlayer 在前面介绍过了:《第一行代码》读书笔记(七) | CirGIShttps://www.wshunli.com/posts/941f84ed.html
接下来两篇文章会分别介绍 ijkplayer 和 ExoPlayer 的使用,也为移动端直播技术打下基础。
引入依赖根据需要引入依赖,根据建议引入 java 、 armv7a 两种兼容性基本满足要求。
dependencies { # required, enough for most devices. compile 'tv.danmaku.ijk ...
【现已公开】记录在线直播技术及其实时视频流可视化方法(前端)。
前面写的在三维模型上贴视频的算法要真正应用了,视频使用的是萤石直播的在线视频流,中间遇到了一些问题记录下。
在线直播技术直播中常用到的流媒体协议有 rtmp、http、hls、rtsp 。
根据其数据分段可分为两类,以 rtmp 为代表的连续流协议,以 hls 为代表的切片文件协议。
这里贴一些直播的真实地址:
哔哩哔哩 https://720759109.cloudvdn.com/live-qn/553668/live_50329118_9516950.flv
斗鱼直播 https://txy.live-play.acgvideo.com/live-txy/124776/live_352577_9496178.flv
萤石直播(移动端)http://hzhls07.ys7.com:7891/hcnp/598370938_1_1_1_0_cas.ys7.com_6500.m3u8
为了防盗链,这些地址是会变化的,不过我们可以看到 flv 后缀,也就是连续流的协议比较多。
具体详细区别可以查阅参考资料。
可视化技术实时视 ...
有很多人觉得自己比较菜,就会称自己为 Android UI 工程师,非常有意思。
其实 Android UI 体系内容也是比较多的,不仅仅是指 UI 控件的使用,那也太基础了。
本文主要介绍 Android View 基础,内容可能后面会逐步完善。
View 介绍View 是 Android 中所有控件的基类,同时 ViewGroup 也继承自 View 。
所以 View 本身可以是一个控件也可以是多个控件,基本上我们平常用到控件都继承自 View ,是一种树状结构。
View 的位置参数在 Android 中有两种类型的坐标系,分别是 Android 坐标系和视图坐标系。其实是相对而言的,
Android 坐标系是相对屏幕原点(左上角)而言,视图坐标系是相对父类容器(ViewGroup)而言的。
在 Android 中,View 的位置由 top、left、right、bottom 四个属性确定,注意都是相对父容器而言。
View 提供的 API 分别获取对应的数值。
getTop():获取 View 顶边到其父布局顶边的距离
getLeft():获取 View 左边 ...
作为地信、遥感等专业的同学,下载线划图、遥感影像应该都接触过,以前很多群发广告都看不惯,借这次下载高程数据的机会,总结下地图下载器,收费部分的搜索下就懂了。。
本文仅介绍平常接触到的地图下载器,用作学习和研究目的,不提供收费软件破解文件下载。
本文标题来源:那些年,我们用过的地图下载器 - 我也是个傻瓜 - 博客园https://www.cnblogs.com/liweis/p/4575656.html
1、晟兴地球 SXEarth 是一款永久免费的 3DGIS 平台软件。
支持在线 Google Earth 卫星影像(无水印无偏移)下载,支持拼接为tif,支持模拟飞行,支持场景编辑。
下载地址:http://www.sxsim.com/
支持的在线地图特别多,平常基本上用这个就够了。
2、LocaSpace Viewer 免费、开放的三维数字地球
多种互联网地图集成、影像、地形数据下载、倾斜数据极速浏览、二三维地理、模型数据、量测和空间分析、软件特色应用。
下载地址:http://www.locaspace.cn/LSV.jsp
支持的在线底图不是很多,但是在三维场景尤其是倾 ...
Socket 也称为 “嵌套字”,是计算机网络中的概念,分为流式嵌套字(TCP)和用户数据报嵌套字(UDP)。
不同用户进程通过 Socket 进行通信也是一种 IPC 方式。
在使用 Socket 通信前应在 AndroidManifest 中声明权限:
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
1、服务端
我们需要一个 Service 作为服务端,声明如下:
<service android:name=".socket.SocketService" android:enabled="true" android:exported="true" android:process=":remot ...
ContentProvider 是 Andorid 中专门用于不同应用间进行数据共享的方式,底层实现也是 Binder 。
前面在 《第一行代码》读书笔记(五)– 应用组件之 ContentProvider 介绍过,这里就不再详细记录了。
首先继承 ContentProvider 类实现自己的 Provider :
public class BookProvider extends ContentProvider { private static final String TAG = "BookProvider"; public static final String AUTHORITY = "com.wshunli.ipc.demo.book.provider"; public static final Uri BOOK_CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/book"); pu ...








