自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SurpassLi的博客

互相学习,记录总结,交流成长

  • 博客(53)
  • 资源 (1)
  • 收藏
  • 关注

原创 关于Android键值对存储的方案选择

关于Android键值对存储的方案选择

2022-11-07 15:38:13 1569 1

原创 视频开发学习----入门左脚

我尽量不打错别字,用词准确,不造成阅读障碍       上篇讲了音视频生成流程、一些基本概念和音视频编码历史,这里讲解一些音视频名词以及解释,作为入门的必备知识点。这篇文章相对而言要枯燥一些,请有耐心。先"温故"一下:了解颜色信号的基本概念       上图中有一个重要的"预处理"——YUV转换,就是把RGB颜色值转为YUV值;我们也说了,相对与RGB信号,.

2021-03-30 16:04:07 201

原创 视频开发学习----入门右脚

我尽量不打错别字,用词准确,不造成阅读障碍​ 不要着急了解编码的过程或者了解图像、颜色的各种概念,个人觉得只会事倍功半,晕头转向;应该先从简单的地方入手,先了解基本流程和历史,这样在了解过程中,很多名词会多次出现,这样会帮助你消化这个名词,在后面的学习中会有效降低“短时间内有大量陌生名词和逻辑”所带来的理解难度。一.知道音视频传输的基本流程图像信息采集后(怎么采集的先不要探究)要进行模数转换(即上图的A/D转换),作用是将模拟信号转换为数字信号,实际上,现在很多摄像机是直接输出数字信号的。之后.

2021-03-21 19:04:34 256

原创 kotlin学习----高阶函数(入门级别)

kotlin学习----高阶函数(入门级别)我尽量不打错别字,用词准确,不制造阅读障碍kotlin我都用了很久了,基础语法糖的学习其实很快,虽然刚开始确实有些不习惯,还有些Java的写法不知道怎么用kotlin写,但是总的而言还是有惊无险的那种,网上找找就好了;这篇文章只是记录一些我学习kotlin高阶函数的理解;Java也是有高阶函数的,网上一搜一大堆,说来惭愧,我没怎么用过,但是我学kotlin的时候就知道kotlin是有高阶函数的,所以就自然而然的想要去学习;网上找了一堆文章,但是这些大佬举

2021-03-04 16:18:48 240 1

原创 React-Native 踩坑------MIUI12“Text“组件显示异常

React-Native 踩坑------MIUI12"Text"组件显示异常我尽量不打错别字,用词准确,不造成阅读障碍最近发现React-Native的应用在MIUI12上 <Text 组件显示数字不全,少了个0,自适应宽度\高度不够,查阅资料,github上有人说,发现在Android P、Android Q上可能会有这个问题,但是我只遇到在MIUI12上有这个问题的,我自己是Android Q(10)—MIUI11,没有这个问题;后来还查阅到有人发现在Android P和Android

2020-07-16 23:05:32 2098 3

原创 自定义圆角背景TextView

自定义圆角背景TextView我尽量不打错别字,用词准确,不造成阅读障碍有一段时间没写博客了,因为一些个人原因,以后会慢慢找回状态我在实际开发中喜欢将TextView代替Button使用(感觉不是一个好习惯),需求中经常会出现圆角的点击按钮,这个时候其实有很多方案:1.最传统的就是写一个drawable(也就是shape)的xml文件,但是你也不可能遇到不同圆角就写一个xml,遇到不同...

2020-04-09 19:31:16 1110

原创 我与OV的斗争-----OPPO部分手机输入法默认白色

我尽量不写错别字,用词准确,不添加阅读障碍。最近从RN开发转回原生了,说实话,实在是不喜欢RN的开发,坑真多,有时间和大家分享一下新踩的几个坑,而且怎么都对弱类型语言热爱不起来。部分OPPO手机的EditText默认输入颜色是白色的,这对于背景白色的输入框来说就是噩梦了,解决方法超级简单—设置TextColor属性为黑色就好了。android:textColor="#000000"这...

2019-07-11 19:57:13 753

原创 React-Native分享小程序采坑

我尽量不打错别字,用词准确,不造成阅读障碍。最近一直在赶项目,感觉好久没写分享了,对不起我那可怜的几个粉丝。这次主要分享一下Android端实现微信小程序分享过程中踩的一些坑,现在回想起来,其实都非常简单,自己当时怎么就脑瓜犯浑呢。自己Google和百度了好久,有些问题依然没有很好的答案,所以自己总结一下。感觉好多人在RN端做微信分享的时候使用的是react-native-wechat这个...

