自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 golang XML解析

使用微信支付的时候遇到这样一种情况:支付成功之后微信会发送一个通知过来,这个通知包含xml格式的数据,其中有一个字段是这样的:代金券ID coupon_id_n代金券或立减优惠ID,n 代金券或立减优惠ID,n代金券或立减优惠ID,n为下标,从0开始编号也就是说我们收到的xml可能是 <coupon_id_1></coupon_id_1>也可能是&

2018-12-02 11:37:40 3568

原创 使用WireShark查看TCP连接和断开过程

TCP连接三次握手过程机器A向机器B发送建立连接请求的过程:A向B发送: SYN=1 Seq=随机生成的数字i。A进入SYN_SENT状态。B收到A发送的消息:从SYN=1知道A想要和B发送请求。于是B向A发送:SYN=1,ACK number= i+1 ,ACK=1,seq=随机生成的数字j。B进入SYN_RECV状态。A收到B发送的应答消息,发现SYN=1 ACK=1,则A向B发送A...

2018-10-24 10:50:50 9379

原创 golang 反射解惑

原文链接:https://www.cnblogs.com/kidyuan/p/9736566.htmlType和Kind的区别直接看例子:type Myint inttype Person struct {}func main() { var myint Myint= 1 var person Person= Person{} s := 1 var intPtr =&amp...

2018-10-09 20:20:12 1111

原创 HTTPS简述

####Http协议的缺点1.通信过程的数据有可能被黑客拦截篡改和窃取。2.不能保证通信双方的身份,有可能一方是伪装的。####什么是HTTPS协议HTTP协议是运行在TCP之上的,HTTPS是运行在SSL(安全套阶层)之上再由SSL与TCP协议进行通信,SSL解决了HTTP协议不安全的问题。####SSL如何解决HTTP的问题的**SSL使用了对报文加密的方式来保证数据传输安全的?*...

2018-10-09 20:15:28 188

原创 golang HTTP服务浅析

golang Http服务浅析golang的HTTP包提供了了很强大的功能,开发人员即使不使用框架也可以很方便的进行开发。下面就简单说一下开发web应用时HTTP包都做了哪些工作。我们在建立一个WEB应用的时候经常会这样使用: http.HandleFunc("/hello", func(writer http.ResponseWriter, request *http.Request) ...

2018-10-09 20:14:11 1299

转载 操作系统之分页分段介绍

一.虚拟内存的由来1.问题提出:     当直接让进程使用直接的物理内存时,当对物理内存操作时会出现混乱。比如进程A装在0-30的物理内层,在29处是一条ADD指令。而进程B装在30-40处第一条指令为JMP 29.没有使用虚拟内存的话,进程B将直接跳到进程A从而使两者程序都破坏掉。2.解决办法:    有两种解决这个问题:一种通过基址寄存器和界线寄

2017-01-13 21:59:12 554

原创 Android.mk入门

这篇Blog主要记录向系统源码添加模块时使用的Makefile,和NDK编程使用的makefile有一些差异。Android的mk文件是有很强的套路的,下面我在我的<android源码路径>/packsges/app/文件夹下建立一个名字叫做MakefileDemo的工程,里面的目录结构如图所示:![Alt text](./2017-01-11 14:34:49的屏幕截图.png) libs存放

2017-01-12 11:13:59 8891 2

转载 Android.mk的用法和基础 && m、mm、mmm编译命令

一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块。每个模块属下列类型之一:  1)APK程序,一般的Android程序,编译打包生成apk文件  2)Java库,java类库,编译打包生成jar文件  3)  C\C++应

2017-01-10 14:04:10 592

原创 Linux&&Android命令

du查看文件或目录的大小-h 以可读的方式显示文件大小 (以B,MB,GB显示大小) -a 当前目录显示子文件和子目录大小 -s 只显示当前目录大小 Linux上du命令默认使用-s,Android上默认参数是-a待添加……

2017-01-08 22:07:09 378

原创 Gradle笔记(二)-------从管理和发布

