自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

巴黎会飞的猪

不知道什么时候我能成为大牛

  • 博客(73)
  • 资源 (3)
  • 收藏
  • 关注

原创 深入浅出Android Handler消息机制原理

Handler机制是由Looper和MessageQueue以及Message来构建消息机制的为了便于理解我们拿子线程的使用说起:使用方法Looper.prepare() -> new handler() -> Looper.loop()注意主线程里ActivityThread已经为我们做了这些工作就拿使用的方法顺序流程开始分析:Looper.prepare() priva...

2019-02-16 19:26:25 808

原创 OkHttp源码详细解析

优点OkHttp是一个高效的Http客户端,有如下的特点:支持HTTP2/SPDY黑科技socket自动选择最好路线,并支持自动重连拥有自动维护的socket连接池,减少握手次数拥有队列线程池,轻松写并发拥有Interceptors轻松处理请求与响应(比如透明GZIP压缩,LOGGING)基于Headers的缓存策略(不仅可以缓存数据,就连响应头都给缓存了)概念源码涉及的主要...

2019-02-14 13:01:03 267

转载 虚拟机系列-GC算法垃圾收集器

本文阅读大约需要20分钟转载声明概述对象存活判断垃圾收集算法标记 -清除算法复制算法标记-压缩算法分代收集算法垃圾收集器Serial收集器ParNew收集器Parallel收集器Parallel Old 收集器CMS收集器G1收集器转载声明本文转自:https://www.cnblogs.com/ityouknow/p/5614961.html 感谢作者的总结 如有侵权请联系我删除概述垃圾...

2019-01-23 21:48:09 129

原创 简单理解HTTP和HTTPS

本文阅读大约10分钟Http什么是HTTP?Http的发展HTTP通信传输Https特点HTTPS特点:HTTPS实现原理Http与Https的区别什么是Http协议无状态协议?怎么解决Http协议无状态协议?常见的HTTP相应状态码运用与总结安全性考虑:成本考虑:Http什么是HTTP?超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上...

2019-01-17 11:54:19 915

原创 Android 图解调用invalidate()和requestLayout()的过程

网上看到的图解,转发记录下: Android中View的生命周期,调用invalidate()和requestLayout()会触发哪些方法,一图道破天机。该图确实一看就非常清晰、让人简单的了解View的生命周期,也可以帮助我们更好的去掌握 如何自定义view,

2016-08-30 10:50:05 544

原创 【JAVA算法】简单-将有序数组转换为二叉搜索树

算法虽难,循序渐进,督促自己,总有进步;本博文仅为了督促自己学习算法,如有遗漏或错误之处,请不吝指教;题目将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例 :给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以...

2020-04-07 23:38:17 817

原创 【JAVA算法】简单-x 的平方根

算法虽难,循序渐进,督促自己,总有进步;本博文仅为了督促自己学习算法,如有遗漏或错误之处,请不吝指教;题目实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842...,...

2020-04-06 20:57:40 1966

原创 【JAVA算法】简单-二进制求和

算法虽难,循序渐进,督促自己,总有进步;本博文仅为了督促自己学习算法,如有遗漏或错误之处,请不吝指教;题目给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"解题方案:1....

2020-04-04 21:59:46 910 1

原创 隐私政策

本软件尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本软件会按照本隐私权政策的规定使用和披露您的个人信息。但本软件将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本软件不会将这些信息对外披露或向第三方提供。本软件会不时更新本隐私权政策。您在同意本软件服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于本...

2020-03-18 23:51:34 520

原创 源码理解之SparseArray

SparseArraySparseArray、HashMap对比SparseArray采用时间换取空间的方式来提高手机App的运行效率HashMap通过空间换取时间,查找迅速;(HashMap中当table数组中内容达到总容量0.75时,则扩展为当前容量的两倍)当小于某个数量临界点的时候,SparseArray的查询性能是优于 HashMap的,超过这个临界值SparseArray的查询...

2019-02-18 22:55:00 270

原创 Android启动模式需要注意的点

Android的四种启动模式大家都比较清楚,就是standard、singleTop、singleTask、singleInstance,接下来说下其中需要注意的点singleTop、singleTask、singleInstance启动模式的Activity被多次通过Intent方式进入后,不会重复onCreate而是执行onNewIntent方法;启动顺序为:ActivityA->...

