自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (3)
  • 收藏
  • 关注

原创 了解Android的Handler机制

下面我们laHandler testHeanler=new Handler(){ @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); switch (msg.what){ case 1: ToastUtil.show("收到消息1"); } }};new.

2021-06-11 14:58:06 177 2

原创 关于CoordinatorLayout和ListView滑动冲突的解决

最近项目中使用到了CoordinatorLayout这种布局方式,搭配RecycleView,实现起来比较简单,而且不用自己处理滑动事件,但是改为了ListView后发生了滑动冲突.所以想到了以下解决方案:1.使用事件分发,当ListView在Y轴滑动时,将事件交给CoordinatorLayout处理,无效!!!2.取消ListView在Y轴的滑动,计算手指移动的距离,交给Coordinator...

2018-03-30 11:22:22 1363

原创 ffmepg H264 NALU分析

序列(GOP)、图⽚(pictrue)、⽚(Slice)、宏块(Macroblock)、⼦块(subblock)五个层次。//FLV/MP4/MKV中,h264需要h264_mp4toannexb 处理,添加SPS和PPS等信息。I帧不⽤参考任何帧,但是之后的P帧和B帧是有可能参考这个I帧之。H264采⽤了16*16的分块⼤⼩对,视频帧图像。H264将视频分为连续的帧进⾏传输,在连续的帧之间使⽤I帧、P帧和B帧。对于视频⽂件来说,视频由单张图⽚帧所组成,⽐如每秒25帧,但是图⽚帧的像素块之间存在。

2023-05-04 21:20:43 225

原创 FFMepg AAC ADTS格式分析

所以说number_of_raw_data_blocks_in_frame == 0 表示说ADTS帧中有⼀个。number_of_raw_data_blocks_in_frame + 1个AAC原始帧。number_of_raw_data_blocks_in_frame:表示ADTS帧中有。简单说,ADTS可以在任意帧解码,也就是说它每⼀帧都有头信息。机上播放,很⼤的可能就是AAC⽂件的每⼀帧⾥缺少了ADTS头信息⽂件的包装。每⼀帧的ADTS的头⽂件都包含了⾳频的采样率,声道,帧⻓度等信息,这样解。

2023-05-04 17:29:04 208 1

原创 C++有关静态数据成员的使用,说明以下几点

C++有关静态数据成员的使用

2022-12-27 13:36:40 346

原创 Retrofit原理解析

Retrofit是一个RESful的HTTp网络请求框架的封装原因是:网络请求的工作本质上是okHttp完成的,而Retrofit仅负责网络请求接口的封装1.上图说明了啥1.app应用程序通过Retrofit请求网络,实际上是使用Retrofit接口层封装请求参数,Header,Url等信息,之后由OKHttp完成后续的请求操作2.在服务器返回数据之后,oktttp将原始的结果交给Retrofit,Retrofit根据用户的需求结果进行分析在我们看Retrofit的构建过程Ret

2021-07-06 15:29:54 377

原创 Rxjava中subscribeOn(Schedulers.io())->源码分析

// TODO hook 给 IO 初始化RxJavaPlugins.setInitIoSchedulerHandler(new Function<Callable<Scheduler>, Scheduler>() { @Override public Scheduler apply(Callable<Scheduler> schedulerCallable) throws Exception { Log.d(L.TAG, "a...

2021-06-22 22:48:07 1092

原创 Rxjava源码分析

一、RxJava案例和流程 // 结论: new ObservableCreate() {source == 自定义source} // 2:Observable创建过程 源码分析 Observable.create( // 自定义source new ObservableOnSubscribe<String>() { @Override publi.

2021-06-22 17:25:55 138

原创 RxJava编程思想理解

1.核心思想 有一个起点(Observable)、一个终点(Observer),事件从起点开始传递,无中断的流向终点,在传递的过程中,可以对事件进行拦截(拦截可以改变事件的返回值),但终点只关心它的上一个拦截RxJava允许通过异步流的方式处理数据,并且提供了很多操作符,你可以将这些操作符作用于流上从而实现转换,过滤或者合并数据等操作。假设有这样一个需求:我需要把网络上的一张图片,下载保存到本地,进行展示传统的程序员会这样写// 弹出加载框private ProgressDi...

2021-06-22 10:52:53 197

原创 java线程认识

认识 Java 里的线程

2021-06-17 17:51:49 61

原创 JAVA多线程中的中断机制。主要是stop方法、interrupted()与isInterrupted()方法的区别

JAVA中有3种方式可以终止正在运行的线程①线程正常退出,即run()方法执行完毕了②使用Thread类中的stop()方法强行终止线程。但stop()方法已经过期了,不推荐使用③使用中断机制

2021-06-16 10:39:37 162

原创 自定义View: MeasureSpec是什么?

MeasureSpec是view中的内部类,基本都是二进制运算.由于int是32位,用高位标识mode,低30位表示size,MODE_SHIFT=30的作用是移位 UNSPECIFIED:不对View大小做限制,系统使用 EXACTLY:确切的大小,如:100dp AT_MOST:大小不可超过某数值...

