Bootstrap
从零开发一款Android Rtmp播放器

本文基于Android端的RTMP播放器实现过程,介绍了RTMP推拉流库、Android MediaCodec Java层与C层接口、OpenSL ES接口、OpenGL ES接口、EGL接口、以及音视频相关知识。具体播放器代码可直接在官方地址查看:oarplayer

IM场景的移动端UI自动化测试平台实践

在公司做了两三年IM平台开发,基本上把IM的所有能力都搭建齐全了:单聊、群聊、文本消息、语音消息、视频消息、卡片消息、音视频通话等,而且把整个聊天页面各个区域都开放了出去。

Android SDK设计规范与心得

从事Andorid八点多的开发,回想起来主要是以开发SDK为主,目前主要开发各种APP给公司各业务提供服务。想起之前分配给未毕业的同事开发语音交互SDK时他问的“SDK设计有哪些规范”的问题,感觉有必要做一些整理。

Tensorflow Lite移动平台编译|Bazel实践

本文主要介绍了Tensorflow在Android和iOS平台的构建,编译的目标文件已经是各自平台可直接使用的了。针对底层库,比如Android,我们可能只需要直接使用动态库,则直接编译出Android对应的动态库即可。编译出来的库如何使用,我们后面有时间逐步介绍。

新技术|基于信号特征的语音编码器Lyra Android实践

机器学习现在应用的主要领域还是NLP、语音识别、图像识别等,之前谷歌推出了基于机器学习的语音编解码器Lyra。Lyra是一种高质量的、非常低比特率的语音编解码器,即使在最慢的网络上也可以进行语音通信。

Bazel构建Android项目

我们通过最简单的Android项目编译了解了Bazel相关语法及规则,后续对我们学习谷歌新的基于Bazel构建的项目提供了很大帮助。后续我们介绍TensorFlow Lite在Android平台和iOS平台的编译。

移动端网络监控实践

在移动端应用开发场景下,不可避免的要与网络打交道。有时在网络请求失败时,我们想知道网络的质量;有时需要明确的告知用户当前网络质量(比如游戏场景实时显示延迟)。网络监控离不开最经典的TCP/IP模型,基于模型分层统计网络耗时有助于我们更清晰的了解。

Activity重启引起的重复发送消息Bug分析

IM功能开发过程中,有这么一个需求,在打开会话详情页时Intent内可以携带一些消息,用于用户从商品详情页点击联系维护人时可以携带该商品的信息。Intent内可以携带多条消息,用于跳转到会话详情页时自动发送消息。

Bazel与Gradle构建工具差异对比

之前介绍Bazel文章中有同学闻到Bazel与Gradle工具的差异。这篇文章我们解答这个问题。

Android架构之网络优化

Android常见网络优化方案

如何绘制一个仪表盘

学习使用 Paint/Path/PathMeasure/PathDashPathEffect来绘制一个仪表盘

OpenCV学习(一):简介

一直从事Android和音视频相关领域开发,图像处理主要基于OpenGL,最近在研究一些图像智能化相关的东西,准备把算法之类的捡起来,首先想到的就是OpenCV。OpenCV是计算机视觉中经典的专用库,其支持多语言、跨平台,逐步了解它的能力和内部的算法实现。

【Android构建新工具】Bazel构建工具介绍

最近在编译Android平台的tensorflow lite库,发现官方使用的是Bazel构建工具,大概了解了下,它不仅可以构建Native层还可以构建Java层库。今天我们简单介绍下什么是Bazel,后续我们逐步深入了解Bazel构建工具,使用Bazel构建我们的Android项目。

【LeetCode】二叉搜索树中第K小的元素Java题解

给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。

Leetcode 题目解析:211. 添加与搜索单词 - 数据结构设计

常用的数据结构,以堆、栈、单/双链表、HashMap、各种二叉树(二叉树、平衡二叉树、搜索二叉树、红黑树)最为常见。另外,像bitmap等也比较多,尤其是需要位操作的时候。树中的Trie树(字典树),在检索类题目中也非常常见。

【LeetCode】删除链表的倒数第 N 个结点Java题解

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

Leetcode 题目解析:287. 寻找重复数

基于数组的运算,是面试算法题中很大的一部分题目。很多问题的输入,都可以以数组的形式给出,所以,我们对数组特性、常见题目的掌握程度,就直接决定了我们对相关算法的解决能力。

Leetcode题目解析:274. H 指数

H指数问题感觉是leetcode中比较冷门的一道题目,至少在过去笔试面试的经历中都没有遇到过。这道题目感觉也算是相对比较简单一点的中等难度题目。本系列文章会标明引用leetcode解析的部分内容,重点在于整理和阐述分析过程。

【LeetCode】Fizz Buzz Java题解

写一个程序,输出从 1 到 n 数字的字符串表示。

Leetcode 题目解析:70. 爬楼梯

在前面算法题目解析:从一道题目看动态规划这篇文章中,描述了动态规划的概念、原理和典型示例,今天用几道典型的动态规划题目来做为练手,达到掌握的目的。70. 爬楼梯是一道简单题,但比较典型,先从它开始。

Leetcode 题目解析:279. 完全平方数

一道典型的动态规划题目,虽然之前在算法题目解析:从一道题目看动态规划中介绍过了动态规划的原理、应用场景和题目示例,不过也并不是所有人都能熟练掌握

【LeetCode】 山峰数组的顶部Java题解

符合下列属性的数组 arr 称为 山峰数组(山脉数组) :

【LeetCode】 旅行终点站Java题解

给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi 。请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市。

【LeetCode】重复的DNA序列Java题解

所有 DNA 都由一系列缩写为 'A','C','G' 和 'T' 的核苷酸组成,例如:"ACGAATTCCG"。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。

【LeetCode】窥探迭代器Java题解

请你设计一个迭代器,除了支持 hasNext 和 next 操作外,还支持 peek 操作。

【LeetCode】搜索旋转排序数组Java题解

整数数组 nums 按升序排列,数组中的值 互不相同 。

【LeetCode】合并两个有序链表Java题解

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

【LeetCode】删除无效的括号Java题解

给你一个由若干括号和字母组成的字符串 s ,删除最小数量的无效括号,使得输入的字符串有效。

【LeetCode】外观数列Java题解

给定一个正整数 n ,输出外观数列的第 n 项。

【LeetCode】最长公共前缀Java题解

编写一个函数来查找字符串数组中的最长公共前缀。

【LeetCode】加一Java题解

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。

【LeetCode】最小操作次数使数组元素相等Java题解

给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。

【LeetCode】 第三大的数Java题解

给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。

【LeetCode】无重复字符的最长子串Java题解

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

【LeetCode】密钥格式化Java题解

有一个密钥字符串 S ,只包含字母,数字以及 '-'(破折号)。其中, N 个 '-' 将字符串分成了 N+1 组。

其他标签