2019-02-17 09:41:58 288

转载 算法之JAVA实现快速排序

原理理解通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。把整个序列看做一个数组,把第零个位置看做中轴,和最后一个比,如果比它小交换,比它大不做任何处理;交换了以后再和小的那端比,比它小不交换,比他大交换。这样循环往复,一趟排序完成,左边就是比中轴小的,右边就是比中轴大的,然后再用分治法,分别对这两个独立的数...

2019-02-14 18:26:17 482

原创 算法之JAVA实现冒泡排序

概念理解冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。图解实现/** * 冒泡排序 * 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 * ...

2019-02-14 17:03:03 145

原创 位运算

文章目录位运算与运算或运算非异或运算同或运算左移右移无符号右移负数的二进制如何得出?位运算java中位运算有四种,与,或,非,异或,另外还有个同或,左移和右移、无符号右移;与运算a&baba&b000010100111举例public static void test int a = 4; i...

2019-01-25 14:27:44 147

原创 URI、URL、URN区别

区别首先我们要弄清楚一件事:URL和URN都是URI的子集。换言之,URL和URN都是URI,但是URI不一定是URL或者URN。为了更好的理解这个概念,看下面这张图片。URIURI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个来URI来定位的URI一般由三部组成...

2019-01-17 12:13:31 257

转载 理解HTTP三次握手和四次握手的过程

转载自https://www.jianshu.com/p/a1ebc61ce141 再次感谢作者 如有侵权请联系我本文阅读大约5分钟1. TCP报文格式2. 3次握手过程详解3. 4次挥手过程详解结语1. TCP报文格式TCP报文格式图:上图中有几个字段需要重点介绍下:(1) 序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。(2) ...

2019-01-16 16:23:54 9397 1

原创 详解TCP/IP协议模型

本文阅读大约10分钟图解什么是 TCP/IP 模型?1. 网络访问层(数据连接 + 物理层)1.1 作用1.2 协议应用2. 网络层2.1 作用2.2 协议应用3. 传输层3.1 作用3.2 协议应用4. 应用层4.1 作用4.2 协议应用5. Socket6. ping到底是用的TCP还是UDP?图解网络传输图什么是 TCP/IP 模型?TCP/IP 模型有四个抽象的层次,描述了总体...

2019-01-16 14:29:39 5353

原创 【Android常见问题】调试GPU App中不显示的解决办法

调试GPU App中不显示的解决办法如果在GPU过度绘制和GPU呈现模式分析调试中,打开自己的应用界面不显示调试内容的话,大概率应该是关闭了硬件加速: AndroidManifest 中找到相应页面 去除android:hardwareAccelerated=”false” 这句话就行了...

2018-05-17 11:49:52 1671 1

原创 【View基础知识】View滑动之LayoutParams

本系列文章部分摘自《Android开发艺术探索》,目的是提取精干知识点加上自己部分理解作为备忘笔记,如有侵权请及时联系我,再次感谢作者,如喜欢请支持购买作者正版书籍目录目录View的滑动方式LayoutParamsView的滑动方式View的滑动方式 View 的滑动主要通过三种方式实现:通过View本身提供的scrollTo/scrollBy...

2018-03-26 23:04:44 474

原创 【View基础知识】View滑动之动画

本系列文章部分摘自《Android开发艺术探索》,目的是提取精干知识点加上自己部分理解作为备忘笔记,如有侵权请及时联系我,再次感谢作者,如喜欢请支持购买作者正版书籍目录目录View的滑动方式View动画属性动画View的滑动方式View 的滑动主要通过三种方式实现:通过View本身提供的scrollTo/scrollBy通过动画实现View的滑...

2018-03-24 23:42:00 277

原创 【View基础知识】View的滑动之scrollTo、scrollBy

本系列文章部分摘自《Android开发艺术探索》,目的是提取精干知识点加上自己部分理解作为备忘笔记,如有侵权请及时联系我,再次感谢作者,如喜欢请支持购买作者正版书籍目录目录View的滑动方式scrollTo/scrollBy实现的滑动scrollTo/scrollBy滑动的原理View的滑动方式View 的滑动主要通过三种方式实现:通过View本...

2018-03-23 23:52:17 662

原创 【View基础知识】TouchSlop、VelocityTracker、GestureDetector、Scroller

本系列文章部分摘自《Android开发艺术探索》,目的是提取精干知识点加上自己部分理解作为备忘笔记,如有侵权请及时联系我,再次感谢作者,如喜欢请支持购买作者正版书籍目录目录TouchSlopVelocityTrackerGestureDetectorScrollerTouchSlopTouchSlop是系统能识别的被认为是滑动的最小距离,如果两次滑动的事...

2018-03-20 23:55:53 423

原创 【View基础知识】Android View位置参数详解

本系列文章部分摘自《Android开发艺术探索》,目的是提取精干知识点作为备忘笔记,如有侵权请及时联系我,再次感谢作者目录目录View的四个顶点View的x、y、translationX、translationYView的四个顶点view的位置主要有四个顶点所决定,分别对应view属性的top、left、right、bottom.top:view左上角...

2018-03-18 20:00:32 677

原创 【问题记录】在一个文件中匹配字符出现的次数

在一个文件中找出某段字符出现的次数今天突发奇想,想到了这个问题,如题我在网上搜到了两种答案,我先贴出来大家看下有什么问题:第一种:读取每行去匹配/** * 统计给定文件中给定字符串的出现次数 * * @param filename 文件名 * @param word 字符串 * @return 字符串在文件中出现的次数 ...

2018-03-16 13:57:54 507

转载 Java 笔记--JAVA transient关键字

1. transient的作用及使用方法我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一

2016-08-30 16:47:21 344

原创 android LinearLayout设置selector不起作用问题解决方案

在LinearLayout的属性中添加: android:clickable=”true”

2016-08-23 13:03:51 1632

原创 Android框架累计

记一下所接触到的框架 方便以后用:1.LombokLombok使用注解的方式为你生成许多代码。我们将使用它老生成getter/setter、toString()、equals()、hashCode()。它借助于Gradle依赖和一个Android Studio插件。2.Butter KnifeButter Knife使用注解的方式来帮助我们免去写findViewById()和设置点击监听的痛苦。至于

2016-08-22 11:36:30 361

转载 Dagger2原来如此-恍然大悟

转自原作者:个人博客地址现在Dagger2在项目里用的越来越多了,最近花了些时间学习了一下Dagger2,这篇文章主要帮助理解Dagger2的注入实现过程,如有错误,还请指正!什么是Dagger2Dagger2是Dagger的升级版,是一个依赖注入框架,现在由Google接手维护。 恩,这里有个关键字依赖注入,因此我们得先知道什么是依赖注入,才能更好的理解Dagger2。依赖注入是面向对象编程的一种

2016-08-12 15:09:31 1083

原创 DialogFragment 透明全屏设置终极实用办法

今天在项目中需要用到DialogFragment,并且需要全屏透明;苦逼的是怎么弄两边都会有一点间距;这是因为DialogFragment 弹出框默认是在屏幕的中央,左右还有留白,那么怎么样才能将这左右的留白去掉呢?红色是我想去掉的地方答案很简单(但是我还没弄明白):@Overridepublic void onStart(){super.onStart();DisplayMetrics d

2016-06-22 19:30:34 10684 7

原创 OnGlobalLayoutListener获得一个视图的高度

我们知道在oncreate中View.getWidth和View.getHeight无法获得一个view的高度和宽度,这是因为View组件布局要在onResume回调后完成。所以现在需要使用getViewTreeObserver().addOnGlobalLayoutListener()来获得宽度或者高度。这是获得一个view的宽度和高度的方法之一。OnGlobalLayoutListener 是V

2016-06-13 14:39:58 754

转载 Java内存模型--彻底详解

转自:http://www.importnew.com/19612.htmlJava内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型。如果你想设计表现良好的并发程序,理解Java内存模型是非常重要的。Java内存模型规定了如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如

2016-05-11 18:15:03 389

原创 Android 在代码中动态设置字体颜色需要注意的问题

直接这样写是不行的tv.setTextColor(R.color.textColor_black);要从resources中获取 tv.setTextColor(this.getResources().getColor(R.color.textColor_black));颜色设置必须通过Color类来操作 不然设置无效

2016-03-30 17:19:37 1364

原创 解决Android设置软键盘搜索键以及监听搜索键点击时发生两次事件的问题

在输入框中加入android:imeOptions=”actionSearch”,调用软键盘时,回车键就会显示搜索二字。我想在点击搜索时,跳转到下一个页面,但是调用setOnKeyListener,每次都执行两次。最后上网看到别人的文章,解决了问题,解决方法是调用setOnEditorActionListener而不是用setOnKeyListener来监听点击搜索按钮。代码如下(在fragment

2016-03-30 17:18:20 729

转载 Android框架模式之-MVP简单使用

转载自远古大钟的博客:http://blog.csdn.net/duo2005duo简介 MVP是MVC的衍生版本,跟MVC类似,但是在Android中更适用,也分三层: Model:用于数据的增删改查等,也包括一些数据对象 View:用于界面的显示与用户操作的接收,在Android里面View通常就是Actvitiy,Fragment。 Presenter:是View跟Model的“

2016-03-30 17:14:12 418

原创 面向对象设计原则之:依赖倒置原则

所谓依赖倒置原则(Dependence Inversion Principle )就是要依赖于抽象,不要依赖于具体。简单的说就是对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。依赖倒置原则基于这样一个事实:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建起来的架构比以细节为基础搭

2016-03-30 16:46:05 604

原创 Android 中的 Service 全面总结详解【下】

上一篇文章Android 中的 Service 全面总结详解【下】 介绍了Service的一些知识以及本地Service的使用,如果对Service还不太了解的建议先看下上篇文章;本文主要接着上一篇讲下远程服务的使用;在说到远程服务的时候,我们需要先了解一些预备的知识:首先来了解一下AIDL机制: AIDL的作用 由于每个应用程序都运行在自己的进程空间,并且可以从应用程序UI运行另一个服务进程,

2016-03-30 10:39:36 670

原创 Android 中的 Service 全面总结详解【上】

1、Service的种类按运行地点分类: 类别 区别 优点 缺点 应用 本地服务(Local) 该服务依附在主进程上 服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Local服务因为是在同一进程因此不需要IPC,也不需要AIDL。相应bindService会方便很多。 主进程被Kill后,服务便会终止。 非常常见的应用如:HTC的音乐播放服

2016-03-29 15:49:41 833

原创 Android 反编译 原来这么简单—绝对详解(有图有真相)

在学习Android开发的过程,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看。下面是我参考了一些文章后简单的教程详解。(注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。)所用到的工具下载:

2016-03-29 14:47:40 9921

原创 【Android基础】Android代码混淆详解

简介 Java代码是非常容易反编译的。为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理。 ProGuard是一个混淆代码的开源项目。它的主要作用就是混淆,当然它还能对字节码进行缩减体积、优化等,但那些对于我们来说都算是次要的功能。 官网地址:http://proguard.sourceforge.net/原理 Java 是一种跨平台的、解释型语言,Java 源代码

2016-03-29 11:28:51 1002

原创 【Android基础】Activity启动模式以及Intent Flags 与 栈 的全面解析

Android开发的过程中,Intent是我们最常用Android用于进程内或进程间通信的机制。 Intent主要用于2种情景下:发起意图 、广播其底层实现原理不在此篇文章的讨论范围,以后会陆续更新上的。 下面我就根据近期学习,总结记录下Activity启动模式 及 Intent Flags 与 栈 的关联分析。1、首先我们先搞清楚什么是栈:栈是一种常用的数据结构,栈只允许访问栈顶的元素,栈就像

2016-03-28 09:25:55 1107

Android多媒体应用开发实战详解:图像、音频、视频、2D和3D

适合Android程序员、研发人员及Android爱好者学习,从入门到深入,从底层到应用,自学音视频开发的好资料

2018-03-01

PullToRefresh

这个资源中包含了一个通用的下拉刷新框架源码和demo apk。其实网上有很多下拉刷新的例子,但都不是很共通,特别是以listview添加header或footer居多,这很明显无法应用到GridView这样的布局。这个一个还算比较共通的框架,这个框架可以支持ListView, GridView, ScrollView, WebView,严格来说,你可以把任何View放到这个框架中。

2015-02-05

Android-PullToRefresh

这个是网上大神下的上拉下拉框架 包含多种view 比较通用 框架

2015-02-05

空空如也

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

TA关注的人

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