0%

很多时候系统自带的View组件并不能满足我们的需求,当我们需要特定的显示风格,处理特有的用户交互,封装一个高内聚的视图组件,就需要用到Android给我们提供的自定义View的能力。有了自定义View,我们可以针对特定的应用场景开发出适合该场景的View组件,比如自定义的下拉刷新组件,自定义的进度条组件等等。本片文章主要介绍自定义View的基础知识,为自定义View做充足的准备。

在前面一篇文章中 《流媒体协议之HLS》 介绍了什么是流媒体,什么是HLS以及分析了m3u8文件格式内容的含义。在本篇文章中更多的是实际操作,搭建一个流媒体服务,使用ffmpeg切割大的视频文件,使用ffmpeg切割大的视频文件并加密,使用ffmpeg整合视频片断,以及在代码中如何实现根据m3u8下载并解码对应的媒体文件。演示的环境是Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-62-generic x86_64)、nginx-1.19.6、gcc version 9.3.0、GNU Make 4.2.1O、OpenSSL 1.1.1f

流媒体(Streaming media)是指将一连串的多媒体资料压缩后,经过互联网分段发送资料,在互联网上即时传输影音以供观赏的一种技术与过程,此技术使得资料数据包得以像流水一样发送,如果不使用此技术,就必须在使用前下载整个媒体文件。实时流媒体是指互联网内容的实时传输,就像电视直播通过电视信号在电波上播放内容一样。互联网流媒体直播需要一种形式的源媒体(如摄像机、音频接口、屏幕捕捉软件)、将内容数字化的编码器、媒体发布者和内容传输网络来分发和传递内容。

2021已经到来了15天了,时间过得真快呀。因为前两周实在是太忙了,所以在这个周末才打算写一篇博客回顾我的2020年,2020其实事情挺多的,而且在我自己看来,也是进步很大的一年,在多年以后看到这篇文章,也许就像品尝一坛老酒,清香醇厚。以后每一年我都会有自己的年终总结,回顾这一年发生的所有对于我来讲比较重要的事情,就像小学的时候写作文,像一本流水账,越清晰的流水账越历久弥新。

Repo 是建立在Git上的一个多仓库管理工具,可以组织多个仓库的上传和下载。Repo是Google用Python脚本写的调用Git的脚本,主要帮助我们管理多个Git存储仓库,将其上传到我们的版本控制系统,并自动执行Android开发工作流程的某些部分。Repo并不是要取代Git,而是为了在Android环境下更加方便的使用Git。下面来看看Repo的具体用法吧!

IRC是 Internet Relay Chat的英文缩写,中文一般称为互联网中继聊天协议,这是一个基于TCP的应用层协议。它由芬兰人亚尔科·欧伊卡里宁于1988年首创的一种网络聊天协议。经过十年的发展,目前世界上有超过60个国家提供了IRC的服务。

OkHttp是Android中包含的功能强大的HTTP客户端,此框架平时用的还挺多的,但是今天的主角是OkHttp的低层IO库——Okio,Okio是对java.io和java.nio的补充,使访问、存储和处理数据变得更加容易。 这里是它的官网: https://square.github.io/okio/ , 最开始它作为OKHttp的一个组件,现在可以独立使用它来解决一些IO问题,接下来的内容来自对Okio官网的文档以及一些代码示例。

在Android中使用HTTPS的场景比较频繁,所以对于HTTPS的证书应该如何校验呢?关于HTTPS的校验原理可以参考我之前写的一篇文章: 《 HTTPS协议实现原理 》 ,相信看完后应该对HTTPS有一个比较大致的了解。而且对HTTP(s)请求的工具进行了封装,需要体会这种封装工具类的思路,也就是编码中常见的Listener机制。然后是Android中TCP、UDP通信的例子,主要是把Android设备作为Client端,如果对Java的Socket编程比较熟悉的话,这些都是特别简单的示例程序,非常容易看懂。