- 博客(19)
- 收藏
- 关注
原创 Java之Arrays.asList(T...t)详解
学而时习之,不亦乐乎。今天的主题是Arrays.asList(),返回的List(ArrayList),为什么不支持remove,add操作。先上第一盘菜,跟着源码一步一步走 public static <T> List<T> asList(T... a) { return new ArrayList<>(a); }Arrays下的asList方法,返回的是一个ArrayList,发现此ArrayList非彼"ArrayLi
2021-04-18 16:09:28
550
7
原创 Java之无处不在的Node
前言 生活依旧如此美好。不断的学习不断的总结,那么我的总结来了。 从入行Android开发以来,刚开始的Google,百度,Ctrl+C,Ctrl+V的懵懵懂懂,未曾进一步学习为什么要这样写,只知道能解决问题。后来才意识到,解决疑惑,需要阅读和理解源码,才能知其然,知其所以然,做到举一反三。半道出家的人啊,需要补充Java基础,计算机基础知识,于是请教同龄先行者,敦子,猛锅子一行人,买了一些书籍,先后有Java编程思想,Java语言描述数据结构,Java并发...
2021-04-13 08:09:02
433
原创 自定义JsonAdapter解析Json
本文以Gson解析器:自定义JsonAdapter Json解析使用场景:json解析安全校验,避免外部输入非法数据Java Beanpackage com.redrose.rxandroiddemo.bean;import com.google.gson.annotations.JsonAdapter;import com.redrose.rxandroiddemo.json.UserJsonAdapter;@JsonAdapter(UserJsonAdapter.class)p
2021-04-06 22:50:32
1023
原创 学习:笔记 java 四种引用以及区别
学而时习之,不亦乐乎。强引用:强引用:只要强引用存在,垃圾回收器将永远不会回收被引用的对象,哪怕内存不足时, JVM也会直接抛出OutOfMemoryError,不会去回收。如果想中断强引用与对象之间的联系 可以显示的将强引用赋值为null,这样一来,JVM就可以适时的回收对象了软引用:软引用:在内存足够的时候,软引用对象不会被回收,只有在内存不足时,系统则会回收软引用对象, 如果回收了软引用对象之后仍然没有足够的内存,才会抛出内存溢出异常。 这种特性常常被用来实现缓存技
2020-10-27 23:29:59
163
原创 学习:笔记— 什么死锁和活锁?如何解决
学海无涯死锁:产生死锁的必备条件:1.互斥条件2.请求保持3.不剥夺4.环路等待用自己理解来解释:1.多个线程同时去那多把锁,并且,锁的数量小于等于线程数量2.多个线程去拿锁的顺序是互斥的3.拿到锁后,不释放如何解决死锁?从产生死锁的必备条件着手,方法一:让线程间拿锁的顺序由互斥改成一致,这样,CPU在分配时间片时,就不会产生死锁 方法二:尝试去拿锁,如果拿不到就释...
2020-10-15 22:51:49
867
原创 学习:笔记 Java volatile和synchronized得区别
学海无涯synchronized:锁对象。方法。多线程间获取同一把锁才能继续执行volatile:最轻量级的同步机制,线程间共享变量,可见,但是在多线程下,同时对这个变量写的时候,并不能保证正确的写入数据,只能保证线程间可见,并不能取代synchronized适用场景:一写多读,一个线程去写,多个线程去读错误加锁以及原因分析:先看代码:/** * @author yinsx * @DESC TODO * @time 2020/10/14 22:17 * @email y
2020-10-15 22:39:01
137
原创 学习:笔记—Thread.正确退出线程的方式以及原因
学海无涯:java 多线程基础知识:stop()Thread 的stop()为什么不建议使用,因为stop会导致线程的资源不被正确的释放,太过于强硬,interrupt()对线程发起一个中断,并不是真正的中断线程,其实是修改线程的中断标志位的值,不代表当前线程立即中断。源码 public static boolean interrupted() { return currentThread().isInterrupted(true); }..
2020-10-13 23:17:17
834
原创 学习:笔记-Java 静态代理和动态代理
学海无涯。静态代理:只能代理一个接口。动态代理,可以代理多个申明接口interface Wash { void onWash();}interface AnMo { void onAnMo();}声明静态代理对象/** * @author yinsx * @DESC TODO * @time 2020/10/12 21:40 * @email yinsxi@163.com */class Agent { AnMo anMo;
2020-10-12 22:33:32
184
原创 学习:关于解析网络请求Respondse数据--实现自己的TypeToken获取真实类型
学海无涯。参考Gson使用Type解析数据示例代码。可以查看源码查new TypeToken的时候使用的是哪个构造方法,以及如何获取到真实类型的,示例代码和自己获取真实类型: Type type = new TypeToken<Response<Data>>() { }.getType(); Gson gson = new Gson(); Response<Data> response = gson.
2020-10-11 20:48:48
311
原创 AccessibilityService之模拟手势自动刷视频
生活依旧如此美好。背景故事:最近朋友推荐我去刷快手极速版,说看视频可以赚钱,劈里啪啦的发了个邀请码给我。玩了几天确实赚了几块钱,至少今天的肠粉钱有,麻雀虽小,五脏俱全呐。之前看到微视有个自动刷视频的功能,挺好,播放完当前,自动看下一个。想着给快手极速版也加一个,免得手动了,即看了视频,又赚了钱。需求:实现自动刷视频的功能,想到的就是AccessibilityService可以用来实现这个功能。AccessibilityService和平常开发使用serice不一样,不需要去startServi.
2020-05-12 11:50:43
3819
原创 Androdx:No instance field mActive of type Landroid/util/SparseArray
记录一下遇到的一个崩溃,关于 Androdx:No instance field mActive of type Landroid/util/SparseArray,解决方案报错详情:偶然新建一个工程,集成一些常用框架后,启动后,突然报了一个很奇怪的错误,跳转Activity后,按返回键,就会崩溃,感觉就莫名其妙的崩溃。在没有任何其他逻辑的情况下,估计是依赖包冲突导致的。2020-04-...
2020-04-19 03:04:11
1540
原创 Android进程通信AIDL之数据监听,监听器移除
前言:抱着最起码的要求尽力去做好每一件事!——秋不白前言Studio生成AIDL的代码编写,就不赘述了,要注意的是.aidl和对应的.java 文件的包名要保持一致。直蹦主题吧本博客中有些细节问题忽略了,代码中也注释说明,在不考虑业务耗时的情况下,实现AIDL进程通信,数据更新监听,注册监听器和移除监听器,Binder死亡监听,服务断开连接重连解决方案。实现业务:监听图书新增变化...
2019-10-05 04:52:57
1817
2
原创 Android进程通信之Messenger简单分析和使用
前言—— 生活依旧如此美好 秋不白 之前有次面试遇到这样一个问题。如何使用Handler完成Activity和Service间通信?可惜之前对这方面没有进一步去了解,没有回答好。 当然是使用Messenger,查看Messenger的构造方法有两个,分别是: public Messenger(IBinder target) { mTa...
2019-10-03 01:42:31
1113
原创 现有Android工程集成FLutter module,报com.android.support 某包 版本不一致
flutter sdk下载以及环境配置,还有as插件安装就不多啰嗦了。在现有安卓工程中集成Flutter module,然后报一个com.android.support组下有包版本不一致的问题,比如 Android dependency 'com.android.support:support-media-compat' has different version for the c...
2019-05-24 10:16:18
766
原创 Android 自定义Camera 使用TextureView GLSurfaceView预览
前言:抱着最起码的要求尽力去做好每一件事!——秋不白 记录学习音视频的过程,目前到 了音视频的录制,后面再学习openGl ES,FFmpeg等 前面有使用SurfaceView 来预览Camera以及拍照,根据重力传感器来动态设置Camera.setRotation(degree),横着拍摄的照片,应该是横着的,竖着拍摄的照片应该竖着的,对吧,符合常识。...
2019-05-03 17:18:16
1064
原创 Android Parcelable对象序列化到磁盘以及反序列化
前言:抱着最起码的要求尽力去做好每一件事!——秋不白内容如题,仅个人探讨,以下代码都测试通过。 记录一次面试经历:面试官问到Serializable和Parcelable 的主要区别是什么,我说把知道的说了一遍,效率,S属于java api,P属于Android ,以及序列化的使用场景。他说不对,然后说S是系列化到磁盘,P是序列化到内存。我就百思不得其姐,决定好好研究一下...
2019-05-03 16:57:55
824
原创 Android 自定义Camera SurfaceView 拍照自动旋转图片及保存
前言:抱着最起码的要求尽力去做好每一件事! ——秋不白本文适用:针对项目的相机多张拍摄,查看图库(自己写的,查看自己拍摄的照片,不包含系统图库和其他文件夹的图片),其实也是自己项目中不断总结,为什么还要写个自定义相机呢,因为之前项目中写的不够好,拍照图片的旋转啊,现在离开公司了,总觉得还欠缺点什么,如有需要可以联系我,代码还没有上传github(后面我再放到gitbug),有兴趣,请移步ht...
2019-04-03 14:56:09
3074
原创 Android 接入MQTT协议总结
前言:抱着最起码的要求尽力去做好每一件事 ——秋不白 之前做了一个项目,需要接入MQTT协议。也是第一次,各种百度,博客,GitHub。最后还是成功的集成了。主要功能是,接收音箱端(是一个Android设备,联网接收消息,播放音乐,视频通话,类似小度同学),推送过来的数据。主要说下接入的过程遇到的坑。如果你正在接入,如果遇到这个问题,希望文字描述能帮到你 ,后面我在抽时间把代码补...
2019-03-25 19:07:59
1105
原创 浅谈Android Mvp模式开发及个人理解
MVP:Model View Present。前言:抱着最起码的要求尽力去做好每一件事 ——秋不白终于理解了MVP,给大伙分享下,大神勿喷,小白专用。第一次写博客好紧张,怎么样才能表现出经常写博客的样子,各位老铁。* Model: 处理数据* View : 显示数据(Activity或Fragment)* Present: 连接Model层和View层* Mvp 框架个人理...
2018-07-18 23:01:57
254
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人