自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

悠悠吾心的专栏

全栈的博客自然啥都有了

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

原创 LayoutInflater解析

LayoutInflater解析在Android中,如果是初级玩家,很可能对LayoutInflater不太熟悉,或许只是在Fragment的onCreateView()中模式化的使用过而已。但如果稍微有些工作经验的人就知道,这个类有多么重要,它是连接布局XMl和Java代码的桥梁,我们常常疑惑,为什么Android支持在XML书写布局?我们想到的必然是Android内部帮我们解析xml文件,Lay

2017-02-01 19:21:08 864

原创 自定义gradle插件

自定义gradle插件通过这个内容,我们能够解释一些在平时android开发中的一些困惑1.我们每次用到的android域从何而来?2.为什么在android域内设置一些属性,会在项目中生效 首先,因为用到gradle的大部分都是android开发者,我们来看一个project中的gradle脚本apply plugin: 'com.android.application'android {

2016-12-05 18:47:57 1238 1

原创 maven和gradle深析

maven和gradle深析本质gradle使用的是真正的脚本语言groovy(很关键一点就是它也是编译为class运行在jvm上的),maven使用的是标签语言xml(本质是就是符合预定的文本)gradle中拥有灵活的task,而maven中使用的是绑定在固有生命周期上的插件表象太多细节我就不做介绍了,我在这里介绍几个我认为比较重要的差异。 大家如果有兴趣可以参考maven对比gradle

2016-11-21 11:26:05 1228

原创 项目构建

项目构建作为一名开发人员,只懂得写代码是远远不够的,一个项目的构建需要经过很多的步骤。如果这些步骤都需要我们自己来做是非常麻烦的,所以这里就用到了一些自动化的构建工具,这些工具表现形式上千差万别,本质上则都是一个构建过程的脚本(或配置文件),把我们需要做的步骤全部写到这个脚本(或配置文件中),执行一些命令便能够进行自动化构建。现在的IDE功能强大,很多都自动集成的构建工具,为开发者提供方便的同时也导

2016-11-19 17:50:09 2737 1

原创 Dagger2源码剖析

Dagger2源码剖析

2016-07-28 15:59:28 2468 3

原创 使用流行框架写android之初识RxJava

使用流行框架写android之初识RxJava为什么使用RxjavaRxJava几乎是2015年最火的一款开源框架了。 这款框架解决的最大问题就是异步,最常见的就是在子线程中访问网络请求数据,然后在UI线程中刷新UI。如果使用同步来解决,UI线程便不能做其他事情,很容易造成界面的卡顿,之前异步的方法都是使用Handler,Asynctask这些(当然android中所有异步的底层实现绝对是hand

2016-06-25 10:11:28 664

原创 使用流行框架写android项目开篇

使用流行框架写android项目开篇关于使用框架的一些争议做为一名android开发者,如果你还在一直使用者最原始的android写一些项目,如同你不使用ssh而是全部用selevt和jsp去写j2ee。使用框架有几点好处:简化代码增加代码的可维护性和鲁棒性简化代码:这里要注意了简化代码,更多的是指简化代码的逻辑性而不是简化代码的数量,在一些小项目中使用框架反而会使项目的代码量增加,代码量的多

2016-06-25 10:10:21 696

翻译 哈希冲突的概率

哈希冲突的概率一个Hash函数由指定类型的项和一个在指定范围内生成的Hash值组成。输入的每一项可能是任何事物:字符串,文件,甚至目录。相同的输入总能生成相同的Hash值,并且一个好的Hash函数总是致力于不同的Hash输入得到不同的值。一个Hash函数并不知道在输入集合中的其他项,当一个输入项通过它时,它仅仅进行着一些按位与/或操作,因此,总有2个不同的输入项,得到相同Hash值的可能。

2016-02-22 22:53:56 27662 2

原创 一张图搞定TCP/UDP

一张图搞定TCP/UDPTCP/UDP是大家学习网络过程中的重点也是面试过程中的常客,今天我不用长篇大论,仅仅一张图搞定TCP/UDP 接下来是自动生成的目录传输层1 UDP1.1 UDP报文格式 1.1.1 源端口 1.1.2 其他UDP控制信息 1.1.3 校验和 1.1.4 目的端口2 TCP2.1 报文格式 2.1.1 源端口和目的端口

2016-02-14 12:16:44 3118

原创 最简android之wifi调试

最简android之wifi调试做android开发的时候,经常遇到的一个问题就是真机调试次数多了,会导致usb口,损坏,而且长期给手机充电也会损坏手机,所以我想了想是否可以拿usb调试,网上找了下,还真可以,但都写的比较繁琐,今天我们就使用3条命令完成任务首先我们需要使用的工具是adb,它基于tcp协议之上1.开始我们需要给手机开启tcpip模式,这个时候需要usb线连接手机adb tcpip 端

2016-01-29 11:40:01 2437 1

原创 android怪招之开机自启动

android怪招之开机自启动一年前,曾经做过个,监控手机短信的app,这个app有几个起码的要求: 1.开机自启动 2.不可卸载(起码通过手机不可卸载) 3.无小图标 4.静默安装实现了这4点,这个app才算合格,不然必然安装不到目标手机上,即使安装了也会马上被卸载,随着android系统安全性越来越高,现在这4点中已经成为历史,今天我就和大家分享下开机自启动思路:设置app为开机自启动显

2016-01-26 13:22:48 1780

原创 机器学习开篇

机器学习开篇一直想学习机器学习,但一方面无从下手,一方面时间,精力不够,所以没能够开展,今天开始我将通过《机器学习实战》一书,逐步学习机器学习,并和大家分享这个过程环境和语言语言为python 我这边开发使用pycharm编译器 python版本为python2.10 需要安装numpy库k-近邻距离实质为欧拉距离,由于今天学习太累,仅将代码贴出,虽然和书上的代码一样,但其中加入了很多函数的用

2016-01-15 21:33:34 913

原创 从此妈妈再也不用担心我的View冲突了

从此妈妈再也不用担心我的View冲突了一个APP的界面中为了达到各种炫酷的效果,舒适的体验总是多个View进行嵌套,但有的时候我们要去点击不同的View,但这时候Android系统疯了,他们都堆在一起,鬼知道你要点哪个View,所以必须有一套完善的分发机制来搞定这个问题,而我们只有了解这套分发机制,只要重写固定的几个分发,冲突也就可以迎刃而解。只有3个方法没错整个Android的分发机制,只有3个

2016-01-10 09:04:38 1141

原创 modCount到底是干什么的呢

modCount到底是干什么的呢在ArrayList,LinkedList,HashMap等等的内部实现增,删,改中我们总能看到modCount的身影,modCount字面意思就是修改次数,但为什么要记录modCount的修改次数呢? 大家发现一个公共特点没有,所有使用modCount属性的全是线程不安全的,这是为什么呢?说明这个玩意肯定和线程安全有关系喽,那有什么关系呢阅读源码,发现这玩意只有在

2016-01-03 20:26:06 37181 22

原创 详解HashMap内部实现原理

详解HashMap内部实现原理内部数据结构static class Entry<K,V> implements Map.Entry<K,V> { final K key; V value; Entry<K,V> next; int hash;从上面的数据结构定义可以看出,HashMap存元素的是一组键值对的链表,以什么形式存储呢tran

2016-01-03 19:31:57 2490

原创 插件化开发之资源访问

插件化开发之资源访问插件可以是一个安装的apk或未安装的apk,这里为了简便以安装的apk为例,如果要使用未安装的apk只需要将类加载器更换下基本就可以了但首先明确下,2个进程间的数据是不能共享的,所以跨进程访问数据行不通所以我们需要将我们的2个apk运行到同一进程中android里面的方法是在manifest文件中的manifest标签属性中配置相同的shareU

2016-01-01 15:57:39 1101

原创 Window和WindowManager小结

Window和WindowManager小结看到很多写Window和windowManager,总是代码连篇,给对源码不是很熟悉但又想弄清楚android中window的工作机制的中级开发者不小难度本篇文章,结合>和本人对源码的源头再加上总结,力求做到不贴代码而讲清楚,当然文章内部也为涉及到一些方法,想阅读源码的同学请按照方法走即可1.基础知识window抽

2015-12-30 07:56:31 1542

原创 2小时玩转python基础(下)

2小时玩转python基础(下)下面继续为大家介绍2种常用的数据结构,无序dict,基本相当于java中的map(键值对)eg:d = { 'Adam':95, 'Lisa':85, 'Bart':59, 'Paul':75}查:查询就可以通过d['Lisa'],即可以查询到Lisa的成绩或者通过d.get('Lisa

2015-09-07 11:06:41 1026

原创 2小时玩转python基础(上)

2小时玩转python基础(一)python是一门动态语言,没有类型标识,所有类型都是运行时识别先看下python的基本数据类型有整数 ,同java int 如 5有浮点数 ,同java float 如 5.54523有字符串,同java String  有细微差别 可以用单引号 如'abc' "abc"都可以有布尔值,同java要么是True要么是False 但要

2015-09-05 11:39:14 1163

原创 打造自己的注解框架

打造自己的注解框架github上有很多注解框架,加个注解就会完成各种各样的任务,这样的方法既减少了代码量,又方便项目的统一管理,清晰明了今天,我就用java中的反射+自定义注解,为大家简单介绍下这种框架的设计思路,并和大家一起实现3个比较常用的功能首先给大家简单说下反射,java是面向对象的语言,万物皆对象,所以每一个类,方法,属性都是是一个对象分别属于clas

2015-09-04 10:06:08 1391 1

原创 属性动画之纷繁的星星

属性动画之纷繁的星星效果就是你手点哪,就会生成一个星星然后弹射出去这个效果很酷炫吧,这个是我看了郭神的属性动画后写的,里面将大部分的属性动画都用上了包括Evaluator和Interpolator不过Interpolator是用的系统的,希望各位大神能自己写,然后还用到个数学公式贝塞尔曲线整体就是一个RelativeLayout,我为大家剖析下这个动画的实现如果大家不清

2015-08-29 14:52:13 1257 1

原创 我的2016

我的20162016回忆找工作之旅在1个月前就准备写2016的年度总结,但一直不想写,因为感觉要写的很多,2016对我来说是非常重要的一年2016,我的经历,大体就是找工作,3月份开始找实习,7月份开始找校招从3月份第一次电面阿里云,便开始了我的征程。陆续面了,腾讯,美图,京东,百度,地平线等一系列公司。那个时候失败是家常便饭,而我也没有时间悲伤,因为需要反思自己的不足,以便下次再战。最终暑期的时候

2017-02-01 22:23:05 481 2

原创 从一名开发者角度看物联网

从一名开发者角度看物联网物联网一词由一两年前的炙手可热,到现在的不温不火,其背后原因到底是什么?个人认为之前人们在想象物联网的宏大,实现一个令人非常向往的未来世界就是用物联网技术的。现在大家开始真正去做了,物联网绝不仅仅是物连上网那么简单(其实并不简单),如果像人们想象的那种物联网,不仅仅包含传感网,也包含数据融合,数据的挖掘,全新的芯片等等不同的各个方面,当然也有终端和用户的交互。一件事情想起来是

2016-10-08 14:35:31 1726

原创 python脚本自动生成需要文件

python脚本自动生成需要文件在工作中我们经常需要通过一个文件写出另外一个文件,然而既然是对应关系肯定可以总结规律让计算机帮我们完成,今天我们就通过一个通用文件生成的python脚本来实现这个功能,将大家从每日重复的劳动中解放

2016-07-20 17:09:51 5679

原创 编译期注解框架浅析

由于Android开发已经进入一定规模,所以开发效率和代码的简洁开始引发人们的注意,而android对于性能要求比较高,所以基于反射已经无法满足,所以编译期注解也就火了起来。

2016-07-20 16:31:07 1507

原创 U盘空间变小怎么办?

U盘空间变小怎么办?有时候我们的u盘做为启动盘后,空间会大幅减少,我的就是这样这是因为我们的U盘进行的分区,大家可以通过“我的电脑->管理->磁盘管理”进行查看各个磁盘的分区。如果确实是这个问题 几个命令解决 win+R,cmd打开命令行 输入diskpart 这个时候会弹出另外一个命令框 在这个命令框下输入 select disk 1 1就代表你的U盘,然后输入 clean 解决了

2016-04-04 19:35:52 1159 1

原创 Android文件存储中的坑

Android文件存储中的坑看下网上随处可以搜到的文件存储套路if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){ cacheDir=mContext.getExternalCacheDir().getPath(); }else {

2016-03-20 15:31:58 637

原创 9大排序实现以及各自特点

9大排序实现以及各自特点时间复杂度为O(n^2)/** * 冒泡排序,时间复杂度O(n^2),空间复杂度O(1) * 稳定排序 * 原始顺序不影响排序效率 * @author weifucheng * */public class BubbleSort { public int[] bubbleSort(int[] A,int n){ for(i

2016-03-18 10:50:59 1238

原创 类加载机制

类加载机制类加载的时机类从被加载到虚拟机内存开始,到卸载到内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。其中验证、准备、解析3个部分统称为连接。 有且只有5种情况必须立即对类就行“初始化”遇到new、getstatic、putstatic、invokestatic这4条指令码时,如果类没有进行过初始化,则需要先触发器初始化。生成4条指令的最常见的Java代码

2016-03-05 16:27:45 498

原创 Class类结构

Class类结构定义:一组以8位字节为基础单位的二进制流。 特点: - 各个数据项排列紧凑,字节没有添加任何分隔符 - 超过8位的数据项采取高位在前的方式 数据结构:伪结构体:包括无符号数和表 - 无符号数:是基本数据类型,含有u1,u2,u4,u8,可以用来描述数字,索引引用,数量值或安装UTF-8编制构成的字符串值。 - 表:复合型数据类型,由多个无符号数或其他表复合而成,表

2016-03-03 08:12:57 591

原创 genymotion中虚拟机存储路径更改

genymotion中虚拟机存储路径更改做android开发肯定都会用到genymotion,但genymotion默认存放虚拟机的位置是c盘,大家肯定会遇到一个问题,C盘爆了,不想把东西放C盘里,不然连个AS都打不开,分2种问题解决设置新的存储路径这个问题太简单了,直接设置genymotion中的 在这个路径设置你想存放的位置就行更改已经下载好的虚拟机的存放位置首先虚拟机默认存放在C:\Use

2016-01-26 09:26:13 6025

原创 Markdown简单使用

Markdown简单使用标题标题之前加#就ok,从1个到6个分别代表6级标题,类似html的<h1>标签,刚刚发现Markdown里面支持html标签,所以你直接用html标签也可以列表第一列 第二列无序的文字前加入-或* 1. 我是第一列 2. 我是第二列有序的话前面加入1. 记得有个空格哦加入图片![ ] ( ) 记得[] 和()之前没空格 加入链接去掉加入图片之前的感叹号

2016-01-03 14:19:10 646

原创 二叉树的创建以及遍历

二叉树的创建以及遍历直接上代码#include #include typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;void preOrder_creat_BiTree(BiTree *T){ char c; scanf("%c",&c); if('

2015-10-02 11:50:15 632

原创 猜数游戏c实现

猜数游戏c实现正好刚刚c写了个猜数游戏,一同和大家分享下,代码没有进行任何优化,但其中有些编程的思想还是值得探讨的这个猜数游戏的功能是:计算机产生一个随机四位数,让人猜这个四位数是多少,人输入这个四位数后,计算机首先判断这个四个数字有几个猜对了,并且在猜对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,让人再猜,直到人猜出计算机所想的四位数为止,游戏结束时

2015-09-18 11:56:17 1403

原创 Handler大揭秘

Handler大揭秘Handler一个让无数android开发者头疼的东西,希望我今天这边文章能为您彻底根治这个问题今天就为大家详细剖析下Handler的原理Handler使用的原因1.多线程更新Ui会导致UI界面错乱2.如果加锁会导致性能下降3.只在主线程去更新UI,轮询处理Handler使用简介其实关键方法就2个一个sendMes

2015-08-30 11:34:50 751

原创 玩翻的ViewPager

玩翻的ViewPager最近看到很多人发的各式的ViewPager,简直玩翻,今天我就剖析下ViewPager,为什么能玩这么嗨让大家也能创造出各式各样的Viewpager其实ViewPager的核心玩法是一个方法public void setPageTransformer(boolean reverseDrawingOrder, PageTransformer t

2015-08-26 19:07:26 1117 3

原创 ArrayList与LinkedList大比拼之add和remove

ArrayList与LinkedList大比拼之add和remove各大公司的Java面试都会考到一些java源码的问题,这个系列我将一一为大家剖析各种java重要的源码ArrayList与LinkedList是经常会进行比较的2个类,因为他们都实现了List类本质上讲,他们底层存储方式是不一样的private transient Object[

2015-08-24 18:27:51 4261

转载 android动画开发

android动画开发转自http://blog.csdn.net/yanbober/article/details/464811711 背景不能只分析源码呀,分析的同时也要整理归纳基础知识,刚好有人微博私信让全面说说Android的动画,所以今天来一发Android应用的各种Animation大集合。英文厉害的请直接移步参考Android Developer。An

2015-08-11 09:04:24 719

原创 做一名有志向的人

说起程序员,大家总想着慢慢长夜,一只类似熊猫的生物飞速敲击着键盘。程序员能和高薪资联系,但总不会和一些上层建筑联系,而我今天想和诸位程序员以及其他人说,程序员要有志向,每个青年都要有志向。大家可能感觉可笑,但当今社会就是因为总有人耻笑一些本来理所应当,光明正大之举,认为那是做作,才使社交怪相频频出现。视不劳而获为荣,视艰苦奋斗为耻。我今天就要说一说某些人眼中的可笑之词“志向”。大学生为国之

2015-08-02 23:01:14 1106 1

原创 零基础玩转微信公众平台开发

寒假期间闲来无事,想学习下微信公众平台的开发,在这里和大家分享下学习经验和体会。希望大家能够从我这系列文章中,收获到一些东西。闲话不多说了,接下来让我们一起开始我们的微信开发之旅吧!        首先,我们了解一下,微信公众平台的原理;            如上图所示微信公众平台相比普通app就是多了一个微信服务器,用于xml文件的处理。       1.获取免费服务器:

2015-02-08 15:05:36 1620

空空如也

空空如也

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

TA关注的人

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