自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HaiBing

脚踏实地,仰望星空

  • 博客(91)
  • 收藏
  • 关注

原创 图解HTTPS的工作机制

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。如果想了解更多Https的相关知识,可以查看下面两篇文章:HTTPS的基本概念?HTTPS、SSL与数字证书HTTPS工作图解HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通...

2018-02-27 11:30:01 695 1

原创 HTTPS、SSL与数字证书

在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了。本文追本溯源围绕这个模式谈一谈。名词解释首先解释一下上面的几个名词:https:在http(超文本传输协议)基础上提出的一种安全的http协议,因此可以称为安全的超文本传输协议。http协议直接放置在TCP协议之上,而https提出在http和TCP中间加上一层加密层。从发送端看,这一层负责把http的...

2018-02-27 11:25:08 658 1

原创 HTTPS的基本概念

什么是 HTTPS?HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。你也可以说:HTTPS = HTTP + SSLHTTPS 在 HTTP 应用层的基础上使用安全套接字层作为子层。为什么需要 HTTPS ?超文本传输协议 (HTTP) 是一个用来通过互联网传输和接收信息的协议。HTTP 使用请求/响应的过程,因...

2018-02-27 11:06:10 2718 1

转载 C语言中,头文件和源文件的关系(转)

简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件)4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objc

2018-01-02 20:34:43 46757 24

原创 Java并发编程技术大纲

Java并发编程技术大纲:

2017-12-06 14:08:19 1192 2

原创 Android第一行代码-第二版内容大纲

最近在看Android 第一行代码-第二版书籍,整理下这本书的具体内容,内容如下:

2017-11-20 21:29:32 406

原创 Kotlin -- 基本类型

