自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张三滴博客

其实没有什么不同,其实也很不同

  • 博客(21)
  • 收藏
  • 关注

原创 FFmpeg4.2.2编译

前言音视频开发几乎离不开FFmpeg,从事音视频开发也有一段时间了,最近有时间终于可以把相关的知识重新梳理一遍了,第一篇就从FFmpeg编译开始吧。雷神真是可惜了,天妒英才。我们在忙于工作学习的时候,也要注意自己的身体。准备工作编译环境:Ubuntu 20.04.2 LTSffmpeg-4.2.2android-ndk-r21e-linux-x86_64编译下载比解压完FFmpeg和NDK之后,就可以正式开始编译流程了。第一步切换到ffmpeg目录下cd ffmpeg-4.

2021-07-18 14:47:38 558 1

原创 Git基于分支重新创建一个新项目

前言今天碰到一件事,需要基于项目某个commit重新创建一个全新的项目,后面这两个项目没有关系。正常情况下我们都是基于某个commit创建分支,在分支上继续开发,后面合并分支。但是这次不同,要重新创建项目,后面不会合并。于是研究了下怎么操作,这里记录一下。方法思路是创建新分支,用新分支替代master分支,这样就能保留之前的提交记录,下面给出详细步骤#基于commit SHA1创建新分支,SHA1,通过 git log获取git branch newbranch commit-SHA1 #切换

2020-12-02 17:01:19 3268

原创 Android Studio 4.0编译报错More than one file was found with OS independent path

报错原因在升级Android Studio 4.0之后,进行NDK开发的时候,引入第三方动态so库,编译报错如下:Execution failed for task ':myplayer:mergeDebugNativeLibs'.> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade > More than one file was found

2020-11-22 13:15:39 1099

原创 OWT(Open WebRTC Toolkit) Client Native编译生成sdk

前言OWT(Open WebRTC Toolkit)是英特尔开源的WebRTC协同通信开发套件,采用商业友好的Apache 2.0 License软件许可,Github代码已经公开。这篇文章主要记录一下Android客户端SDK的编译过程owt-client-native(Android客户端需要在Linux环境下编译,iOS需要在MacOS环境下编译,流程是相同的)准备工作开发环境:Ubuntu/Debian(注意,一定要是这两者,因为有个脚本只支持这两种系统)云主机或者非常稳定且带宽给力

2020-11-01 18:50:38 3417 8

原创 自定义View小船水上漂-PathMeasure实现

前言自定义View的时候,有时会碰到一些轨迹移动之类的需求,比如让某个物体沿着特定的路线移动,通常都是使用Path搭配PathMeasure来实现,比如下面的效果图看起来蛮有意思的,其实很本质简单,就是小船沿着给定的路线运动,路线就是Path,然后就是使用PathMeasure计算Path相关参数,这篇文章就来讲讲关于PathMeasure的内容,不多BB,先上代码PS:其实我想先贴PathMeasure API的,但感觉这样文章就太长了,就直接放链接吧PathMeasure官方文档PathMe

2020-10-17 15:06:26 214

原创 PathMeasure API 中文

顾名思义,PathMeasure是一个用来测量Path的类,主要有以下方法:构造方法方法名释义PathMeasure()创建一个空的PathMeasurePathMeasure(Path path, boolean forceClosed)创建 PathMeasure 并关联一个指定的Path(Path需要已经创建完成)。公共方法返回值方法名释义voidsetPath(Path path, boolean forceClosed)关联一个

2020-10-17 14:20:14 92

转载 Android Matrix 详解

我们在自定义 View 控件时随处可见 Matrix 的身影,主要用于坐标转换映射,我们可以通过 Matrix 矩阵来控制视图的变换。Matrix 本质上是一个如下图所示的矩阵:Matrix上面每个值都有其对应的操作。Matrix 提供了如下几个操作: 缩放(Scale) 对应MSCALE_X与MSCALE_Y 位移(Translate) 对应MTRANS_X与MTRANS_Y 错切(Skew) 对应MSKEW_X与MSKEW_Y ...

2020-10-17 13:36:04 1052

原创 focusableInTouchMode导致Click事件失效

前言focusableInTouchMode="ture"是Android开发常用的一个属性,SDK源码说的很清楚,表示触摸事件可以让View获取焦点。<!-- Boolean that controls whether a view can take focus while in touch mode. If this is true for a view, that vie...

2020-04-26 23:56:24 1844 5

原创 自动生成Android dimens.xml文件

前言好久没更新内容了,现在疫情差不多稳定了,人们又开启了丰富多彩的娱乐活动。程序猿们早就开始了工作,其实这段时间发生了很多事,我也不知道写什么好,谁知道未来会怎么样呢?不bb了,生活还得继续。在Android开发日常中,相信对dimens.xml文件还是很熟悉的,我们会把单位写在这个文件里,而不用直接硬编码在布局里。当然dimems.xml还有另一个用途,就是官方出的屏幕分辨率适配方案,不同分...

2020-03-22 13:37:27 2476 5

原创 迁移到AndroidX指南

前言AndroidX出来有一段时间了,不知道大家有没有跟进Google的脚步。这里引用一下官网对AndroidX的介绍AndroidX 是 Android 团队用于在 Jetpack 中开发、测试、打包和发布库以及对其进行版本控制的开源项目。AndroidX 对原始 Android 支持库进行了重大改进。与支持库一样,AndroidX 与 Android 操作系统分开提供,并与各个 And...

