`
zhouYunan2010
  • 浏览: 206025 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
文章列表
  主要为了解决在一些特殊情况下,非Android开发人员如何使用命令行去安装和卸载APP。 这里不需要安装庞大的Android开发环境,也不需要配置系统环境变量,只需要下载一个ADB工具即可实现。 1,下载ADB工具 在附件中下载即可。下载后解压到指定目录。我这里解压在D盘     2,如何使用命令行 在菜单中搜索cmd,然后打开。   然后通过命令切换到adb的解压目录
在看本文之前,可以先阅读以下官方文档关于Property Animation的一些介绍和用法,地址为http://developer.android.com/guide/topics/graphics/prop-animation.html 那么下面就来讲一下ValueAnimator和ObjectAnimator的工作原理。   1.ValueAnimator ValueAnimator可以说是整个属性动画框架的核心类,动画的驱动就是在此类中实现的。下面举一个ValueAnimator的实例:   ValueAnimator anim= ValueAnimator.ofInt( ...
       这里会以多个场景列子进行分析,在分析之前先了解一下基本的概念。        Task任务:一系列Activity的集合,这些Activity以栈的形式进行排列(后进先出)。        那在什么时候系统会新建一个Task任务呢?         ...
View是所有控件的一个基类,无论是布局(Layout),还是控件(Widget)都是继承自View类。只不过layout是一个特殊的view,它里面创建一个view的数组可以包含其他的view而已。 这一篇文章把所有的layout和widget都统称为view,那么android是如何创建一个view的呢? 一。在代码中直接new出来。 比如说你要创建一个TextView的实例,那么你可以这样写: TextView text = new TextView(c); //c为context对象,表明textview是在此对象中运行的。 二。把控件写在xml文件中然后通过Layou ...
本文将详细讲解平衡二叉树的实现原理,在阅读本文章前,我假设你已经对平衡二叉树有基本的了解,并且已经阅读了http://zhouyunan2010.iteye.com/blog/1255299关于二叉排序树的实现。 package com.utils; import java.util.Iterator; import java.uti ...
本文将讲述二叉排序树的插入和删除的原理及实现 package com.utils; import java.util.Iterator; import java.util.NoSuchElementException; /** * 二叉排序树,也可以成为二叉查找树 * 它的性质如下: * 1.若它的左子树不为空,则左子树上所有的节点均小于其根节点 * 2.若它的右子树不为空,则右子树上所有的节点的值均大于根节点 * 3.它的左右子树也分别为二叉排序树 * * 简单起见,假设树中元素都实现了Comparable接口或者他们可以按自然顺序比较 * ...
有关堆的描述请见我另外一篇博客 http://zhouyunan2010.iteye.com/blog/1217462 /** * * 优先队列是用了一种叫做堆的高效的数据结构, * 堆是用二叉树来描述的,对任意元素n,索引从0开始,如果有子节点的话,则左子树为 * 2*n+1,右子树为2*(n+1)。 * 以堆实现的队列如果不为空的话,queue[0]即为最小值。 * * PS:此优先队列中的元素并不是升序排列的,只能说是"基本有序" * 但是queue[0]为树根而且必定是最小元素 */ class PriorityQueue<E> ...
    LinkedHashMap是为了解决遍历Hash表的无序问题,它内部维护了一个链表用于记录你插入元素(或你访问元素的顺序)的位置,遍历时直接遍历链表,元素的顺序即为你插入的顺序,但是Entry对象要多加两个成员变量before和after用 ...
package com.sort; /** * 选择排序: * 简单选择排序,树形选择排序与堆排序 * */ public class SelecSortDemo { /** * -------------------------------------------- * 简单选择排序 * 原理:假设列表中有n个元素,从第一个元素开始,在第一个元素 * 与最后一个元素之间选择一个最小的元素与第一个元素交换, * 然后从第二个元素开始,在第二个元素与最后一个元素之间选择 * 最小的元素与第二个元素交换,以此类推,最后列表有 ...
package com.algorithm; /** * 插入排序及其变体 * * List可转化为数组进行排序 * Object数组中的元素必须实现Comparable接口,即元素必须是可比的 */ public class InsertSort { /** * 直接插入排序 */ public static void insertSort(Object[] a){ Object cur = null; //保存当前遍历到的元素 int len = a.length; for(int i = 1;i < ...
蓝牙是一种支持设备短距离传输数据的无线技术。android在2.0以后提供了这方面的支持。 从查找蓝牙设备到能够相互通信要经过几个基本步骤(本机做为服务器): 1.设置权限 在manifest中配置 <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 2.启动蓝牙 首先要查看本机是否支持蓝牙,获取Bluetoot ...
1.一道简单16进制加密算法 /** * 简单加密解密算法 * 任意十六进制字符ascii转换,转换规则: * 当前index位置的数加上index,如果结果超出F则从0重新开始循环 * 比如: "3A4E"应该被转换为"3B61" * 3在0位置,所以保持不变, * A在1位置,转化为B, * 4在2位置,转化为6, * E在3位置,转化为1, * 然后倒转字符,比如"3B61"转换为"16B3" */ public class Encryption { ...
   提到哈弗曼树就必须提到节点权值,权值一般具有实际意义,比如此节点出现的概率,次数等。 必须提供权值才能构建出一棵哈弗曼树,因为哈弗曼树的定义为带权路径长度最小的二叉树。 树的带权路径长度为所有叶子节点的带权路径长度。 节点的带权路径长度为该节点到树的路径长度乘以节点权值。 哈希曼树最主要的应用是产生哈希曼编码。 为特点元素设计哈希曼编码要求二进制编码尽可能的短,并且任意一个字符的编码不是另外一个 字符的编码的前缀。 下面通过java代码构建哈希曼树与设计哈希曼编码 package com.algorithm; /** * 最优二叉树(哈夫曼树) * 根据元素的权值构建 ...
为什么使用归并排序? java中的Arrays.sort(Object[] o)是对数组进行排序,它使用的是归并排序的方式, 快速排序要比归并排序更快一些,但为什么使用归并排序了?原因是归并排序是一种稳定的排序 方式,即归并排序不交换相同的元素,这就意味着,在按一种方式排序后同时可以按另外一种 方式进行排序。比如员工可以首先按工资排序,然后按名字排序,一种排序不会打乱另一种排序 的顺序。 下面分析下sort方法的简化版: /** * 归并排序 (递归实现) * 前提: 每个元素要有可比性,这里元素必须实现Comparable接口。 * 基本原理为: ...
我认为Collections类主要是完成了两个主要功能 1.提供了若干简单而又有用的算法,比如排序,二分查找,求最大最小值等等。 2.提供对集合进行包装的静态方法。比如把指定的集合包装成线程安全的集合、包装成不可修改的集合、包装成类型安全的集合等。 package java.util; import java.io.Serializable; import java.io.ObjectOutputStream; import java.io.IOException; import java.lang.reflect.Array; public class Collecti ...
Global site tag (gtag.js) - Google Analytics