自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

code code code

功不唐捐

  • 博客(17)
  • 资源 (2)
  • 收藏
  • 关注

原创 深入理解Instant Run——原理篇

前言Instant-run是Android Studio 2.0开始引入的新特性,它的作用是使开发者在开发时的改动可以很快地被应用,节省开发者的时间。当改动了代码之后,不需要进行完整的构建过程生成新的apk并且重新安装,只是把涉及到改动的部分push到设备上,某些情况下甚至都不需要重启当前Activity,马上就可以看到改动。牛逼啊,简直黑科技。hotfix(热更新)的使用场景类似instan...

2019-09-19 22:27:54 1392

原创 Android touch事件分发详解

引言Android开发主要是在智能手机上,而智能手机基本都是触屏手机,用户的交互绝大部分都是通过触碰屏幕完成的,所以Android的View体系中touch事件的传递处理机制就是重中之重。列表跟着手指移动方向滑动、按钮响应点击,这些都是因为touch事件正确传递给了这些View,它们才能做出响应。我们知道所有界面都是基于View和ViewGroup的,结构上是一层一层组织的:而且整个Vie...

2019-08-18 16:26:38 695 1

原创 [Android事件总线]otto介绍和源码解读

文章目录概念从监听者模式说起作用使用源码解读postregisterunregisterTips概念从监听者模式说起在写代码的场景中,我们经常碰到“希望当发生某种情况能触发一段逻辑”的需求。拿Android举例,最常见的例子就是当某个按钮被点击时,做一段逻辑。如果说让事件处理的一方决定触发的时机,那只能不断轮询看是否发生了点击事件来决定触发逻辑了,显然是行不通的。while(true) ...

2018-12-04 00:24:28 452

原创 一文理清minSdkVersion、compileSdkVersion、targetSdkVersion的作用和关系

文章目录配置minSdkVersioncompileSdkVersiontargetSdkVersion总结用AndroidStudio开发Android工程的时候,是用gradle管理构建的。gradle里有很多配置,很多时候我们对这些配置其实是一知半解的。比如minSdkVersion,compileSdkVersion,targetSdkVersion,就不一定能分清分别是什么意思,有什么...

2018-11-01 17:46:17 1112

原创 java内存管理和垃圾回收机制

我们知道,java所谓的跨平台特性(hardware- and operating system-independence)是依赖于JVM的。也就是,JAVA代码写好了之后会被编译成java的字节,一般存放为class文件,之后由JVM负责解释执行。 The Java Virtual Machine knows nothing of the Java programming language,

2015-08-28 10:48:07 3022

原创 Android自定义View

在Android编程中肯定少不了TextView, Button,ImageView这些控件的使用。控件也就是widget,是基本的UI的组成,一般在android.widget这个包下。但是有些时候系统自带的控件满足不了我们的需求,就需要我们自己定义实现某种功能的控件。自定义View的相关要素引用官方文档的指导: To create your own widget, extend View o

2015-08-21 15:37:34 902 1

原创 CSAPP lab binary bomb 二进制炸弹

binary bomb (二进制炸弹),这是CSAPP的一个lab。大概的意思是:给出一个二进制的可执行文件,及其对应的C语言主程序(只有主程序,其中调用的函数没有源代码)。运行这个可执行文件的时候,会有若干个“关卡”,每一个“关卡”会要求学生输入一些东西,经过处理后,如果与预计的相符,就解除了“炸弹”,进入下一关。如果输入不对,“炸弹”爆炸。学生要做的,就是利用GDB, objdump等工具,找出

2015-08-03 00:25:43 12115 3

原创 不使用临时变量交换两个变量的值(异或,加减,乘除)

使用异或交换两个变量的值异或有一些有趣的用法,这里用异或的性质求出数组内一个唯一一个只出现一次的元素。 一般我们交换两个变量的值的时候,一般会用到一个辅助变量,当然,也有一些脚本语言如Python,Lua只需要一行代码就搞定a,b = b,a除了使用辅助变量之外,我们还可以使用异或来达到目的。使用异或就不要一个额外的辅助变量了。a = a^b;b = a

2015-07-24 10:30:52 2288 1

原创 Ubuntu使用genymotion以及安装Android Studio相关插件

前言: 用eclipse编android的时候,虚拟机那叫一个慢。转到Ubuntu下用Android Studio之后,速度上来了不少。不过尝试了genymotion之后,发现genymotion要比自带的虚拟机更胜几筹。打算转投genymotion的怀抱。安装genymotion去genymotion官网下载相应的安装程序。 genymotion分为两个版本,免费版和付费版。免费版的功能要少很

2015-07-16 14:54:10 2167

原创 leetcode#121 Best Time to Buy and Sell Stock

github链接leetcode本题链接题目描述 Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transaction (ie, buy one and sel

2015-06-06 00:23:33 383

原创 leetcode#136 Single Number

leetcode 136 single number Given an array of integers, every element appears twice except for one. Find that single one. Your algorithm should have a linear runtime complexity. can't use extra space.

2015-06-04 13:02:23 587

原创 Sublime Text3配置在可交互环境下运行python快捷键

在Sublime Text3下面写代码感觉很不错,但是写python的时候遇到了一些问题。 使用快捷键ctrl+b就可以运行python文件,会在当前窗口的下方出现运行的结果。 但是,要是使用了input这类需要交互的函数,ctrl+b运行会出问题Sublime Text3类似IDLE按F5键在可交互环境下运行python文件的配置

2015-06-04 02:07:40 47139 10

原创 leetcode#19 Remove Nth Node From End of List

leetcode 19 删除单链表倒数第n个结点 Given a linked list, remove the nth node from the end of list and return its head.

2015-06-03 20:01:31 551

原创 浅谈HashMap以及重写hashCode()和equals()方法

HashMap是JAVA中一个很重要的集合类型。用于存储Key-Value对。 所谓Key-Value对就是一个键对应一个值,Key和Value之间是映射关系。比如我们查询英汉词典的时候,一个中文词语对应一个英文单词(假设只有一个)。 hashCode()和equals()的重写

2015-06-01 01:33:32 23350 5

原创 leetcode#70 Climbing Stairs

leetcode#70 Climbing Stairs题目描述: You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

2015-05-30 01:54:03 620

翻译 给初级程序员的忠告

给初级程序员的忠告原标题:那些我希望有人能在我学习编程的时候告诉我的事情以及我从指导别人的过程中学会的东西原文翻译:lbx在你开始学习编程之前,想想你的目标懂得编程的过程就像是建造东西,当你对你的目标有明确的概念,这个过程会变得清晰的多。如果你的目标仅仅是“学会编程”,除此之外没有更明确的想法,不知道你以后会写什么样的程序,这些程序会如何让生活更美好,你多半会发现编程是一种令人沮丧的体验。虽然有些耻

2015-05-30 00:45:32 3301

转载 Sublime Text 3中文乱码解决方法以及安装包管理器方法

Sublime Text 3中文乱码解决方法 参考http://blog.chinaunix.net/uid-12014716-id-4354029.html一般出现乱码是因为文本采用了GBK编码格式,Sublime Text默认不支持GBK编码。安装包管理器简单安装 使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令行,粘贴如下代码: import urll

2015-04-29 12:32:49 6242

自定义带进度的圆形progressBar

Android的一个自定义view,实现带进度的圆形progressBar

2015-08-21

bomb_lab_scu.rar

CSAPP lab binary bomb 二进制炸弹

2015-08-03

空空如也

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

TA关注的人

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