自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Go的channel常见使用方式

go关键字可以用来开启一个goroutine(协程))进行任务处理,而多个任务之间如果需要通信,就需要用到channel了。func testSimple(){ intChan := make(chan int) go func() { intChan <- 1 }() value := <- intChan fmt.Println("value : ", valu...

2018-11-21 17:39:25 15704 3

原创 内存泄漏与优化分析指南

前言在android开发中,我们都或多或少的会遇到一些内存泄漏的问题,虽然大都知道哪些情况会导致内存泄露,但是还是不可避免的会遇到类似的问题,因此,知道如何去查找内存泄露就显得非常重要了。本篇和大家分享下如何进行内存泄漏的定位分析,以及对内存占用的优化分析。相信大家看了之后会有所收获。为了有一个良好的分析体验,我特意新建了一个用于分析内存方面的项目,该项目是一个简易的新闻客户端,结构上大致...

2018-09-03 20:45:36 885

原创 Glide原理之执行流程分析

Glide是一个优秀的图片加载库,它有如下优点: 1. Glide可以监听Activity的生命周期管理,更加合理的管理图片的加载和释放。 2. 加载质量,Picasso默认采用的ARGB-8888, Glide默认采用的是RGB-565,内存占用会减小一半。 3. Glide可以加载Gif图。 4. 缓存策略和加载速度。Picasso缓存的是全尺寸,而Glide的缓存的图片和ImageV...

2018-06-24 17:19:19 534

原创 Android水波纹布局和展开收起动画实现

前言在之前的博客android如何给整个视图view圆角显示中有提到过如何实现对View显示进行圆角裁剪,其原理其实也比较简单。这里先看看动画效果。View负责绘制显示的draw方法因为View的draw方法是负责View绘制显示的,并且它是负责整体显示的,包括View的背景,内容,以及子View的递归显示等,因此要使当前View以及它包含的子View也实现裁剪的效果,就需要重...

2018-04-16 15:56:03 3678

原创 android音频编辑之音频合成

转载请标明出处: https://blog.csdn.net/hesong1120/article/details/79744653 本文出自:hesong的专栏前言音频编辑系列: - android音频编辑之音频转换PCM与WAV - android音频编辑之音频裁剪 - android音频编辑之音频合成本篇主要讲解音频PCM数据的合成,这里合成包括音频之...

2018-03-29 16:16:47 6702 4

原创 Java线程Thread之interrupt中断解析

转载请标明出处: http://blog.csdn.net/hesong1120/article/details/79164445 本文出自:hesong的专栏这一篇我们说说Java线程Thread的interrupt中断机制。interrupt之中断状态标记interrupt中断机制中有如下方法: - Thread.interrupt(),设置当前中断标记为true

2018-01-25 17:18:47 8541

原创 android音频编辑之音频裁剪

转载请标明出处: http://blog.csdn.net/hesong1120/article/details/79077013 本文出自:hesong的专栏前言本篇开始讲解音频编辑的具体操作,从相对简单的音频裁剪开始。要进行音频裁剪,我的方案是开启一个Service服务用于音频裁剪的耗时操作,主界面发送裁剪命令,同时注册EventBus接受裁剪的消息(当然也可以使用广播

2018-01-16 17:07:49 6740 2

转载 [转]Android 开源项目分类汇总

Android 开源项目分类汇总,更全更新可见 codekk.comOther: English Version, 繁體版, Website Version. 我们的微信公众号:codekk。二维码如下: 专注于 Android 开源分享、源码解析、框架设计、Android 内推。 我们的网站:www.codekk.com Android

2018-01-12 15:33:31 1895

转载 [转]Android Studio 快捷键整理分享-SadieYu

文章编辑整理:Android Studio 中文组 - SadieYuAlt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替

2018-01-12 15:21:54 251

原创 android音频编辑之音频转换PCM与WAV

转载请标明出处: http://blog.csdn.net/hesong1120/article/details/79043482 本文出自:hesong的专栏前言本篇开始讲解在Android平台上进行的音频编辑开发,首先需要对音频相关概念有基础的认识。所以本篇要讲解以下内容: 1. 常用音频格式简介 2. WAV和PCM的区别和联系 3. WAV文件头信息 4.

2018-01-12 14:15:48 18143 7

原创 Java线程Thread之yeild方法解析

转载请标明出处: http://blog.csdn.net/hesong1120/article/details/79032252 本文出自:hesong的专栏Java线程Thread的yeild方法可能在日常使用中比较少出现,那它是做什么用的,我们先查查官方文档解释。yieldpublic static void yield()Causes the currently

2018-01-11 11:31:38 1240 1

原创 python爬虫之抓取代理服务器IP

转载请标明出处: http://blog.csdn.net/hesong1120/article/details/78990975 本文出自:hesong的专栏前言使用爬虫爬取网站的信息常常会遇到的问题是,你的爬虫行为被对方识别了,对方把你的IP屏蔽了,返回不了正常的数据给你。那么这时候就需要使用代理服务器IP来伪装你的请求了。 免费代理服务器网站有: - 西刺免费

2018-01-06 19:21:50 4090

原创 Python开发环境搭建配置

转载请标明出处: http://blog.csdn.net/hesong1120/article/details/78988597 本文出自:hesong的专栏前言 工欲善其事必先利其器Python开发的第一步就是开发环境的搭建配置了,一个清晰流畅并且简单的配置过程会让我们在Python的学习之路开个好头,你会更有信心使用它的。 注意,本篇虽然是介绍Python

2018-01-06 14:28:53 3399

转载 20个博客SEO优化技巧

转自:http://lusongsong.com/reed/114.htmlSEO优化也就是搜索引擎优化,搜索引擎优化也就是博客内容被搜索引擎收录及优先排序,以此增加博客的点击率和曝光度,最终提升博客的综合能力。写博客的人,内容不仅要对用户友好,让大部分人都能看懂,而且也要对搜索引擎友好。这里主要介绍下卢松松常用的博客SEO优化技巧。1:博客要经常保持更新,文字始终紧紧围绕关键字,围绕网站

2018-01-04 20:17:40 803

原创 ButterKnife原理分析(二)注解的处理

本文同步发表于我的微信公众号 hesong,扫一扫文章底部的二维码或在微信搜索 hesong 即可关注。上一篇我们讲解了ButterKnife的设计思想,理解了ButterKnife绑定相关源码的实现逻辑。但是它是怎么通过注解的方式生成的那些逻辑代码,这才是最让我们迫切想知道,因此在这篇,我将说说ButterKnife中注解处理的原理。本篇主要有以下内容: 1. 注解Annotation

2017-12-31 23:49:25 580

原创 ButterKnife原理分析(一)设计思想

用过ButterKnife的同学都知道,它可以方便我们用注解的方式来省去每次用findViewById去获取View对象等。而其实它的原理也是很简单的,就是在调用ButterKnife.bind(Object obj, View view)方法时,创建一个对象,这个对象构造方法里面会调用参数view的findViewById来赋值给obj中你注解过的字段(通常是各种View),也就是说ButterK

2017-12-19 12:46:46 549

原创 网络库Retrofit2原理简析

之前我们分析过了Okhttp这个优秀的网络请求库,但是在实际的使用时,还是会觉得有很多的不方便,你会发现它跟HttpUrlConnection,或者HttpClient一样,是一个比较底层的网络请求库,处理的是底层的网络请求和响应的问题。而我们在业务中要处理上层的逻辑,比如响应内容解析,方便的API实现等,这都需要我们对它进行重新封装,以适合我们特定的业务逻辑。那有没有比较简洁,方便,优雅的封装方式

2017-12-11 17:53:55 592

原创 Okio精简高效的IO库

本节主要讲讲Okhttp底层使用的IO库–Okio,Okio同样是Square公司推出的增强型IO处理库,旨在增强原生Java IO流的处理,以更加简便,高效的方式处理IO流操作。接下来我会从以下方面来分析它。 Okio的特点和优势 Okio结构分析 Okio的流程分析,读与写的实现 Buffer写数据的精华操作 Buffer缓存的总结 TimeOut超时机制 Gz

2017-11-28 10:43:59 1287 2

原创 Okhttp解析(五)缓存的处理

大家好,之前我们讲解了Okhttp网络数据请求相关的内容,这一节我们讲讲数据缓存的处理。本节按以下内容讲解Okhttp缓存相关的内容。 缓存的优势 HTTP的缓存机制 Okhttp的缓存启用 Okhttp的读取缓存流程 Okhttp的存储缓存策略 Okhttp的CacheControl和缓存策略介绍 缓存的优势缓存的使用场景很多,通过它可以将数据通过一定的规则存储

2017-11-20 17:02:46 997

原创 Okhttp解析(四)网络连接的建立

Okhttp作为一款底层网络访问框架,它和Volley等上层网络框架不一样的地方在于,Okhttp自己实现了与服务端的TCP连接,并在此连接上根据HTTP协议的规范与服务端进行HTTP协议及内容的请求和响应。Okhttp将请求内容通过修正,填充等方式封装成符合HTTP规范的HTTP请求内容,通过TCP连接,将内容以流的方式输出给服务端,并从服务端返回的响应流中读取出响应内容,根据HTTP协议解析并作

2017-11-13 18:36:27 1456

原创 Okhttp解析(三)网络连接的管理

上节我们讲解了Okhttp网络请求和响应的处理过程,其中我们知道了请求之前是需要建立网络连接的,也就是http请求是需要建立TCP连接之上的。这也是符合TCP/IP四层模型和OSI七层模型中,传输层的TCP协议,应用层的HTTP协议应用。Okhttp在网络连接的管理方面有哪些特性和优势呢?我们来列举一下。 网络连接池的引入和管理机制。内部维护网络连接池,查找当前请求是否有对应可用的连接,避

2017-11-08 18:16:40 1037

原创 C++学习-基本数据类型

基本数据类型整型,字符型,布尔型,浮点型基本数据类型最小长度C/C++标准只定义了最低的位数,而不是必需的固定位数 - bool 布尔型 - char 字符型 8位 - wchar_t 宽字符型 16位 - short 短整型 16位 - int 整形 16位 - long 长整形 32位 - float 单精度浮点型 6为有效数字 - double 双精度浮点型 10位有效数字

2017-11-04 12:39:58 471

原创 Okhttp解析(二)网络请求的执行

上节我们讲解了Okhttp的简单介绍,请求任务的分发,以及请求响应的拦截。现在我们分析数据的请求是如何进行的。在阅读http请求数据之前,你可能需要了解http和tcp相关的知识。 http原理 http://www.jianshu.com/p/2efddfaea9c3 http://www.jianshu.com/p/26095e423da0 https原理

2017-11-04 11:49:44 594

原创 Okhttp源码解析(一)请求的分发,拦截

转载请标明出处: http://blog.csdn.net/hesong1120/article/details/78427994 本文出自:hesong的专栏Okhttp解析(一)请求的分发,拦截 Okhttp网络框架源码解析系列博客 - Okhttp解析(一)请求的分发,拦截 - Okhttp解析(二)网络请求的执行 - Okhttp解析(三)网络

2017-11-02 18:35:45 665

原创 Replugin插件化框架简要分析

题记写这篇关于Replugin插件化框架的分析,旨在引导读者去快速的了解RePlugin的大概实现原理,文中会抛出需要了解的知识点,并明确的指出大致的流程,指引你去更快速的理解它,避免走过多弯路。因为Replugin的源码中文注释已经够详细了,这里我不贴源码,节省读者的阅读时间,需要具体了解的对照着看源码,想必会更加清晰。

2017-10-26 18:10:09 721

原创 侧滑菜单之NavigationView原理分析

大家好,上次我们分析了侧滑菜单DrawerLayout的实现原理,明白了它是如何管理主体内容和侧滑菜单之间的关系,包括布局,触摸事件等的分析。我们同时也知道,侧滑菜单的内容大致上是顶部一块头像内容区域,下面是一系列的菜单项,那么它的菜单内容是如何实现的呢,我们接着分析。 本次的分析内容主要为以下几项: 结构分析 流程分析 菜单内容布局实现 菜单解析实现 1.结构分析本次

2017-10-19 18:39:54 791

原创 侧滑菜单(抽屉效果)DrawerLayout实现原理

DrawerLayout的实现原理分析。

2017-10-15 16:37:50 2919

原创 SurfaceView原理简述

SurfaceView原理分析,解决Surface为什么可以开启在新线程进行绘制的疑问。

2017-10-08 12:25:37 3052

原创 Java线程Thread.join方法解析

join字面上是加入的意思,我们先看看join方法的解释和实现。 /** * Waits for this thread to die. * 调用方线程(调用join方法的线程)执行等待操作,直到被调用的线程(join方法所属的线程)结束,再被唤醒 * An invocation of this method behaves in exactly the sa

2017-03-22 11:33:43 3128 2

原创 android音频降噪webrtc

在音频处理的开源项目中,webrtc是一个很不错的例子。它包含降噪,去回声,增益,均衡等音频处理。这里我讲讲我所使用到的如何使用降噪方式。

2016-11-20 13:13:58 16208 10

原创 android如何给整个视图view圆角显示

关于如何给一个view设置圆角,有哪些方法呢?

2016-07-23 18:25:26 13495 2

android音频降噪webrtc

android音频降噪,采用webrtc技术,提供底层源码和so库,亲测效果不错,请戴上耳机测试效果。

2016-11-20

在线查询中英文单词查询,包括音标,读音,示例,候选词

在线查询中英文单词查询,包括音标,读音,示例,候选词,释义,信息等,支持中文和英文单词的查询。

2011-11-15

英汉词典,SQLite数据库的详细应用实例,增删改查

一个简单的存储英文单词和翻译的小程序,支持删除,修改,增加,查询英文单词的功能,是SQLite数据库操作的一个很好的例子,包含增删改查的功能。

2011-11-15

空空如也

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

TA关注的人

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