- 博客(43)
- 收藏
- 关注
原创 Java多线程回答整理
1.说说volatile关键字答:一个变量被volatile修饰之后,那么就具备了两层语义:1.保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。2.禁止进行指令重排序,一定程度上保证了有序性。实现原理是:《深入理解Java虚拟机》:“观察加入volatile关键字和没有加入volatile关键字时所生成的汇编代码发现,加入volatile关键字时,会多出一个lock前缀指令”。lock前缀指令实际上相当于一个内存屏障(也称内存栅栏),内存屏
2022-02-13 14:37:13 219
原创 应用层之HTTP协议
1.Http头部 HTTP 头部本质上是一个传递额外重要信息的键值对。主要分为:通用头部,请求头部,响应头部和实体头部。通用头:是客户端和服务器都可以使用的头部,可以在客户端、服务器和其他应用程序之间提供一些非常有用的通用功能,如Date头部。请求头:是请求报文特有的,它们为服务器提供了一些额外信息,比如客户端希望接收什么类型的数据,如Accept头部。响应头:便于客户端提供信息,比如,客服端在与哪种类型的服务器进行交互,如Server头部。实体头:指的是用于应对实体主体...
2021-08-22 11:12:22 145
原创 【框架】ButterKnife
一、使用方法一、添加依赖1.项目的build.gradle的buildscript中配置:buildscript { repositories { mavenCentral() google() } dependencies { classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3' }}2.module的build.gradle中应用:apply plugin: 'com.
2021-07-01 00:29:43 499
原创 【框架】极光推送。
一、背景介绍1、什么是推送使应用程序,即时接收到由服务器端发起的通知或者消息的一种技术。2、推送有什么用如App在通知栏弹出新闻消息等。3、实现推送的方式客户端定时轮询。客户端需要一直存货,定时向服务器请求数据。 客户端与服务器建立长连接。4、短连接与长连接短连接:数据交互时,建立连接,数据交互完成后,连接关闭。如HTTP请求。 长连接:客户端与服务器之间始终保持着一个通信连接。如消息推送等。5、推送实现原理...
2021-06-27 17:18:23 290
原创 【框架】GreenDao数据库框架
一、背景 Android数据库SQLite原生API SqliteOpenHelper不友好,所以出现了许多ORM框架来帮助我们处理数据库操作。所谓ORM框架,即Object-Relational Mapping,它的作用是在关系型数据库和对象之间做一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。而GreenDao是基于Android的ORM框架中的佼佼者,优点如下:性能(可能是Android上最快的ORM) 易用性(..
2021-06-21 23:01:41 1675
原创 【框架】EventBus事件总线
一、背景 常用的实现组件间通信的方式有:设置监听器、使用本地广播。设置监听器的弊端在于需要定义业务接口,并且会使监听者与被监听者耦合。使用
2021-06-14 12:08:41 280 2
原创 UML类图
UML类图https://www.jianshu.com/p/57620b762160https://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html
2020-08-26 13:55:12 168
原创 Menu总结
三种Menu:选项菜单(OptionMenu)、上下文菜单(ContextMenu)、弹出菜单(PopupMenu)。optionMenu的所有者是Activity,显示在标题栏,ContextMenu的所有者是View,长按某个View后弹出,PopupMenu的所有者是View,点击某个View后弹出。OptionMenu使用:重写:onCreateOptionsMenu(), onOptionsItemSelected()ContextMenu使用:重写:onCreateContextMe
2020-07-19 11:05:52 149
原创 Android WebSocket
https://blog.csdn.net/fomin_zhu/article/details/85990363 OkHttp+WebSocket使用https://blog.csdn.net/u014005316/article/details/77743369?utm_medium=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_sou...
2020-06-14 21:06:48 151
原创 Android常用框架汇总!!!(重要)
https://www.jianshu.com/p/d285ff72f398 Android开发常用框架汇总
2020-04-09 19:08:54 747
原创 ViewGroup的draw和onDraw的调用时机
https://blog.csdn.net/weixin_34168700/article/details/88002501
2020-02-26 11:26:40 278
原创 Kotlin little tips
实际上经过const修饰的的才是Java中理解的常量Kotlin的空安全设计对于声明可为空的参数,在使用时要进行空判断处理,有两种处理方式,字段后加!!像Java一样抛出空异常,另一种字段后加?可不做处理返回值为 null或配合?:做空判断处理在 Kotlin 中,三个等号 === 表示比较对象地址,两个 == 表示比较两个值大小。...
2019-12-17 20:51:53 613
原创 JAVA NIO缓冲区(Buffer)
https://blog.csdn.net/xialong_927/article/details/81044759 JAVA NIO缓冲区(Buffer)
2019-12-11 16:01:32 101
原创 播放器开发
https://blog.csdn.net/wurui8/article/details/49159851 Android 视频缩略图的缓存机制和异步加载https://blog.csdn.net/love_techlive/article/details/45559077 MediaSrore媒体库刷新...
2019-11-09 15:20:32 132
原创 动态权限申请
https://blog.csdn.net/qq_34330286/article/details/79660059 Android 6.0以上动态权限申请对于需要动态申请的权限,任然需要在Manifest文件当中再做声明!!!Android 这边在 target 23 以上时会启用权限检查,默认不给敏感权限,比如存储、语音等,需要 app 自...
2019-11-07 09:58:11 177
原创 Android数据库操作
https://blog.csdn.net/hou09tian/article/details/80525912 Android Studio中通过SQLiteDatabase类操作数据库https://blog.csdn.net/hou09tian/article/details/82991507 Android Studio中通过SQ...
2019-11-06 11:48:02 98
原创 Android系统服务——WMS与AMS
https://www.jianshu.com/p/47eca41428d6 Android系统服务——WMS与AMS所以本质上来讲,Activity与Service是平级的关系,这也就解释了为什么Manifest文件中声明Activity与声明Service是相同缩进(层级)的。...
2019-10-31 19:09:24 206
原创 Android图形库
https://blog.csdn.net/yili_xie/article/details/4803565 skia图形库概述重点!!!
2019-10-30 11:49:06 260
原创 Path类
https://www.jianshu.com/p/2c19abde958c Path类详解(重点!!!经常看,很多函数的用法需要记住)https://blog.csdn.net/xiaohai695943820/article/details/79577576 Path类常用函数总结...
2019-10-24 10:30:22 94
原创 编译Bug记录
导入依赖出现Failed to resolve的解决办法 https://blog.csdn.net/qq_32204197/article/details/84068064
2019-10-22 19:58:17 107
原创 Java内部类
内部类可以分为:成员内部类、局部内部类、匿名类。内部类对象依赖于外部类对象,除非已经存在一个外部类对象,否则不会出现内部类对象。在实例化内部类对象时,必须在new操作符之前提供一个外部类对象的引用。public static void main(String args[]){ OuterClass out = new OuterClass(); OuterClass....
2019-10-11 16:38:06 65
原创 RecyclerView
https://blog.csdn.net/weixin_43468667/article/details/89435098 Android学习之RecyclerView的使用https://www.jianshu.com/p/4f9591291365 超详细RecyclerView详解...
2019-10-11 15:58:15 93
原创 各种设计模式
https://www.runoob.com/design-pattern/singleton-pattern.html 每种设计模式详解(菜鸟教程)
2019-10-10 20:36:07 92 1
原创 Java泛型
https://www.jianshu.com/p/31b44188b973 Java泛型详解 https://www.cnblogs.com/coprince/p/8603492.html Java泛型详解
2019-10-08 20:41:46 68
原创 Tips of android
Android自定义回调监听的实现。。。(形式固定,需要记住)https://www.jb51.net/article/133137.htm注意在调用函数的地方对监听器判空!!!接口不能new,但是可以new接口的实现类,如监听器中的匿名内部类【重点】https://blog.csdn.net/fitaotao/article/details/82491789...
2019-10-08 20:41:38 143
原创 视频中抽取关键帧
https://www.jianshu.com/p/0f6578362e58 方法一:exoPlayer2相关方法;方法二:使用MediaExtrator、MediaCodec对原始数据进行读取和解码,从而解析出每帧图片。使用MediaMetadataRetriever类【重点】https://blog.csdn.net/u011506...
2019-10-08 20:41:15 998
原创 【MediaPlayer】seekTo()方法跳转播放位置不准
seekTo()方法跳转播放位置不准https://blog.csdn.net/u012510322/article/details/79803433 “退出后记录播放位置,下次继续播放,可能出现播放位置不准,原因是播放了上次记录位置附...
2019-10-08 20:40:53 454
原创 OpenMAX总结
https://blog.csdn.net/hejjunlin/article/details/52629598 OpenMAXhttps://blog.csdn.net/a910626/article/details/81455959 MediaCodec基本原理及使用https://blog.csdn.net/u01390422...
2019-10-08 20:40:04 164
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人