音频变声实质上是通过调整 PCM 数据的音调、节拍等属性,实现听感上的变化。如果是 mp3、aac 等压缩音频,则需提前解码成 PCM 数据,Android 端可以通过 MediaExtractor 及 MediaCod…
分类:Android
数据库索引为什么用B+树实现?
为什么大多数数据库索引都使用B+树来实现呢?这涉及到数据结构、操作系统、计算机存储层次结构等等复杂的理论知识,但是不用担心,这篇文章20分钟之后就会给你答案。 这篇文章是一系列数据库索引文章中的最后一篇,这个系列包括了下…
友盟崩溃没有数据问题 了解UncaughtExceptionHandler原理
新上线的版本突然在友盟后台的崩溃日志没有了数据,然后有自知之明,知道肯定会有崩溃的,一定是这次改版哪个地方改错了。 经过了解,友盟的错误统计也是通过UncaughtExceptionHandler这个类实现的,通过全局的…
dagger2——终篇(下)
前言 如果您对dagger2的概念,整个依赖注入框架还不清楚,可以先了解下我的前2篇文章:dagger2——基础依赖注入框架篇(上) dagger2——重点概念讲解、融合篇(中) dagger2到底能带来哪些好处? da…
MVP系列文章(五)- 泛型擦除
前言 MVP系列文章 MVP系列文章(一) – MVC 与 MVP MVP系列文章(二) – 优化attach()、detach()方法 MVP系列文章(三) – 动态代理优化每次判断…
64k方法数限制原理与解决
Android开发的朋友,遇到很多这样的情况,随着功能的增加,方法数增多,就会出现所谓的64k方法数问题。 产生原因 Android APK文件本质上是一个压缩文件,它包含的classes.dex文件是Dalvik字节码…
插件式换肤框架搭建 - 资源加载源码分析
1. 概述 我们终于要开始写插件式换肤框架了,如果一上来就写或者直接从网上去下载别人写好的代码会很坑爹,直接去写你会发现根本没法下手,直接从网上下载你会发现有的时候6.0不行,5.0上面某些自带的效果出不来,出了问题要搞…
android 源码分支对应支持设备
N6F26U android-7.1.1_r28 Nougat Nexus 6 NUF26N android-7.1.1_r27 Nougat Nexus 6P NOF27C android-7.1.1_r26 Noug…
Android开发提供两个图片和视频的测试url
测试视频地址 http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4 https://segmentfault.com/a/1190000008427710 测试图片地址 ht…
【Android 开源系列】之视频处理框架
Android 开源系列 【Android 开源系列】之缓存框架 【Android 开源系列】之网络请求框架 【Android 开源系列】之图片加载框架 ijkplayer – Bilibili–…
定制View的动画
在日常开发中,View单调的出场和切换已经不能满足用户的要求了。平花的切换动画、出场动画以及离场动画有了一定的必要性。这里就简单的介绍一下View动画的定制。 如何实现View动画: 实例化Animation:Ani…