摘要:一、FFmpeg 学习 1. 官方API文档 FFmpeg Documentation:http://www.ffmpeg.org/doxygen/trunk/index.html 2. 优秀开源项目 a). FFmpeg_Tutorial : https://github.com/yinwenji 阅读全文
posted @ 2019-02-21 17:02 灰色飘零 阅读 (579) 评论 (0) 编辑
摘要:Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的。只能通过一点点的学习和积累把这块的知识串联积累起来。 初级入门篇: Android 音视频开发(一) : 通过三种方式绘制图片 Android 音视频开发(二):使用 AudioRecord 采集音频P 阅读全文
posted @ 2017-08-30 13:02 灰色飘零 阅读 (18894) 评论 (2) 编辑
摘要:下面这些资源对Android开发来说是很有帮助的! 1. 在线编程书籍/教程集合 Android 官方网站 说明:Android 官方网站,Android 程序员必备,里面的内容100%靠谱,且有很多新东西和使用Guide,对英语的阅读能力要求有点高,需要上外网! 地址:http://develop 阅读全文
posted @ 2017-03-17 17:42 灰色飘零 阅读 (681) 评论 (0) 编辑
摘要:本来之前觉得Android项目优化系列的文章基本整理完毕了,但是近期看了一下《阿里Android开发手册》有了很多收获,想再整理一篇,下面就开始吧。 先在这里列一下之前整理的文章及链接: Android 项目优化(一):项目代码规范优化 Android 项目优化(二):启动页面优化 Android 阅读全文
posted @ 2019-12-04 19:20 灰色飘零 阅读 (24) 评论 (0) 编辑
摘要:需求: 近段时间正好有一个需求,是要实现Gif图只加载播放一次,并且要在Gif播放完毕后回调给系统的需求。 因为Glide 3系列的API与4系列还是有很大差距的,这里我们针对Glide 3.x和Glide 4.x的分别进行实现方案的说明。 解决方案: 在Glide3.x的解决方案: Glide.w 阅读全文
posted @ 2019-12-01 07:52 灰色飘零 阅读 (28) 评论 (0) 编辑
摘要:在经过上面铺垫后,我们可以尝试整体实现一下插件化了。这里我们先介绍一下最简单的实现插件化的方案。 一、最简单的插件化实现方案 最简单的插件化实现方案,对四大组件都是适用的,技术面涉及如下: 1). 合并所有插件的Dex,来解决插件的类的加载问题。 2). 预先在宿主的AndroidManifest. 阅读全文
posted @ 2019-11-28 14:16 灰色飘零 阅读 (35) 评论 (0) 编辑
摘要:在前面的文章中我们成功的加载了外部的Dex(Apk)并执行了插件的Bean代码。这时我们会想,能不能加载并运行插件Apk的Activity。答案当然是能,否则后续我们的研究就没意义了,但是想实现Activity的插件化运行,我们必须要解决一个问题——如何使用插件中的资源。 本文我们就讲一下插件的资源 阅读全文
posted @ 2019-11-25 17:28 灰色飘零 阅读 (43) 评论 (0) 编辑
摘要:在学习Java反射的技术后,我们可以开始更深一步的探究插件化开发了。首先先讲一下Android App的打包流程,然后我们通过一个简单的例子 —— 实现插件化加载外部Dex来完成初级的插件化开发的探索。 一、Android App 打包流程 1. 打包资源文件,生成R.java文件 打包资源的工具是 阅读全文
posted @ 2019-11-21 14:10 灰色飘零 阅读 (36) 评论 (0) 编辑
摘要:写在前面:学习插件化开发推荐书籍《Android 插件化开发指南》,本系列博客所整理知识部分内容出自此书。 在之前的项目架构的博文中,我们提到了项目插件化架构,提到插件化架构不得不提的到Java中最强大的技术 —— Java 反射技术,反射技术基本是贯穿整个插件化最核心的基础技术,下图是本人整理的插 阅读全文
posted @ 2019-11-18 15:31 灰色飘零 阅读 (42) 评论 (0) 编辑
摘要:目前移动端应用市场已经是百花齐放,很多独角兽公司都是通过App创业发展起来的,现在App类型更加丰富,功能越来越完善,基本上涵盖了各个行业的每个角落。为了开发出更加有竞争力的App,不仅需要功能上有创新,内容也需要更加多元化,这样就出现了相对巨大的工程。这些工程代码不停添加,如果没有一个好的架构,那 阅读全文
posted @ 2019-11-04 13:50 灰色飘零 阅读 (39) 评论 (0) 编辑
摘要:在之前我们讲了很多能够优化 Android 开发项目质量的方案,这些方案更多的是从一些比较专精的方向切入的,阐述的是一些比较重要且独立的优化方案。 本文我们将总结一下在日常开发过程中我们能够使用的一些优化项目的技巧和方案。 一、RecycleView 优化 RecycleView在开发时可以考虑以下 阅读全文
posted @ 2019-11-01 13:11 灰色飘零 阅读 (33) 评论 (0) 编辑
摘要:介绍了前面的优化的方案后,这里我们在针对应用的启动优化做一下讲解和说明。 一、App启动概述 一个应用App的启动速度能够影响用户的首次体验,启动速度较慢(感官上)的应用可能导致用户再次开启App的意图下降,或者卸载放弃该应用程序。 应用程序启动有主要分为两种状态,每种状态都会影响应用程序对用户可见 阅读全文
posted @ 2019-10-31 11:45 灰色飘零 阅读 (42) 评论 (0) 编辑
摘要:在之前的文章中我们总结过跟Android 内存相关的知识或者问题,这里先列举一下: 1. Java 内存回收机制——GC机制 2. Java 对象引用方式 —— 强引用、软引用、弱引用和虚引用 3. Android Studio 使用Memory Monitor进行内存泄露分析 4. Android 阅读全文
posted @ 2019-10-30 21:28 灰色飘零 阅读 (33) 评论 (0) 编辑
摘要:在整理MultiDex优化之前,先了解一下Apk的编译流程,这样有助于后面针对MultiDex优化。 一、Apk 编译流程 Android Studio 按下编译按钮后发生了什么? 1. 打包资源文件,生成R.java文件(使用工具aapt,这个工具在Android 使用 aapt 命令查看 apk 阅读全文
posted @ 2019-10-24 18:44 灰色飘零 阅读 (199) 评论 (0) 编辑
摘要:一、实时音量相关基础知识 说到获取音量,大家首先想到的应该就是分贝(dB),分贝是一个相对单位(是一个比值,是一个数值,是一个纯计数方法)。 在音频领域dB度量的是声音的强度,其计算的公式如下: 在上面的公式中,分子是测量值的声压,分母是参考值的声压(20微帕,人类所能听到的最小声压)。 在Andr 阅读全文
posted @ 2019-10-20 15:27 灰色飘零 阅读 (123) 评论 (0) 编辑
摘要:默认的浅灰色的分割线在某些时候并不能满足我们的要求,这时就需要自定义分割线了。 我们可以通过两种方式来实现:调用 DividerItemDecoration.setDrawable 方法或者继承实现 RecyclerView.ItemDecoration 类来实现。 一、调用 DividerItem 阅读全文
posted @ 2019-09-05 12:40 灰色飘零 阅读 (117) 评论 (0) 编辑
摘要:WebView加载数据的方式有两种: 可以使用来加载富文本内容: 为了使WebView在手机上能更好的展示富文本内容,推荐如下的WebSetting: 补充: 当我们使用WebView加载富文本网页文件时,可能存在某些机型上展示内容乱码的问题。 解决方案: 1.首先设置html头文件为 utf-8, 阅读全文
posted @ 2019-08-23 16:42 灰色飘零 阅读 (438) 评论 (0) 编辑
摘要:一、问题现象 多层fragment叠加时,点击上层fragment会使下层fragment的控件对应点击事件响应,这种现象就是点击穿透。 对于这种情况,我们一般都是对baseFragment进行view的点击事件设置,以达到拦截所有页面上的空白处点击事件,以防止穿透到下层fragment。 二、解决 阅读全文
posted @ 2019-08-23 13:06 灰色飘零 阅读 (137) 评论 (0) 编辑