1、前言在Kotlin中,所有东西都是对象,在这个意义上讲所以我们可以在任何变量上调用成员函数和属性。有些类型是内置的,因为他们的实现是优化过的。但是用户看起来他们就像普通的类。本节我们会描述大多数这些类型:数字、字符、布尔和数组。2、数字Kotlin处理数字在某种程度上接近Java,但是并不完全相同。例如,对于数字没有隐式拓宽转换(如Java中int可以隐式转换为long

2017-06-07 20:32:32 545

转载 15 个 Android 通用流行框架大全

1. 缓存名称描述DiskLruCacheJava实现基于LRU的磁盘缓存2.图片加载名称描述Android Universal Image Loader一个强大的加载,缓存,展示图片的库Picasso一个强大的图片下载与缓存的库

2017-05-16 22:02:58 808

原创 Java -- 简单排序(冒泡、选择、插入)

冒泡排序前言               冒泡排序算法运行起来非常慢,但在概念上它是排序算法中最简单的,因此冒泡排序算法在刚开始研究排序技术时是一个非常好的算法。冒泡排序的思想比较相邻两个数据。如果左边的队员高,则两数据交换位置。向右移动一个位置,比较下面两个数据。冒泡排序的Java核心代码public static void bubbleSor

2017-03-13 10:48:22 528

原创 数据结构 -- 栈

前言        栈只允许访问一个数据项:即最后插入的数据项。移除这个数据项后才能访问倒数第二个插入的数据项,依次类推。这种机制在不少编程环境中都很有用。栈的Java代码        下面来看一个程序,StackX.javapublic class StackXT> { private int maxSize; //

2017-03-08 11:24:50 554

原创 深入理解Android中自定义属性

1、引言对于自定义属性,大家肯定都不陌生,遵循以下几步,就可以实现:自定义一个CustomView(extends View)类编写values/attrs.xml,在其中编写styleable和item等标签元素在布局文件中CustomView使用自定义的属性(注意namespace)在CustomView的构造方法中通过TypedArray获取那么,我有

2017-03-07 11:53:00 702

转载 详解HttpURLConnection

转载地址:http://blog.csdn.net/woxueliuyun/article/details/43267365请求响应流程设置连接参数的方法setAllowUserInteractionsetDoInputsetDoOutputsetIfModifiedSincesetUseCachessetDefaultAllowUserIntera

2017-03-03 23:04:47 952

转载 Android事件总线(二)EventBus3.0源码解析

转载地址:http://blog.csdn.net/itachi85/article/details/52260693相关文章 Android事件总线(一)EventBus3.0用法全解析前言上一篇我们讲到了EventBus3.0的用法,这一篇我们来讲一下EventBus3.0的源码以及它的利与弊。1.构造函数当我们要调用EventBus的功能时,比如注册或

2017-03-03 18:02:48 485

转载 Android事件总线(一)EventBus3.0用法全解析

转载地址:http://blog.csdn.net/itachi85/article/details/52205464前言EventBus是一款针对Android优化的发布/订阅事件总线。简化了应用程序内各组件间、组件与后台线程间的通信。优点是开销小,代码更优雅,以及将发送者和接收者解耦。如果Activity和Activity进行交互还好说,如果Fragment和Fragm

2017-03-03 18:00:40 791

转载 jni中的日志输出到LOGCAT

转载地址:http://blog.csdn.net/xunice/article/details/34852489在Java环境下使用JNI时可以方便的使用printf函数打印信息,在Eclipse控制台Console视图可以方便的观察到,可在Android环境下使用JNI的话,printf函数就无效了,LogCat视图和Console视图里看不到任何输出.但在android编程j

2017-02-24 14:48:16 1968

转载 bitmap的六种压缩方式,Android图片压缩

转载地址:http://blog.csdn.net/harryweasley/article/details/51955467转载请注明出处,谢谢:http://blog.csdn.net/harryweasley/article/details/51955467Android中图片是以bitmap形式存在的,那么bitmap所占内存,直接影响到了应用所占内存大小,首先要知

2017-02-17 14:18:50 1157

转载 Android后台服务拍照的解决方案

转载地址:http://blog.csdn.net/wurensen/article/details/47024961一、背景介绍最近在项目中遇到一个需求,实现一个后台拍照的功能。一开始在网上寻找解决方案,也尝试了很多种实现方式,都没有满意的方案。不过确定了难点:即拍照要先预览,然后再调用拍照方法。问题也随之而来,既然是要实现后台拍照,就希望能在Service中或者是异步的

2017-02-17 14:10:11 2910

原创 Android之BroadcastReceiver详解

广播机制简介        为什么说Android中的广播机制更加灵活呢?这是因为Android中的每个应用程序都可以对自己感兴趣的广播进行注册,这样该程序就只会接收到自己所关心的广播内容,这些广播可能是来自于系统的,也可能是来自于其他应用程序的。广播的类型        Android中的广播主要可以分为两种类型:标准广播和有序广播。标准广播(

2017-02-09 14:34:08 583

原创 Activity的最佳实践

前言        如果你对Activity的知识点还不够了解,那请看http://blog.csdn.net/xhbxhbsq/article/details/53142075#t10这篇文章。学习完Activity的知识点后,相信你已经掌握了关于Activity非常多的知识,不过恐怕离能够完全灵活运用还有一段距离。虽然知识点只有这么多,但运用的技巧却是多种多样。所以,在这里我准备教

2017-02-05 12:21:29 902

原创 Android Studio工程目录结构分析(下)

前言        不同于Eclipse,AndroidStudio是采用Gradle来构建项目的。Gradle是一个非常先进的项目构建工具,它使用了一种基于Groovy的领域特定语言(DSL)来声明项目设置。摒弃了传统基于XML(如Ant和Maven)的各种繁琐配置。        在Android Studio工程目录结构分析(上)(http://blog.csdn.net

2017-02-04 15:31:35 5117 3

原创 Android Studio工程目录结构分析(上)

Android Studio工程目录我们这里以一个简单的HelloWorld工程来分析:1、.gradle和.idea        这两个目录下放置的都是Android Studio自动生成的一些文件,我们无须关心,也不要去手动编辑。2、app        项目中的代码、资源等内容几乎都是放置在这个目录下的,我们后面的开发工作也基本都是在这个目录

2017-01-19 14:19:29 31674 1

原创 Java跨平台

Java跨平台“write once run anywhere”        Java的跨平台是相对于其他编程语言而言的,通过Java语言编写的应用程序在不同的系统平台上都可以运行。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。在windows编译的c语言程序,在linux下是不能运行的。当然在linux下编译的c语言程序在windows下也是不能运行的。而J

2017-01-17 14:51:50 772

原创 Arrays实用功能(上)

前言    在Java.util类库中可以找到Arrays类,它有一套用于数组的static实用方法,其中有六个基本方法;equals():用于比较两个数组是否相等(deepEquals()用于多维数组);fill():用于指定数组中的元素;sort():用于对数组排序;binarySearch():用于在已经排序的数组中查找元素(二分查找);toStrin

2017-01-10 23:14:54 394

原创 装饰模式

概述23种设计模式之一,英文叫Decorator pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式的特点装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。装饰对象包含一个真实对象的引

2017-01-05 10:36:02 743 1

转载 Java中的RTTI和反射机制

Java中的每一个类都对应着一个Class对象(java.lang.Class)。通过这个Class对象你可以在运行时得到很多类中的有用的信息。用Class.forName来得到一个Class对象。try {    Class c = Class.forName("MyClass");    String name = c.getName(); // "My

2016-12-30 16:57:04 930

原创 动态代理模式

代理模式代理是基本的设计模式之一,它是你为了提供额外的或不同的操作,而插入的用来代替“实际”对象的对象。这些操作通常涉及与“实际”对象的通信,因此代理通常充当着中间人的角色。基本代理下面是一个用来展示代理结构的简单示例:public interface Interface { void doSomething();  void somethingElse(String

2016-12-30 15:18:19 825 1

原创 注册工厂模式

工厂方法设计模式将对象的创建工作交给类自己去完成。工厂方法可以被多态地调用,从而为你创建恰当类型的对象。创建工厂方法接口,用于生成对象package factory; // factory interfacepublic interface FactoryT> { T create();} 创建生成工厂类class Part { publ

2016-12-30 10:42:39 462

原创 Java初始化详解

示例代码先上代码,根据代码来分析class Initable { static final int staticFinal = 47; static final int staticFianl2 = ClassInitialization.rand.nextInt(1000); static { System.out.println("Initialization Initab

2016-12-29 16:55:58 656

原创 抓取ANR log的方法

ANR简介APP出现进程无响应之后,系统通常会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框,用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”,但是无法定位导致出现anr的原因。我们可以通过抓取anr log,帮助我们

2016-12-28 18:33:08 4216

原创 LitePal数据库框架 -- 源码解析之创建数据库

使用LitePal创建数据库,表准备工作:①:引入LitePal jar包或者源码LitePal源码地址:https://github.com/LitePalFramework/LitePal②:写好实体类public class News { private int id; private String title; private String conten

2016-12-26 19:44:44 1760

原创 Android -- 进程保活

前言Android手机中应用被杀死可能有如下情况:1、用户手动杀死应用2、手机系统资源不足导致应用被杀死3、使用第三方应用把应用杀死4、使用厂商应用把应用杀死Android 进程拉活包括两个层面:A、提高进程的优先级,降低进程被杀死的概率B、在进程被杀死后,进行拉活进程的优先级Android系统将尽量长的时间地保持应用进程

2016-12-23 15:50:43 483

转载 Android View 事件分发机制 源码解析 (上)

转载地址:http://blog.csdn.net/lmj623565791/article/details/38960443一直想写事件分发机制的文章,不管咋样,也得自己研究下事件分发的源码,写出心得~首先我们先写个简单的例子来测试View的事件转发的流程~1、案例为了更好的研究View的事件转发,我们自定以一个MyButton继承Button,然后把跟事件传播有关的

2016-12-17 12:06:55 285

原创 Android View的位置参数

Android View的位置参数参考资料《Android开发艺术探索》博客地址:http://blog.csdn.net/zxwd2015/article/details/53055703

2016-12-16 16:26:25 357

转载 Android 之 IPC 进程通信全解析

转载地址:http://blog.csdn.net/lisdye2/article/details/51775856#t19Android 之 IPC 进程通信全解析本篇博客的框架什么是IPCIPC(Inter-Process Communication) 进程间通信,是指两个不同进程之间数据交换的过程。在明确其之前,需要先搞懂几个概念:线程:CPU

2016-12-15 20:13:21 324

转载 Java多线程学习

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka        写在前面的话:此文只能说是Java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢?如果你觉得此文很简单,那推荐你看看Java并发包的的线程池(Java并发编程与技术内幕:线程池深入理解),或者看这个专栏:Java

2016-12-14 14:11:41 265

原创 《Android开发艺术探索》 IntentService工作原理

HandlerThreadHandlerThread继承了Thread,它是一种可以使用Handler的Thread,它的实现也很简单,就是在run方法中通过Looper.prepare()来创建消息队列,并通过Looper.loop()来开启消息循环,这样在实际的使用中就允许在HandlerThread中创建Handler了。HandlerThread的run方法如下所示

2016-12-14 10:08:38 331

原创 《Android开发艺术探索》 -- AsyncTask 工作原理

前言AsyncTask是一种轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线程中更新UI。从实现上来说,AsyncTask封装了Thread和Handler,通过AsyncTask可以更加方便地执行后台任务以及在主线程中访问UI,但是AsyncTask并不适合进行特别耗时的后台任务,对于特别耗时的任务来说,建议使用线程池。

2016-12-13 16:02:36 461 4

原创 Java FutureTask 源码解析

FutureTask注释FutureTask一个可取消的异步计算。利用开始和取消计算的方法、查询计算是否完成的方法和获取计算结果的方法,此类提供了对Future的基本实现。仅在计算完成时才能获取结果;如果计算尚未完成,则阻塞get方法。一旦计算完成,就不能在重新开始或取消计算。可使用FutureTask包装Callable或Runnable对象。因为Future实现了R

2016-12-13 12:01:07 477

原创 Handler消息机制 -- 源码解析

Handler消息机制相关类介绍Message:是在线程之间传递的消息,它可以在内部携带少量的消息,用于在不同线程之间交换数据。Handler:处理者的意思,它主要是用于发送和处理消息。发送消息一般使用Handler的sendMessage()方法,接收消息使用Handler的handleMessage()方法。MessageQueue:消息队列的意思,它主要用于存放所有通

2016-12-12 19:35:10 329

转载 Android Studio修改默认Activity继承AppCompatActivity

转载地址:http://blog.csdn.net/yangliangliang2011/article/details/51333018在Android Studio中新建Activity默认继承AppCompatActivity,感觉这点十分不爽,找了很久,终于发现在Android Studio安装目录下有个模板文件,修改其中的参数即可。common_globals.xml

2016-12-11 21:02:17 1268

空空如也

空空如也

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

TA关注的人

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