Piasy

NEVER STOP

WebRTC-Native 源码导读(六):iOS P2P 连接过程和 DataChannel 使用

今天给大家带来 WebRTC iOS demo 的工作流程分析(P2P 连接过程),以及 DataChannel 的使用示例。最后,我把 WebRTC iOS demo 的代码从 WebRTC 代码库中摘了出来,并使用 CocoaPods 上 Google 发布的预编译库,GitHub 传送门。 另外,从本篇开始,「WebRTC-Android 源码导读」系列正式升级为「WebRTC-Na...

谈谈软件开发管理

——读《卓有成效的管理者》、《人月神话》、《软件随想录》有感 以前我一直觉得自己读书慢,但在 17 年底、18 年初的一个月里,我也读了四本书,其实挺快的。主要还是得肯花时间,以前总想把时间花在写代码、做开源项目上。实践很好,但实践之余看看前人的经验总结,印证、校正自己的实践,也很重要。 看完《卓有成效的管理者》,我开始记录自己的时间用在了哪里,并认真思考「知人善用」;看完《人月神话》,...

我在鼎点这一年

2017 转瞬即逝,去年此刻,我还正手捧《程序员面试金典》,一点一点地安抚焦虑的内心呢,不过感谢上苍,再次给了我好运气,让 2016 顺利收官。 去年总结时,我唯一感到遗憾的,就是下面三点了: 2016 年,锻炼身体有点少,书看得有点少,安卓之外的技术了解得太少,这是最大的不足。 好在今年有了不少改进。 今年踢了不少场球,虽然都是瞎踢,但也算运动不是? 从大年初一凌晨开...

移动客户端跨平台开发方案探索

跨平台开发想必很多朋友都听说过,甚至实践过,这里我就不过多介绍相关的背景了,Java 的 Slogan 完美诠释了这一愿景:Write once, run anywhere! 提到这个话题,大家首先想到的可能是 React Native,不过本文并不是 RN 教程。本文旨在探索我关注到的几种比较靠谱的移动客户端跨平台开发方案,当然 RN 是其中必不可少的一部分。 完美的跨平台开发方案自然...

我需要知道:编译、链接、装载、运行

九月除了看 H.264,还看了一本好书:《程序员的自我修养:链接、装载与库》。对这本书我只想说一句话,相见恨晚。 看完这本书之后,结合本科阶段学习的程序设计(C++)、汇编、编译原理、计算机组成原理、计算机体系结构、操作系统这几门课程,我总算对“我们编写的 C/C++ 代码是怎么一步步在电脑上跑起来的”这个问题有了一个宏观的认识。当然,细节和深入之处想靠这一本书甚至一门课程就完全掌握是不可...

安卓 OpenGL ES 2.0 完全入门(三):2D 纹理的裁剪、翻转、旋转、缩放

我在去年六月份学习了 OpenGL 的一些基本概念,整理了一个 demo 和两篇文章,并在今年六月份复习修正了一番。不久前我进一步向铁蕾兄学习了四种常用 2D 纹理变换的实现思路(以及本文中的其他总结性文字),由于铁蕾兄实在太忙,无暇快速整理成文,因此我就在这里为他代笔了 :) 没有阅读过前两篇、对 OpenGL 基本概念不熟悉的朋友,下面是链接: 安卓 OpenGL ES 2.0...

我们需要怎样的工程师,我们需要成为怎样的工程师?

刚加入 Young 团队时,那会儿还有大半年才毕业,我就在思考这个问题,只不过当时更专注于安卓开发领域:安卓开发的核心竞争力是什么?我有一个专门的笔记来记录对这个问题的思考,由于版本迭代,最初的答案已经难以追溯,大抵就是在强调安卓平台的一些技术要点吧。 经过这几年的实践、观察和思考,我越发觉得应该把目光往更基础、更通用也更经久不衰的方向转移,具体的 APP 开发的技巧和范式,其实并不多,基...

我需要知道:H.264

我在今年年初离开 YOLO 加入了一家在流媒体领域具有极深积累的小公司,负责视频群聊 SDK 的开发工作,YOLO 是一款直播 APP,我常戏称这是从技术下游(SDK 使用方)跑到了技术上游(SDK 提供方)。不过事情当然不是这么简单,经过长期的思考和探讨,我最终确认:实时多媒体领域,更宽泛一点来讲,实时视觉、感知的展现,在未来极长一段时间内都存在很大的需求,也存在很大的挑战,所以这将是我长...

使用 WebRTC 静态库进行 NDK 开发

前面我们分析 WebRTC P2P 连接过程时,在 C++ 代码的世界里徜徉了那么久,其中有各种各样的功能模块,难道大家看着不心动?反正我是很想把它们剥离出来用的,第一个拿来开刀的当然就是 P2P 模块了。 不过在这之前,我还得好好补补 NDK 开发的相关知识,在这篇文章中,我不会涉及 WebRTC P2P 模块的代码,而是简单用一用它的多线程模块,力图先把路给趟平了。 所谓剥离使用,其...

WebRTC-Native 源码导读(五):安卓 P2P 连接过程和 DataChannel 使用

前面四篇里,我们分别分析了 WebRTC Android 的视频采集、视频渲染和视频硬编码,最后把相关代码剥离出来形成了一个独立的模块:VideoCRE,并对其进行了极大地内存抖动优化。从本篇起,我们将迈入新的领域:网络传输。首先我们看看 P2P 连接的建立过程,以及 DataChannel 的使用,最终我们会利用 DataChannel 实现一个 P2P 的文字聊天功能。 前面四篇没看过...