2019-04-11 17:53:12 1261

原创 小菜读Glide3.0源码----into()

我进尽量不打错别字,用词准确,不造成阅读障碍。本文基于Glide3.7.0源码,并不是4.0系列。本系列分为三部分:with(…)、load(…)、into(…);本篇文章只介绍into(…)这一个步骤,前两个步骤相对而言比较简单,特别是with(…),而into(…)内容非常复杂,必须单独开一篇,要不然太长了。关于with(…)和load(…)的文章在这里本文的主要目的在于学习总结,并给需...

2019-03-12 11:30:19 304

原创 小菜读Glide3.0 源码----with()和load()

我尽量做到不打错别字,用词准确,不造成阅读障碍。本文基于Glide3.7.0源码,并不是4.0系列。本系列分为三部分:with()、load()、into();本篇文章只介绍Iwith()和load()两个步骤,因为这两个步骤相对而言比较简单,特别是with(),而into()内容非常复杂,必须单独开一篇,要不然太长了。本文的主要目的在于学习总结,并给需要的人一点帮助,并不奢望多么完美,如有...

2019-03-01 17:15:04 346

原创 Android App性能分析工具(一)——GPU渲染分析

我尽量不打错别字,用词准确,不造成阅读障碍。一.GPU渲染速度该工具在“开发者选项”里面,是用来展示应用每一帧中渲染消耗的时间及内容。1.图中每一个竖条就是一帧,不同颜色代表不同的活动内容,下面会详细讲解;2.&quot;横&quot;着的绿线表示16ms的”及格线“,小于16ms的帧数透明度要低一些(最右边那部分),可以选择性忽略,大于16ms的透明度会高一些,看的更清晰。当竖线超出这条横线时,可能会...

2019-02-17 19:11:10 4597

原创 自定义View——React-Native轮播图(学习)

我尽量不打错别字,用词准确,不造成阅读障碍。最近一直在写RN,赶项目,好久没写博客和更新github了,加上昨天被一个json不会写、甩锅超强的菜鸡同事气到了,今天怎么也得写一些,哭~~。很多人需要轮播图都会使用开源的&quot;react-native-swiper&quot;之类的东西,人家写的确实牛逼,但是我有个执念,不习惯随意使用第三方的东西,就喜欢造轮子,我一般选择把别人的原理看明白然后自己写,这样...

2019-01-17 10:46:23 745

原创 自定义View——文本字母跳转替换

我尽量不打错别字,用词准确,不造成阅读障碍。最近看到一个很有意思的自定义View,效果是这样的:效果很nice,虽然实际开发中可能用到的场景少的很。从作者给的github上拿到源码,看了一下,感觉有一些可以学习的地方,作者也有解释,我想结合自己的理解记录了一下,希望能帮到别人,主要是想记个笔记。先说一下我理解的整体思路:我们有两个字符串,首先要把两个字符串的每一个字符拆开并挨个计算宽...

2018-12-20 18:30:35 300

原创 自定义View——流程进度展示

我尽量不打错别字,用词准确,不造成阅读障碍本文介绍一个自定义进度流程展示的view,注重易用性和适应性,使用简单且不需要做过多知识点准备,好上手。效果如下:根据指定的步骤数可自行绘制,每个步骤的图标可以不一样。一.自定义属性&amp;lt;!--流程进度2--&amp;gt;&amp;lt;declare-styleable name=&quot;AuditProgressViewTwo&quot;&amp;gt; &amp;

2018-12-06 14:42:20 426

原创 关于Android事件分发机制的宏观理解(简单)

我尽量不打错别字,用词准确,不造成阅读障碍。之所以说是宏观,是因为我不会写demo,一步步截图给你看,我会拿源码然后剔除暂时用不到的部分,让你从大脉络上理解事件分发机制,这样你会发现,很简单。首先在脑海中应该有一个例子,一个LinearLayout里面有一个button,没了,然后你设置了button的setOnClickListener方法,很简单的例子,也是最能接受的例子。事件序列:...

2018-11-12 14:22:13 198

原创 微信小程序跳转回App实战