2019-12-29 22:16:32 335

原创 Android物理键盘事件解析

前言Android设备连接物理键盘其实是个挺小众的需求,其实Android设备本身就是支持物理键盘,dispatchKeyEvent()这个方法就可以监听物理键盘,这里提供一个封装的类,解析键盘事件。有很多事件,具体可以去看KeyEvent这个类的源码,我这里只处理的数字键盘。实现方式键盘事件解析类public class DispatchKeyResolver { publ...

2019-12-22 18:36:26 602

原创 常见条形码的用法和格式

前言因为最近业务上的需要,需要打印条形码,从而了解到各种不同条形码的编码格式与用法,这里列举一下。UPC-AUPC-A条形码是美国用于向公众销售的产品的标准条形码格式。UPC-A仅包含数字数据,并编码12位数字。第一位是系统编号字符,随后的五位表示供应商识别码,再后五位表示产品编号,最后一位表示所需的校验码字符。由于“条形码打印”功能会自动计算校验码位,因此不需要指定校验码位。每一位由两...

2019-10-31 20:55:13 24786

原创 TextView多个超链接实现跳转

现在大部分的App都会有《软件服务协议》及《隐私协议》,比如手机QQ的注册页:这样的需求,在App越来越规范化的今天,非常的常见,实现的方式也五花八门,我这里提供一种简单方便的,拓展性强的实现方式,先看效果:1. 上代码public SpannableStringBuilder setTextLink(final Context context, ...

2019-09-29 22:17:34 729

原创 Android Studio升级3.5 xml文件格式化(Reformat Code)后元素会自动排序的问题

目前看来应该是个bug,毕竟这样会导致很多问题。这里做个记录,谢谢超越者Choimroc的解决方案,解决方案传送门

2019-08-26 23:32:44 232

原创 基于Apache Mina框架实现Android Socket长连接通信

前言Socket长连接是Android开发中很基础的功能,很多的App都会用到这个功能,实现的方式有很多,我今天就只写基于Apache Mina框架的实现方式,至于TCP/IP协议相关的知识就不涉及了,想了解更多关于Socket长连接知识的,可以去看看刚哥的文章Apache Mina介绍Mina是一个基于NIO的网络框架,使用它编写程序时,可以专注于业务处理,而不用过于关心IO操作。不论应用...

2019-08-25 23:25:07 754

原创 RecyclerView实用功能(一)粘性头部

RecyclerView实用功能(一)粘性头部前言Android的日常开发中,RecyclerView绝对是个高频使用的控件,我们也经常碰到各种常见的需求,比如粘性头部,多级列表等等,这会开一个系列,记录这些有关RecyclerView功能的实现方式。效果实现思路思路很巧妙,也很简单,在RecyclerView外部容器添加一个HeaderView,然后RecyclerView每一个I...

2019-05-20 22:11:28 983

原创 360应用商店上架提示签名算法采用“SHA256withRSA”,在部分4.2一下安卓版本的手机上不能安装

问题描述前一段时间给公司一个新的App上架360应用商店,因为需要加固,便下载了最新版的360加固助手,加上助手挺方便的,加固签名一条龙。然而问题就出在了这里,拿加固签名之后的App上架,wtf???提示:您的应用签名算法采用“SHA256withRSA”,在部分4.2一下安卓版本的手机上不能安装。显然,是签名出问题了。我就纳闷了,用你自家的签名工具签名,上架你们自家的应用商店,提前签名有问题...

2019-02-24 20:03:59 3772 6

原创 RxJava(一)

前言去年开始,我负责企业整个Android项目,到现在一年了,在项目开始的时候,我选择了目前流行的MVP+RxJava+Retrofit的结构框架。后面我陆续写一些总结,今天先从RxJava写起吧。RxJava是什么&amp;quot;a library for composing asynchronous and event-based programs using observable sequ...

2018-09-12 17:05:37 129

原创 关于Android沉浸式状态栏变灰的问题

前言沉浸式状态栏几乎是现在Android app的标配,一般我们都是调用setStatusBarTintResource()方法给状态栏设置一个颜色或透明。但今天在开发中碰见了一个问题,就是Android 7.0环境下,即使给状态栏设成白色,实际显示的颜色却是灰色,像这样原因分析由于这是Android 7.0才会出现的现象,可以断定7.0应该是对状态栏有什么骚操作才会这样...

2018-04-20 21:40:26 5551 3

原创 Android 仿微信支付密码界面

效果图使用 Bundle bundle = new Bundle(); bundle.putString(PayFragment.EXTRA_CONTENT, "提现:¥ " + 100.00); PayFragment fragment = new PayFragment(); fragment.setArguments(bundle); fragment.setPayS...

2018-03-14 22:41:43 1939

原创 Android图片叠加效果

前几天工作碰到这样一个需求,将二维码与一张海报叠加,并将合成后的海报分享到微信。由于经验不足,在实现功能的过程中,碰到了这样或那样的问题,我就来分享一下我碰到的坑。 图片叠加的处理处理思路是在一张新建画布上分别将两张图片绘制出来首先获取需要两张图片,并转成Bitmap类型Bitmapbg = ((BitmapDrawable) getResources().

2017-12-16 20:36:02 3845 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除