<转>漫谈Android 增量更新

原文地址:http://blog.csdn.net/dd864140130/article/details/52928419
在前几年,整体移动网络环境相比现在差很多,加之流量费用又相对较高,因此每当我们发布新版本的时候,一些用户升级并不是很积极,这就造成了新版本的升级率并不高。而google为了解决了这个问题,提出了Smart App Update,即增量更新(也叫做差分升级)。

尽管现在网络环境有了很大的提升,但一个不争的事实就是应用越做越大,因此,增量更新在目前的仍然是一种解决APP更新包过大的有效方案。今天,我们就来聊聊增量更新。

(转)JAVA 字节码操作利器javassist

1、简介
javassist是一个开源的分析、编辑和创建Java字节码的类库。不需要了解虚拟机指令,就能动态生成类或者改变类的结构。
官网首页www.javassist.org
2、下载
(1)下载链接http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/
(2)使用的版本是javassist-3.18.0-GA。

Javassist是一个执行字节码操作的强而有力的驱动代码库。它允许开发者自由的在一个已经编译好的类中添加新的方法,或者是修改已有的方法。但是,和其他的类似库不同的是,Javassist并不要求开发者对字节码方面具有多么深入的了解,同样的,它也允许开发者忽略被修改的类本身的细节和结构。

【翻译】Android中的AOP编程

原文链接 : Aspect Oriented Programming in Android

面向切面编程(AOP,Aspect-oriented programming)需要把程序逻辑分解成『关注点』(concerns,功能的内聚区域)。这意味着,在 AOP 中,我们不需要显式的修改就可以向代码中添加可执行的代码块。这种编程范式假定『横切关注点』(cross-cutting concerns,多处代码中需要的逻辑,但没有一个单独的类来实现)应该只被实现一次,且能够多次注入到需要该逻辑的地方。

(转)领略千变万化的Android Drawable

http://blog.csdn.net/javazejian/article/details/52247324
出自【zejian的博客】

Android Drawable 相信大家都不陌生,本篇我们就来全面深入了解它,Drawable是一种可以在Canvas上进行绘制的抽象的图像,它的子类也相当多,所以在开发中很容易导致我们对不同Drawable的理解产生混乱,因此我们很有必要来全面了解一下Drawable的子类及其使用方式滴,哈~。

android ViewPager控件深入了解

code WebSize:http://grepcode.com/

ViewPager Instroduction

Layout manager that allows the user to flip left and right through pages of data. You supply an implementation of a PagerAdapter to generate the pages that the view shows.
Note this class is currently under early design and development. The API will likely change in later updates of the compatibility library, requiring changes to the source code of apps when they are compiled against the newer version.

android material design 学习

CoordinatorLayout super-powered FrameLayout

CoordinatorLayout是新推出的布局ViewGroup类,主要是作为协调布局,核心是协调子View的滑动动画,也就是Behaviors类的使用,通过Behaviors来调度子View.Behavior是CoordinatorLayout的子抽象类,代码如下:
CoordinatorLayout$Behavior

(数据结构与算法分析笔记])第四章 树

概述

对于大量的数据输入,链表的线性访问时间太慢,二叉查找树结构的数据大部分运行的平均时间为:$O(\log N)$,二叉查找树是两种库集合类TreeSet和TreeMap实现的基础。
树可以用几种方式定义,定义树的一种自然方式是递归的方式。一棵树是一些节点的集合。这个集合可以是空集,若不是空集,则树由称做根的节点r以及0个或多个非空的(子)树$T_1,T_2,T_3,…,T_k$组成,这些子树中的每一棵的根都被来自根r的一条有向的边所连接.
每一棵子树的根叫做根r的儿子(child),而r是每一棵子树的根的父亲(parent).

java嵌套类,内部类,匿名类学习

什么是嵌套类及内部类

可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部类(inner)。嵌套类从JDK1.1开始引入。其中inner类又可分为三种:
  其一、在一个类(外部类)中直接定义的内部类;
  其二、在一个方法(外部类的方法)中定义的内部类;
  其三、匿名内部类。

java object 类wait() notify() 以及Thread类 join() yile学习

Thread类的join()

join是Thread类的一个方法,启动线程后直接调用,例如:

1
2
3
Thread mThread = new AThread(); 
mThread.start();
mThread.join();

在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,主线程往往将于子线程之前结束,但是如果主线程处理完其他的事务后,需要用到子线程的处理结果,也就是主线程需要等待子线程执行完成之后再结束,这个时候就要用到join()方法了。

java.lanf.invoke.MethodHandles 学习(深入理解Java虚拟机 学习笔记)

随着JDK 7 的发布,字节码指令集新添加一位新成员—-invokeddynamic,便于JDK 7 支持动态类型语言,配套的程序包是新加入了java.lang.invoke,该包的主要目的是在之前单纯依靠符号引用来确定调用的目标方法以外提供一种新的动态确定目标方法的机制,称为MethodHande。该机制简单来说,更好地解决java语言无法单独把一个函数作为参数进行传递,而普遍的做法就是设计一个interface接口,以实现这个接口的对象作为参数传进去。不过,拥有Method Handle之后,可以更简单.

,