我尽量不打错别字,用词准确,不造成阅读障碍。突然要做小程序跳转回App,记得这个功能出来有一段时间了,本以为看看文档就好了,结果遇到了小坑,因为之前一直是看文档就完成了需求,但是文档是这样写的:我初步理解就是找到ShowMessageFromWX.req并将其处理解析,拿到标识控制跳转。当我之前没见过这个req,所以我下载了这个Android SDKSample看看,结果,感觉自己被坑了...

2018-11-09 11:21:53 4127

原创 关于Android状态栏反色(白底黑字)的适配小总结

我尽量不打错别字,用词准确,不造成阅读障碍。昨天在OPPO开发者后台清理未读消息时看到一篇介绍状态栏反色(白底黑字)的文章,心血来潮看了一下,然后就查阅了国内各个ROM的不同处理方式,写一篇小总结,希望能帮助到需要的人。前言Android6.0(M)以后,Google给出了官方修改状态栏白底黑字的方式 ,各大厂商基本都适用,所以应该不用适配 (“应该”是因为我没有那么多手机,没法逐个确认...

2018-11-06 15:07:55 8189

原创 Android中图片内存占用的情况小总结

我尽量不打错别字,用词准确,不造成阅读障碍。今天看到一篇介绍图片在Android中的内存占用的计算方式的文章,感觉写的很棒,就是看的时候总要回翻,感觉还有一些表述上的瑕疵。特在此总结一下,原文在下面:https://www.jianshu.com/p/3c5ac5fdb62a 总结下来应该是这样的:一.不使用第三方框架加载图片的情况:一般是默认使用ImageView时,我们会把图片放...

2018-11-01 15:25:47 465

原创 自定义View——水波纹滚动

我尽量不打错别字,用词准确,不造成阅读障碍。本文是完成一个水波流动的加载控件,网上有很多写法,这里写一个比较简单的。本人喜欢在代码中写注释,核心部分都在注释里效果图:首先先分析一下,需要几个画笔;默认是矩形背景,所以我们需要把背景“截”成圆形的,这就需要一个画笔,然后是画波浪线,即贝塞尔曲线,又需要一个画笔,最后是写文字,需要一个画笔;好,总共需要三个画笔;颜色啊、抗锯齿啊、填充啊等都...

2018-10-30 15:47:02 460

原创 自定义View——聊天页图片展示

我尽量不打错别字,用词准确,不造成阅读障碍。本文是自定义聊天时的图片和视频显示及发送控件。效果: 代码:自定义属性 &amp;amp;amp;lt;declare-styleable name=&amp;amp;quot;MyIMImageView&amp;amp;quot;&amp;amp;amp;gt; &amp;amp;amp;lt;attr name=&amp;amp;quot;arrowTop&amp;amp;

2018-10-18 17:36:24 207

原创 自定义View——支付密码输入框

我尽量不打错别字,用词准确,不造成阅读障碍。本文实现支付密码输入的输入框,6个小黑点那种。效果:代码:设置自定义属性:&amp;amp;amp;lt;declare-styleable name=&amp;amp;quot;PayPasswordInputView&amp;amp;quot;&amp;amp;amp;gt; &amp;amp;amp;lt;attr name=&amp;amp;quot;maxCount&amp;

2018-10-16 17:09:44 432

原创 自定义View——水波纹效果

我尽量不打错别字,用词准确,不造成阅读障碍。本文实现一个水波纹状的自定义View,很简单的代码,没什么计算难度。效果如下:代码:1.首先在values下的attrs中添加如下自定义属性: &amp;lt;declare-styleable name=&quot;MyWaveView&quot;&amp;gt; &amp;lt;attr name=&quot;waveColor&quot; format=&quot

2018-10-15 14:51:42 291

原创 自定义View——聚焦动画控件

我尽量不打错别字,用词准确,不造成阅读障碍。这个自定义View是很简单的一个,效果是在拍摄图片时的对焦动画,在自定义SurfaceView中使用这个控件就好了。效果如下:代码:public class FocusView extends View { private Paint mLinePaint; //画笔 private int mBorderWidth = ...

2018-10-12 16:31:48 351

原创 自定义View——语音发送按键

我尽量不打错别字,用词准确,不造成阅读障碍。本文是仿照微信录制语音信息并发送的自定义Button,学习自慕客网上鸿神的视频,视频很老了,但是最近在整理自定义View文章,感觉这个最简单,所以先写出来。我们有三个类:AudioRecorderButton 、AudioManager 、AudioDialogManager;分别用来做自定义Button、麦克风管理、dialog管理;效果图...

2018-10-12 15:43:17 291

原创 App防止被抓包_随手记

1.使用https,可以初步防止一些只抓http包的软件。2.如果网络框架使用的是OkHttp,可以在Builder中设置proxy(Proxy.NO_PROXY)属性,禁止使用代理,这样一般使用中间人的代理就使用不了,客户端是直接访问服务器。3.判断是否使用了代理,可自由操作:public static boolean isWifiProxy() { final boolean I...

2018-10-11 10:27:31 2887

原创 自定义View——仿QQ实现侧滑效果和删除、置顶功能

我尽量不打错别字,用词准确,不造成阅读障碍高仿QQ侧滑效果,实现置顶、删除功能,完美适用于ListView,至于RecyclerView正在研究,效果有些问题。本侧滑很简单,只有右侧的侧滑,并没有其他酷炫的功能,希望给大家一个提示思路,如果需求简单的话可以自己照着写,不需要加入第三方库。本文是一步步完善功能的,最后会有完整代码。原理自定义ViewGroup,继承自FrameLayou...

2018-10-11 10:26:00 826

原创 设计模式——简单工厂模式

简单工厂模式的主要方式就是将不同实例对象的创建做统一管理,这样使用者只需要调用工厂类去创建不同的对象实例,而不用知道对象的具体创建和初始化过程;本文将举例去创建不同的形状,使用者只需要告诉工厂类要创建什么样的形状即可,使用者并不知道具体形状的创建过程。Shape.java :首先创建形状接口,指定形状的共有属性或方法,本例中也可以使用普通类让子类继承public interface Shape...

2018-09-29 15:27:14 158

原创 设计模式——迭代器模式

我尽量不打错别字,用词准确,不造成阅读障碍。很简单的一种设计模式,因为其在数据、集合、列表等领域被广泛使用,所以已经被各大语言收入其中进行封装;平常我们遍历一个LinkList的时候一般会用foreach遍历,那么foreach是怎么遍历的呢?其实是内部使用了迭代器模式实现的。补充:遍历一个ArrayList的时候一般会用for循环,遍历一个LinkList的时候一般会用foreach...

2018-09-20 14:32:36 222

原创 Handler机制理解二

本文基于Android API 24 Platform 中 android.jar下的os中的代码;在Actiivity启动的时候会启动一个ActivityThread线程,在这里面会执行Looper.prepareMainLooper();方法创建一个looper,其中Looper类很干净,没有继承任何父类,也没有实现任何接口。看一下prepareMainLooper()的源码:publ...

2018-09-12 17:10:04 168

原创 Android中HashMap的简单理解

我尽量不打错别字,用词准确,不造成阅读障碍。注:本文基于Android API 24 Platform 中 android.jar下的HashMap,跟Oracle的JDK 1.8 还是很多不一样的,Oracle使用的是红黑树,差别挺大,似乎和Oracle的JDK 1.6 很像。看源码是很枯燥的,请静下心来。一. 基本知识1.HashMap是一个散列表,存储是基于键值对...

2018-09-11 17:33:22 8820

原创 TCP协议讲解(二)——三次握手和四次挥手

我们说TCP提供了一种面向连接的、可靠的字节流服务,面向连接指的就是每次传输数据前,都要建立连接;可靠性: 1.应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度不变。2.当TCP发出一个段后,它启动一个定时器,等待目地端确认收到报文段。如果不能及时收到一个确认,将重发这个报文。3.当TCP收到另一端的数据,他将发送一个确认,但并不是立即确认...

2018-08-31 15:01:28 225

原创 TCP协议讲解(一)

TCP协议属于应用层协议,其格式为:源端口号: 16bit,注意并不是IP地址,是应用的端口号,0~65535之间;顺序号: 32bit,来标识从TCP源端向TCP目标端发送的数据字节流的序号,例如一个报文序号段是100,返发送的数据是200字段,则下一个报文序段号应为301;确认号: 32bit,只有ACK为1时,这个才有效,包含目标端所期望收到源端的下一个数据字节;首部长度...

2018-08-31 14:36:29 432

原创 TCP/IP协议粗解

本人软件开发人员,在此对TCP/IP做一个了解,所以有的问题并没有深入去探究。为什么会有IP协议的存在?底层的以太网协议规定了电子信号如何组成数据包,解决了子网内部的点对点通信,可以使用MAC地址。但是它无法解决多个局域网如何互通的问题,所以就出现了IP协议及IP地址。所以说,IP协议实现了路由功能;我的理解:MAC是物理层次表明设备的唯一标识,一般不可更改,IP是在网络拓...

2018-08-31 14:22:49 445

原创 Android原生嵌入RN

我尽量用词准确,不打错别字,不造成阅读障碍。最近项目要使用RN,虽然去年就学过了,但是学的不系统,也没在原生中使用过,借此机会,回顾一下文档。这篇文章是记录原生中嵌入RN的界面,分两种,一.单独的Activity使用RN,二.原生页面加入RN页面,两个页面混合。这是一篇适合初学者的文章,将官网上的方法自己实践了一遍并指出了可能会遇到一些坑。先附上中文网链接,有些问题请看上面的解释:...

2018-05-30 17:26:28 3224 4

原创 shape的学习

我尽量不打错别字,用词准确,不造成阅读障碍。shape和selector已经使用过很多次了,但是一直没在脑海中有个全面的知识网络,特此总结一下。shapeshape属性有很多,主要介绍常用的方法。shape常用标签:shape&lt;shape xmlns:android="http://schemas.android.com/apk/res/android"...

2018-05-02 11:02:23 457

原创 简单混合开发入门——Android与JS交互

我尽量不打错别字,用词准确,不造成阅读障碍。其实很早就接触了这部分知识,只是突然想要梳理一下知识点,感觉写出来要好很多。Android与JS交互其实是早期混合开发的主要部分,作为混合开发的入门学习和Android开发知识点学习是必要的。而现在的混合开发可以模块化开发中作为一个模块,例如单独用RN写一个模块再集成到app中。交互分为Android调用JS方法,JS调用Androi...

2018-04-26 15:52:58 566

原创 设计模式——构造者模式

我尽量不打错别字,用词准确,不造成阅读障碍。构造者模式是我知道的设计模式中在单例模式后最简单的模式,入门理解很简单。解释:将一个复杂对象的构造与它的表示分离,使得同样的构造过程可以创建不同的表示。表现形式:链式调用。 构造者模式可以用来做工具类的使用,还可以有效解决传递参数过多的情况。概念难理解,举例(Android),把例子看明白了再回头看看概念其实最合适:...

2018-04-25 18:22:11 325 1

原创 Material Design——控件大汇总(三)

我尽量不打错别字,用词准确,不造成阅读障碍。汇总三主要是讲一些突然想起来或新接触的控件,会随时更新,如果想了解其他控件及布局,请移步我的上一篇文章Material Design——控件大汇总(二);目前有BottomNavigationViewBottomNavigationView最终效果图:这个布局设置了padding所以看起来有些奇怪。如果需要代码,请跳到最后一部...

2018-04-24 15:11:13 3153 1

原创 设计模式——单例模式

我尽量不打错别字,用词准确,不造成阅读障碍。单例模式是常用的模式之一,对初学者来说也是最好理解的设计模式之一。应用场合:只要求有且只有一个对象。作用:保证整个应用中某个实例有且只有一个。饿汉模式public class Singleton{ private Singleton(){} //构造方法私有化,禁止外部直接创建对象 private stat...

2018-04-24 10:56:35 158

原创 Material Design——控件大汇总(二)

我尽量不打错别字,用词准确,不造成阅读障碍。本篇继续对常用MD控件及效果进行汇总,如果没有看到你想要了解的控件使用方法,请阅读我的另一篇文章https://blog.csdn.net/fly_li_sir/article/details/79704021本篇文章涉及:NavigationView、SwipeRefreshLayout、ToolBar、AppBarLayout、Col...

2018-03-27 17:59:22 5300

RectView-资源上传下载进度圆饼展示(扇形显示)

可以根据上传进度改变扇形(圆饼进度)进度,我这也是根据别人的改的。此工具自由度比较高,代码简单明了,可以参考,就让我收点积分吧,要是没有人我明天再来喊喊。

2017-08-02

空空如也

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

TA关注的人

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