2020-09-25 15:28:37 65

原创 c语言处理的四个阶段以及jni认识

jni1.定义:java native Interface,即java本地接口2.作用:使得java与本地其他类型语言(c,C++)作为交互3.jni是java调用native语言的一种特性4.jni是属于java的,与android无直接关系。实际中的驱动都是C/C++开发的,通过JNI,Java可以调用C/c++实现的驱动,从而扩展Java虚拟机的能力。另外,在高效率的数学运算、游戏的实时渲染、音视频的编码和解码等方面,一般都是用C开发的...

2020-09-25 15:26:38 151

原创 c语言指针打印

关于指针打印的一维数组运用int main(){ //指针与一维数组 //数组名就是数值的起始地址,也是第一个元素的地址,数组名就是一个常量指针 int array[]={1,2,3,4,5}; int*ptr_array=array;// ptr_array=ptr_array+1; printf("ptr_array=%p\n",ptr_array); printf("ptr_array=%p\n",&array); pri.

2020-09-25 15:25:03 4008

原创 一个Activity中添加多个Fragment导致fitsSystemWindows无效,在某个fragment中设置状态栏,背景,颜色都是自定义实现

无论是framelayout设置,还是viewpager设置,导致fitsSystemWindows无效的问题其中你都要设置dispatchApplyWindowInsets方法public class NewCustomViewPager extends ViewPager { private boolean isCanScroll = true; public NewCustomViewPager(Context context, AttributeSet attrs) {

2020-08-07 11:14:21 896

原创 View事件分发机制流程

android的view事件分发机制: View的事件分发主要有两个方法 1. dispatchTouchEcent(); 用来分派事件 2. onTouchEvent ();用来处理事件当我们用手指在屏幕点击时,事件首先被传递到Activity的dispatchTouchEvent方法。对的哦!你没有看错,Activity也有dispatchTouchEvent方法。我们来看看Activity的dispatchTouchEvent方法代码:可见,当...

2020-08-04 14:02:57 241

原创 关于android双进程守护-后台持续定位功能+项目IM中写到自己的即时通讯

1.关于进程守护无非就是6.0以下,6.0以上的高版本保活a.android中6.0以下的保护采用双线程守护即可是aidl (1)创建aidl文件 interface IServiceAidlInterface { String getServiceName(); } (2)创建本地service是LocalService类实现aid...

2020-06-15 10:37:00 1652 3

原创 java 运行时数据区域

java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干不同的区域类型: 程序计数器, 虚拟机栈, 本地方法栈, java堆, 方法区(运行时常量池),直接内存程序计数器: (jvm内存区域中唯一不会OOM)指向当前线程正在执行的字节码指令单地址虚拟机栈:局部变量表操作数栈动态连接完成出口大小限制-Xss...

2020-06-12 14:52:36 95

原创 sychronied修饰普通方法和静态方法的区别?什么是可见性?

sychronied修饰普通方法和静态方法的区别?什么是可见性? 对象锁是用于对象实例方法,或者一个对象实例上的 类锁:作用于类的静态方法或者一个类的class对象上的. 我们知道类的对象有很多个,但是每一个类只有一个class对象,所以不同对象实例的对象锁是互相不干扰的,但是每个类只有一个类锁 类锁其实锁的是每一个类的对应的class对象,类锁和对象锁之间是相互不干扰的 可见性是指多个线程访问同一个变量时候,其中一个线程修改了这个变量的值,其他线程能够立即看到修...

2020-05-26 11:05:59 540

原创 关于android与js做交互一个深坑

public final class InJavaScriptLocalObj { @JavascriptInterface public void showSource(String html) { System.out.println("====&gt;html=" + html); String[] mSqlit = html.split("s...

2018-06-25 20:29:01 219

原创 android版本sdk动态获取权限问题

如何获取在现有的BaseActivity类添加app内所需要的权限,即是动态获取权限/** * 需要进行检测的权限数组 这里只列举了几项 小伙伴可以根据自己的项目需求 来添加 */protected String[] needPermissions = { Manifest.permission.ACCESS_COARSE_LOCATION,//定位权限 ...

2018-03-21 18:11:06 1849 1

原创 环信适配android版本

Build version: 1.0 Build date: 1979-11-30 00:00:00 Current date: 2018-03-20 18:43:33 Device: HUAWEI PE-CL00  Stack trace:  java.lang.SecurityException: com.a1756fw.worker was not granted  either of th...

2018-03-21 10:10:27 799

project.rar

学习mvvm架构的

2021-07-01

MyApplication.rar

android中6.0以下的适配,双进程守护,以及高版本安卓6.0以上的sdk适配,jobservice以及在service中数据获取以及做一些本地存储

2019-08-02

仿微信布局加载图片,拍照,预览

拍照,浏览本地手机图片,仿qq和微信的

2016-11-23

空空如也

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

TA关注的人

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