自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天行九歌

Time to waste, not reduce efficiency

  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 Hash小结

定义Hash也叫散列,通过把关键码值映射到表中一个位置来访问记录,有点类似于数组,并且能在O(1)(冲突情况另算)下查找到元素。任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。Hash函数 直接取余法:取关键字被某个不大于哈希表表长m的数p除后所

2016-08-31 16:35:39 634

原创 操作系统进程管理

进程、线程、程序进程与应用程序的区别在于应用程序作为一个静态文件存储在计算机系统的硬盘等存储空间中,而进程则是处于动态条件下由操作系统维护的系统资源管理实体。进程具有三个特性,即动态性、独立性和并发性。所谓动态性,指的是进程表示动态执行的程序,每时每刻进程的状态都是在变化的。所谓独立性,指的是进程和进程之间一般不会相互影响,每一个进程都有自己独立的逻辑的状态,如寄存器在某时刻的值。所谓并发性,指的是

2016-08-28 16:28:21 768

原创 APK安装过程分析

拷贝apk文件到指定目录在Android系统中,apk安装文件是会被保存起来的,默认情况下,用户安装的apk首先会被拷贝到 /data/app 目录下。/data/app目录是用户有权限访问的目录,在安装apk的时候会自动选择该目录存放用户安装的文件,而系统出厂的apk文件则被放到了 /system 分区下,包括 /system/app,/system/vendor/app,以及 /system/p

2016-08-27 17:58:27 475

原创 Android屏幕适配小结

基本概念 屏幕尺寸 屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米 屏幕分辨率 屏幕分辨率是指在横纵向上的像素点数,单位是px,1px=1个像素点。一般以纵向像素*横向像素,如1960*1080。 屏幕像素密度 屏幕像素密度是指每英寸上的像素点数,单位是dpi,即“dot per inch”的缩写。屏幕像素密度与屏幕尺寸和屏幕分辨率有关,在单一变化条件下,屏幕尺寸越小、分辨率越

2016-08-27 16:22:27 514

原创 Android的.9图片

作用.9图片的作用是在图片拉伸的时候特定的区域不会发生图片失真。原理在图片的固有区域显示的是原始图片,并且在原始图片的四周添加了一个像素,也就是图片比原始图片扩大了一圈,多出来的那一圈是透明像素。我们需要绘制的地方是在那一圈透明像素上进行绘制。如图: l代表的是图片拉伸的纵向范围,t代表图片拉伸的横向范围,r代表前景显示的纵向范围,b代表前景显示的横向范围,如: 图片拉伸区域: 红色框区域:

2016-08-26 17:46:10 527

原创 Volley源码分析

流程图盗张网上的流程图 源码分析 构建RequestQueueVolley 的调用比较简单,通过 newRequestQueue(…) 函数新建并启动一个请求队列RequestQueue后,只需要往这个RequestQueue不断 add Request 即可。我们来看看newRequestQueue(…)的代码: public static RequestQueue newRequestQue

2016-08-22 15:49:21 642

原创 选择,插入,快排,堆排的Java实现

快速排序选择基准元的方式: 对于分治算法,当每次划分时,算法若都能分成两个等长的子序列时,那么分治算法效率会达到最大。也就是说,基准的选择是很重要的。选择基准的方式决定了两个分割后两个子序列的长度,进而对整个算法的效率产生决定性影响。最理想的方法是,选择的基准恰好能把待排序序列分成两个等长的子序列。方法1 固定基准元 如果输入序列是随机的,处理时间是可以接受的。如果数组已经有序时,此时的分割就是

2016-08-22 00:41:16 1402 1

原创 树的小结和二叉树的递归遍历

public class BinaryTree { private BinaryNode root; public void printPreOrder(){ if(root != null){ root.printPreOrder(); } } public void printInOrder(){

2016-08-20 17:22:58 598

原创 APP怎么判断自己是处于前台还是后台

两张方法 通过RunningTaskInfo类判断(需要额外权限) 需要在AndroidMenitfest.xml文件中添加以下权限 <uses-permission android:name="android.permission.GET_TASKS" /> public static boolean isApplicationBroughtToBackground(final Con

2016-08-18 16:07:12 6120

转载 静态类,静态方法,静态变量与非静态之间的区别

静态类:1:仅包含静态变量和静态方法。 2:无法实例化。 3:不能包含实例构造函数。4:是密封的。非静态类:1.可以包含非静态成员,也可以包含静态成员。2.每次实例化都是一个新的对象。3.可以不显示实例化,因为内部有一个默认的静态构造函数,不可重载,当创建类实例或引用任何静态成员之前,静态构造函数被自动执行,并且只执行一次。4.也可以通过 类名.方法名或变量名 访问静态成员静态方法:1.静态方法

2016-08-17 23:43:16 949

原创 栈和队列的实现

数组实现栈/** *数组实现栈,需要"数组,末端索引,初始容量" */ public class ArrayStack {//数组初始容量,由于是数组实现,需要考虑扩容问题 private int DEFAULT_CAPCITY = 10; private int[] array; private int topOfStack = -1;// 使用默认初始容量

2016-08-17 18:19:53 326

原创 Android的硬件加速

手机中的GPU也是为了对图形、图像处理而存在的,所谓强制渲染,就是hwa(hard ware acceleration硬件加速)的一种,其存在的意义就是为了分担CPU的负担,其原理是通过GPU对软件图形图像的处理来减轻CPU的负担,从而使应用软件能够以更快的速度被处理,以达到提速的目的。对于普通的玩家来说,强制GPU渲染是一把双刃剑,有利有弊。虽然强制GPU渲染能够实现应用软件的提速,不过长期的开启

2016-08-15 00:55:32 558

原创 Android的Robotium框架初析

Robotium是基于Instrumentation的,Instrumentation把测试包和目标应用加载到同一个进程中运行,Robotium的search类会通过WindowManager从decorview开始搜寻控件保存起来,solo类的onClick方法获得控件坐标,根据坐标调用InputManager注入点击事件 相关链接:Robotium源码分析 Robotium源码分析之Inst

2016-08-03 11:18:14 354

原创 剑指offer第42题:单词反转

输入:字符数组; 输出:字符数组;转换规则:单词(非空格字符认为是单词构成)翻转,即最后一个单词在前,第一个单词在后,如此倒转。要求:时间复杂度O(n),时间复杂度O(1),即char[]原地转换。​ eg:输入”Are you ready now.”,输出”now. ready you Are” 思路:两次反转public class Reverse { char space = '

2016-08-01 00:48:38 474

Java泛型的擦除与补偿

Java泛型擦除后的常用补偿方法

2016-04-27

空空如也

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

TA关注的人

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