Android
你的阿爸
一个爱好计算机的程序媛
展开
-
关于Object与String类中hashcode()的区别,以及equals()与toString(),hashcode()联系
这个文章的标题是我由别的问题而引发的疑问:1. 为何子类一般都要重写equals()这个方法2. 为何重写equals()方法时需要重写hashcode()方法,而hashcode()方法的作用又是如何,hash值是怎么计算的 然后通过看源码发现Object类与String类中都有hashcode()方法,接下来为大家一一梳理这其中equals()与toString(),hashcode(...原创 2020-04-05 14:55:08 · 505 阅读 · 0 评论 -
万人直播架构与CDN网络
CDN网络介绍本文为慕课网音视频学习笔记泛娱乐化直播架构共享端(美女直播端:电脑、手机)发起信令到信令服务器,信令服务器进行逻辑处理(例如:创建房间、聊天、礼物都是以信令的方式进行传输处理的),流媒体云( CDN ):对音视频流( RTMP )进行转发,将信号转发给收看用户流程描述共享端共享端发送信令到信令服务器,请求创建房间信令服务器收到信令后,创建房间,然后给共享端返...原创 2019-08-21 20:15:29 · 952 阅读 · 0 评论 -
Android 音视频开发(二):使用 AudioRecord 采集音频PCM并保存到文件(学习笔记)
实现 Android 录音的流程关于 AudioRecordAndroid SDK 提供了两套音频采集的API,分别是:MediaRecorder 和 AudioRecord,前者是一个更加上层一点的API,它可以直接把手机麦克风录入的音频数据进行编码压缩(如AMR、MP3等)并存成文件,而后者则更接近底层,能够更加自由灵活地控制,可以得到原始的一帧帧PCM音频数据。如果想简单地做一个录音机...原创 2019-08-20 23:50:11 · 2101 阅读 · 0 评论 -
缓存机制
缓存机制二级缓存:内存 -> 硬盘 -> 网络当查找数据时,先从内存中查找,若无则查找硬盘,若无再请求网络当从网络获取数据后,同时存储到内存和硬盘中缓存框架LruCache 内存缓存 DiskLruCache 硬盘缓存ASimpleCache(ACache)RxCache缓存机制类似Glide之类的大型框架都是使用自己的缓存机制类似Message里面的...原创 2019-06-05 17:08:43 · 281 阅读 · 0 评论 -
享元模式
定义享元模式(Flyweight)是对象池的一种实现。享元对象中,可以共享的状态是内部状态,内部状态不会随着环境的变化,不可以共享的状态称为外部状态,外部状态会随着环境变化而变化。享元模式中会创建一个对象容器,经典的享元模式中这个容器是一个Map,它的key是享元对象的内部状态value为享元对象本身。使用者通过内部状态从享元工厂中获取享元对象,如果有缓存则使用缓存,如果没有则创建一个...原创 2019-06-05 17:07:03 · 193 阅读 · 0 评论 -
OkHttp的TLS原理解析
HTTP与HTTPSHTTPS 是在 HTTP 和 TCP 之间加了一层 TLS/SSL,这个 TLS协商了一个对称密钥进行 HTTP 加密TLS与SSL两者在传输层对网络连接进行加密,为并列关系SSL/TLS 不仅仅可以用在 HTTP,也可以用在 FTP,Telnet 等应用层协议上TLS是SSL标准化后的产物,建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本TLS较...原创 2019-06-05 17:05:39 · 897 阅读 · 0 评论 -
OkHttp源码解析
OkHttp是什么官方解释:适用于Android和Java应用程序的HTTP和HTTP/2的客户端OKHTTP是一个高效的HTTP库网络请求发展:HttpURLConnection—>Apache HTTP Client—>Volley—->okHttpSPDY -> http2HTTP是现代应用网络的方式。这就是我们交换数据和媒体的方式。有效地执行HTTP可...原创 2019-06-05 17:04:14 · 344 阅读 · 0 评论 -
IO和NIO的区别
主要内容NIO简介Java NIO 是 java 1.4,之后新出的一套IO接口NIO中的N可以理解为Non-blocking,不单纯是New。NIO的特性/NIO与IO区别IO是面向流的,NIO是面向缓冲区的IO流是阻塞的,NIO流是不阻塞的IO没有选择器,NIO有选择器读数据和写数据方式从通道进行数据读取 :创建一个缓冲区,然后请求通道读取数据。从通道进行数据写入 :创建一...原创 2019-06-05 17:01:57 · 3384 阅读 · 0 评论 -
Android Studio快捷键
优化importAndroid Studio会自动导入使用类的包,但是当使用的类删掉的时候,导入的包还在。这时,可以使用,使用之后会将没用到的包自动删掉,并且会对包的顺序进行排序Control + Alt + O缩进/反缩进除了使用自动缩进以外,也可以使用Tab来缩进代码,以及使用Shift +Tab来反缩进代码开始新的一行Android Studio 提供了在光标所在行开始新的一行...原创 2019-06-05 16:59:41 · 161 阅读 · 0 评论 -
AutoCompleteTextView如何传一个对象而不是简单的List<String>且仅展示想要的value
需求如题所示,每次看到 AutoCompleteTextView(后文将以AT表示此控件)的示例用法都是仅仅能传进去一个 List<String>,若最后我们想要的不是输入框内的值,而是值对应的Id的时候肿么办咧? 举个栗子:有这么一个 Bean,Student 类,当我们把这个对象传到 AT 中时,我们仅仅只想展示 studentName,不展示其余字段,然而看源码发现,AT 控件...原创 2019-01-04 10:52:46 · 525 阅读 · 6 评论 -
使用线程进行App的自动下载安装(带进度显示)
此线程只复制下载安装,不包括检查更新,所以是用在已经检查更新获得服务器返回的下载路径后用于下载安装的 此线程可以直接复制粘贴使用,也可以到我的github上面添加依赖后直接在activity中调用即可 github项目地址import android.net.Uri;import android.os.Environment;import android.content.In...原创 2017-08-16 12:10:31 · 423 阅读 · 2 评论 -
Http客户端与服务器端的交互
服务器端:先选择服务器 新建一个 web 项目 新建一个 .jsp 文件(index.jsp)(首页的布局) 新建一个包(servlet) 包里新建一个类 MyServlet 并继承 HttpServlet 重写 MyServlet 中的 doGet() 方法和 doPost() 方法直接, 在 doGet() 中回调 this.doPost(request,response); d...原创 2017-03-18 15:10:05 · 2713 阅读 · 0 评论 -
关于Handler
在主线程中新建一个子线程进行耗时操作,但是子线程不可以改变 UI,所以在需要改变 UI 界面的时候就给 Handler 发送消息(如:更新已完成/更新进度),让 Handler 来通知主线程并改变 UI 当子线程需要跟主线程交流时,也就是当子线程要跟 UI 主线程说:亲,偶下载文件到80%了或者偶已经把文件下载完成了!执行这句代码handler.sendEmptyMessage(1);//发...原创 2017-03-18 15:06:59 · 462 阅读 · 0 评论