自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 音频相关的基础知识

对音频的基础认知声音是什么音频录制模数转换PCM 格式采样率:采样深度:声道和立体声PCM 数据播放 PCM声音是什么声音(sound)是由物体振动产生的声波。声音作为一种波,频率在20 Hz~20 kHz之间的声音是可以被人耳识别的。-----百度百科夫斯基敲黑板:波、人耳识别频率:20 Hz~20 kHz音频录制最简单的音频录制流程为:设备采集获取模拟信号 —》模数转换 —》存储(...

2019-11-13 19:28:43 566

原创 白话讲Hash

白话讲 HashHash 是什么(不同输入,定长输出)hashcode 校验文件完整性(输入敏感)防止从 hashcode 推测输入内容(单向性)hashcode 每个人都不陌生,我从接触计算机就开始听说这个名词,但是对其理解,其实一直限于知道有这个东西,大体上是干嘛的,从来没有细致的去思考过它存在的意义。直到,现在研究一个加密 IM 的项目,去思考和学习加密相关的知识,对 hashcode 才...

2018-10-23 01:25:27 312

原创 DH 密钥交换原理

假设 q 为素数,对于正整数 a,x,y,有:(a^x mod p)^y mod p = a^(xy) mod p证明如下:令 a^x = mp + n, 其中 m, n 为自然数, 0 <= n < p,则有C = (a^x mod p)^y mod p = ((mp + n) mod p)^y mod p = n^y mod p = (mp +n)^y ...

2018-07-23 22:00:03 2083

原创 HashMap 设计原理与实现细节解析

知其然也要知其所以然,很多人讲 HashMap 都是看下源码,分析下,然后知道了什么拉链法,桶,红黑树,看了一圈,好像懂了,又好像没懂。本着死苛的精神,我来常识谈下我对 HashMap 理解,个人只见,有错误之处,欢迎批评指出。为什么要设计 HashMap?Map 我们都很好理解,就是 key,value 的容器。用来存储和获取以键值对存在的数据结构。比如统计每个人有多少 money:...

2020-04-08 00:47:05 326

原创 Java 枚举与类的区别

定义:枚举是指一组固定常量组成合法值的类型 首先是固定常量,一组有限常量集,比如一年的四个季节,太阳系的行星。其次,枚举是一种特殊的类型,定义了自己的一些规则,这些规则是建立在类规则之上的,是一种 type。性质:枚举是真正的 final,客户端不允许创建枚举类的实例,也不能对其进行拓展 Java 枚举本质上是 int 值。只能通过公有的静态 final 域为枚举类导出实例。public

2017-05-08 03:29:43 3746 4

原创 Android Handler 梳理(二)

在Handler梳理里,我主要讲到了主线程在Looper的loop里循环读取消息,然后处理消息的过程,并没有说明这个消息是怎样发送的。这一篇我准备继续顺着线程执行的顺序来一步步看,怎样从发送消息到处理一个消息,以及消息究竟是个什么东西。在接着上一篇思路往下走之前,先说一点关于进程和APP的东西。多进程的东西在此不涉及,默认我们的APP只有一个进程,当点击APP图标,需要启动一个APP时,系统为我们

2017-04-25 21:34:42 381

原创 Android Handler 梳理

只要是做过Android开发的,想必对Handler都不陌生。在我刚工作的时候就去看过Handler的源码,但当时局限于对多线程的理解并没有那么深刻,所以对Handler的理解也就仅仅停留在表面。现在有时间重看Handler源码,猛然发现:我擦,Handler这么简单,竟然好多面试都去问,好多人都是马马虎虎,一知半解。所以我想在这篇博客里,把Handler彻底讲透了,以后妈妈再也不用担心我对Hand

2017-04-25 21:32:56 323

原创 浅谈Http

在Android开发中最经常见到的与服务器交互的方式就是通过Http请求了。我还是按照自己的理解来说明Http请求究竟是个什么东西。尽量不去堆砌名词,用最简单的语言就像科普一样给描述出来。首先,Http是一种网络协议,协议这种东西就是约定好用来通信的嘛。通信协议无非就是通信双方对信息传输的约定,比如我要传个1,给你个高电平,传个0,就给你个低电平。尽管Http是应用层协议,它也是一种信息传输的约定

2017-04-25 21:30:05 363

原创 浅谈设计模式

浅谈单例模式存在目的节约资源确保系统中某个类只有一个实例。(确保对象的唯一性,避免不必要的系统开销)单例模式的三个要点 more 由三个要点可知单例模式的结构特点:内部实现只生成一个实例提供静态的 getInstance() 工厂方法,让客户可以访问它的唯一实例构造函数设为私有,在单例类内部定义一个静态 Singleton 类型对象,作为外界使用的唯一实例。

2017-04-25 21:21:03 349 1

原创 Android Framework框架之IBinder进程间通信

前面一篇介绍了Android中一个进程中有一个VM,一个主线程,一个Looper和一个MessageQueue,这一篇重点讲一下利用IBinder实现进程间通信。首先进程间通信肯定至少要有两个进程嘛。我们就模拟下这个场景,写一个Demo,声明这个Demo要用到两个进程。然后进程A放一个MainActivity,放几个按钮,用来控制播放音乐,另一个进程B用来实现播放音乐。通过这个Demo穿插这讲进程

2016-10-09 19:39:26 1478

原创 Handler发送sendMessage和postRunnable的区别

   先从平时的应用入手吧。试想这样一个场景,我们有一个下载文件的需求,而且我们在界面上要显示下载的状态:未下载,下载中,已下载。这个时候我们该怎么办?首先可以在界面上放一个Button,显示未下载,然后设置点击事件,点击后显示下载中,并开启一个线程去下载(这里用线程sleep代替,实际未下载)。等下载完成后,再把Button上的文字改为已下载。我们来试一下: public ...

2016-03-10 17:31:20 8005 4

原创 获取Android手机里所有已安装的APP

最近做一个功能时有这样一个需求,就是要扫描本地所有已安装的App,来判断是否安装了某个App,如果没有安装,点击按钮就下载,如果已经安装,点击按钮就打开该App。这个里面主要的功能就是获取当前安装的所有APP的信息。所以我就写了一个demo,展示所有已安装App的图标和包名。进入正题,先看效果图:

2016-03-03 16:43:12 25768 18

原创 Android刮刮卡原理及实现

本篇讲的内容比较简单,就是实现一个刮刮卡的效果,上面是一个蒙层,下面是你要刮出来的图像。我看到有很多相关的博客,但是还是决定自己写一篇。原因是对我这种菜鸟来说,刚开始做的时候,因为画错了画布,一直都显示不出来,各种怀疑,然后一句句看了好几遍,最后才找到,哦,原来自己画错了画布。当然,一些大神讲的时候由于篇幅有限,有时候又故意要展示多个知识点,当我这种菜鸟去看的时候,总觉得没有讲到痛点。好多次,做一

2016-03-01 14:22:28 1593 1

原创 Android夜间模式原理及实现方法

本篇要讲的内容很简单,只讲切换Theme这种切换夜间模式的方法。

2016-02-22 18:21:56 2308

原创 Activity生命周期详解

前面主要讲了Activity的生命周期的各种回调,以及Activity切换是onPause和下一个Activity回调的顺序关系。后面讲了Activity异常情况下的生命周期,以及引起异常生命周期常见的情况。还说明了onSaveInstanceState和onRestoreInstanceState这两个方法的意义和使用情况。

2016-02-16 19:25:11 546

原创 activity界面架构即activity视图层结构

刚搬砖不久,轻喷。欢迎批评。。。哈哈

2015-12-16 17:14:17 4809 1

空空如也

空空如也

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

TA关注的人

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