- 博客(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
原创 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
英汉词典,SQLite数据库的详细应用实例,增删改查
2011-11-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人