可以在ext块中定义变量,例如:ext { def AAVersion = '4.0-SNAPSHOT' // change this to your desired version}dependencies { apt "org.androidannotations:androidannotations:$AAVersion" compile "org.androida

2016-08-21 08:43:07 397

原创 Gradle笔记(一)-------Gradle在Android中构建代码

这些是我看Gradle Recipes for Android记录的一些零碎笔记。如有错误或者不当请指正。在开始之前先了解下什么是工程和子工程,主要是书里提到了这个概念。 假设我们有一个项目叫,HelloWorld,然后有以下几个Module:app(这个module在建立工程的时候as会自动给我们建立),core,api 那么HelloWorld就是总工程,那些module就是子工程,他们都有

2016-08-18 19:33:58 802

原创 选择排序

选择排序该秋招了,赶紧复习复习一下数据结构和算法吧~~。 选择排序应该是排序里面最好理解的了,加入有 {32,45,55,21,72,98} 这6个数字,每次遍历都找出剩余的数字里最小的与前面的替换,例如第一次遍历从第0个开始也就是32,便利之后发现21是最小的,然后就把21和32交换,即小的放在前面就变成了{21,45,55,32,72,98}。 第二次遍历因为21是最小的了所以就从45开始

2016-07-28 15:10:31 371

原创 AsyncTask源码浅析

AsyncTask是Android的异步类……恩,大家应该都知道,直接分析吧。开始之前如果对Android的Callable,Future不了解的话可以先看看这篇文章 Java并发编程:Callable、Future和FutureTask首先看看简单的用法,我自定义了一个TestAsyncTask:class TestAsyncTask extends AsyncTask<String,

2016-06-24 15:34:23 422

原创 直接插入排序

由于长期不去上课,今天去上算法课直接被全班同学虐了,连一个简单的直接插入排序都写不出来,回到苏浙赶紧看了之后自己做了一下。看了许多博客,大概思想是这样的,你手里有一张牌假如是6,然后用手去抓拍如果抓到的比6大就放在6的后面,如果比6小,就放在6的前面,这样每次抓到牌都可以根据牌的的大小插入前面的序列,这样最后得到的序列就是有序序列。例如: 一共有10个箱子 抓取 抓到的牌 序列 插

2016-03-24 22:32:57 472

原创 Hibernate学习笔记

一.常用配置文件1.配置文件hibernate.cfg.xmlhibernate的数据库和一些别的选项在这里配置,长用的有<!-- 数据库的用户名 --><property name="connection.username">root</property><!-- 数据库的密码 --><property name="connection.password">123</property><

2016-03-02 21:45:04 401

原创 Android 最简单的圆形头像

Android 圆形ImageView在网上看了好多的圆形ImageView实现方法,但是都用到了canvas的分层操作,概念感觉挺明白的但是一用就出错,终于找到了一种简单的方法: Path path = new Path(); path.addCircle(getWidth() / 2, getWidth() / 2, getWidth() / 2, Path.Direction.CCW)

2015-10-30 15:41:02 541

原创 Android github开源项目学习之—仿知乎APP(一)

Android github开源项目学习之—仿知乎APP(一)(本人菜鸟,如有错误请指正) 一直奇怪网上说的Recycler让自己定制点击事件是怎么回事,看了这个大牛的仿知乎 Android客户端源码才知道,他是这样做的—- 写了一个RecyclerView的ViewHolder并且让它实现Onclicklistenner 然后在ViewHolder内部定义了一个ClickResponseList

2015-10-27 16:19:53 4993

原创 Android Dialog去掉黑色背景

Android Dialog去掉黑色背景不同版本的Dialog不一样,为了统一Dialog的界面同时也想定义一个更好看的Dialog,所以我们经常会使用自定义的Layout并且调用setContentView加载到Dialog,但是我们会发现contentView显示出来了,但是他的后面会有一点黑框框的边角料,百度搜了一下,按下面定义一个样式: <style name="MyDialog" p

2015-10-19 19:56:48 7379

原创 Android 属性动画

Android属性动画 (Property Animation)昨天去学校的一个技术组织去面试,长这么大第一次面试紧张死了,到了那先去面试的JAVA当时太紧张,人家问我 JVM 的工作是什么我听成了Dalvik了自顾自的说了一大串(⊙﹏⊙)b……………….. ,然后去面试Android问到了一个我只听说过名字但是完全不知道名字的知识点—–属性动画,老心肝扑通扑通的啊 ~(>_<)~,回到宿舍赶紧撸了

2015-10-18 22:23:58 502

原创 Android ListView和GridView异步加载图片

Android ListView和GridView异步加载图片一般大家在加载图片的时候都是从网络或者SD卡硬盘上,这种操作是耗时操作,是不能在UI线程进行的所以需要异步加载图片,这样我们就会用到Android的异步任务AsyncTask类。不会使用这个的可以去网上百度。但是当我们使用ListView的时候,加载Item里面的图片就会出问题了。因为ListView的item是随着我们手指滑动,item

2015-10-07 22:53:48 541

原创 Android Handler源码浅析

Android Handler源码解析大家都知道Handler是Android系统的一种异步机制,常用在子线程中更新UI线程,听说面试的时候HR经常会问“你分析过Handler的源码吗?”,博主出于这种不纯的动机分析了一下Handler的源码 ^_^(别鄙视我)。首先,大家一般想要使用一个对象的时候用的最多的关键字是什么呢?对,就是new这个关键字,他创建了一个对象供我们使用,现在我们就从Hand

2015-10-02 17:40:42 392

原创 Android进程和线程

Android进程和线程当Android系统内存低下时,系统会杀死一些线程来释放内存,但是一个应用程序的进程可能会有许多线程,系统要杀死哪个呢?这就要遵循一定的规则,例如:有两个线程都持有Activity,线程A持有ActivityA并且ActivityA不可见(例如你按下了Home键),线程B持有ActivityB并且ActivityB是可见的(例如现在它就显示在你的屏幕上)。那么系统就会杀死Ac

2015-10-02 01:05:02 425

原创 JAVA小总结

StringBuffer和StringBuilderStringBuffer是线程安全的。(多线程使用,速度慢) StringBuilder是非线程安全的。(单线程使用,速度快)toString方法先看一段代码 Person p=new Person(); System.out.println(p);控制台输出是:hello.Person@5a64cd4b 现在我们来看一下这

2015-09-27 16:14:13 624

空空如也

空空如也

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

TA关注的人

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