one_cup

一生中至少有两次奋不顾身,一次为爱情,一次为梦想。

Dex文件格式简解

"DEX"

Dex文件格式简解一个简单的Dex文件分析文章,学习自http://www.blogfshare.com/dex-format.html,http://www.wjdiankong.cn/android%E9%80%86%E5%90%91%E4%B9%8B%E6%97%85-%E8%A7%A3%E6%9E%90%E7%BC%96%E8%AF%91%E4%B9%8B%E5%90%8E%E7%9......

设计模式第五弹,原型模式

"设计模式"

设计模式第五弹,原型模式原型模式:通过使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。工作原理很简单,将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝自己来实现创建过程。简单说就是clone。需要注意的是通过clone方法创建的对象是全新的对象,在内存中有新的内存地址,通过对克隆对象进行的修改对原型对象是不会有影响的,每一个克隆对象都是互相独......

设计模式第四弹,单例模式

"设计模式"

设计模式第四弹,单例模式单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。三个要点:一是某个类只能有一个实例,二是它必须能自行创建这个实例,三十它必须自行向整个系统提供这个实例。Singleton:在单例类的内部实现只生成一个实例,同时它提供一个静态的getInstance()工厂方法,让客户可以方位它的唯一实例,为了防止在外......

设计模式第三弹,抽象工厂模式

"设计模式"

设计模式第三弹,抽象工厂模式在抽象工厂模式中,将产品分为产品族和产品等级结构,每一个具体的工厂不再是具体到每一个产品,二是具体到产品族上,产品族是指由同一个工厂生产,位于不同的产品等级结构中。产品等级结构即是产品的继承结构,如一个抽象类是电视机,其子类有海尔电视机、海信电视机、TCL电视机,则抽象电视机与具体品牌的电视机之间构成了一个产品等级结构,抽象电视机是父类,而具体品牌的电视机是其子类......

设计模式第二弹,工厂方法模式

"设计模式"

设计模式第二弹,工厂方法模式简单工厂模式虽然简单,但是存在一个很严重的问题,那就是当系统要引入新的产品的时候,由于静态工厂的方法是通过入参来选择创建不同的产品,所以必然要修改工厂类的源代码,违反开闭原则,那么如何才能实现新增产品而不影响已有的代码?工厂方法模式应运而生。在简单工厂模式中,只有一个工厂类,那么所有的对象创建细节它都必须知道,并决定何时实例化一个产品,工厂模式最大的确定就是当有新......

设计模式第一弹,简单工厂模式

"设计模式"

设计模式第一弹,简单工厂模式最近在补一些基础知识,设计模式啊,算法啊,数据结构之类的,觉得自己还差的好多,第一个副本就是设计模式,学习的文章是http://blog.csdn.net/lovelion/article/details/17517213史上最全的设计模式,朋友推荐的,这一系列的内容也就是写读书心得,毕竟看过一遍没有自己再梳理一遍来的深刻。先简单说一下主要内容;包含三部分,简单工......

OkHttp中https的使用

"https"

OkHttp中https的使用最近项目升级使用Https进行网络通信,之前的其实也是https不过没有加相关的校验,正好之前我是负责网络通信加密相关的,就研究了一下具体okhttp中对于https是如何处理的。 简单初始化一个简单的初始化动作,其中比较关键的就是hostnameVerifier和sslSocketFactory这两个方法123456789101112OkHttpClient ......

解决AAR包引用第三方依赖无效

"一次工作总结"

解决AAR包引用第三方依赖无效遇到一个之前都没有注意到的问题,在拆分公共组件的时候,将一些公用模块打成aar,然后放到公司的私服maven上,出现这样一个问题,有的aar中引用了类似RxJava,Okhttp等第三方库,发现在主项目中仍需要添加相应依赖才能使用,按理来说,正常使用module的时候,主项目应该也是可以直接使用module中的依赖才对,不清楚为什么会出现这种原因,然后就各种查资......

安全加解密

"你好,未来"

方案确定常见的加密方式有两大类分为对称加密和非对称加密两种,其中对称加密采用的是AES的加密方式,非对称的加密采用的是RSA,考虑到非对称加密在加密大量数据时会比较影响性能,所以具体的方案是使用AES对数据源进行加密,之后使用RSA将AES加密使用的密钥进行加密,给后端传递的数据就是使用AES加密后的密文和使用RSA加密的AES密钥的密文。 具体加密方式的确定RSAAndroid端在使用RS......

极速打包流程

"你好,未来"

之前使用的是Gradle中定义productFlavors进行多渠道打包,其实在最开始接触的时候就知道有极速打包这个方案,只不过当时项目中有Tinker,抓紧上线就没使用,趁工作间隙研究研究发现,这根本就是两种方案,而且真的是很快,并且Tinker也不用那么麻烦。 packer-ng-plugin目前所了解的最快的打包方案,并且Tinker也鼓励使用这种方式,github主页上介绍100......