Apk源码的加固(加壳)原理解析和实现 发表于 2017-06-19 1好久没写博客了,要深刻检讨下! 前言:在Android中没有经过加密的Apk给人的感觉就是在裸奔,通过apktool,dex2jar,AndroidKill等各式各样的反编译工具就可以轻松的获取其smail代码,如这个叫SourceProject的helloworld程序被apktool反编译后, ... 阅读全文 »
类装载器与双亲委派机制 发表于 2017-05-13 ##什么是类加载器Java虚拟机类加载过程是把Class类文件加载到内存,并对Class文件中的数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程。 在Java中,任意一个类都需要由加载它的类加载器和这个类本身一同确定其在java虚拟机中的唯一性,即比较两个类是否相等, ... 阅读全文 »
C#中的委托和事件 发表于 2017-03-30 原文地址:C# 中的委托和事件 ###引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不 ... 阅读全文 »
(设计模式)接口代理实现Application的多继承 发表于 2017-03-29 在工作中碰到一个场景,就是你APP的Application是需要继承自家的Application,但是你在接入别人的SDK时,有的sdk接入要求你的Application继承他家的Application,这就比较尴尬了.Java只能单继承这可怎么是好?接口代理就可以用上了.首先我们让清单文件声明的M ... 阅读全文 »
(设计模式)代理模式在Android中的使用 发表于 2017-01-22 假如,我们现在要在每次启动一个activity之前都要打印一条信息。最笨的方式就是用一个BaseActivity集成Activity,但是,如果我们这个项目已经进行了N多年,想象一下,这得修改多少源码,且这破坏了我们的设计原则,我们尽量扩展而不是修改代码。那些已有的代码都是经历时间考验的,修改之后可 ... 阅读全文 »
Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案 发表于 2017-01-20 在Android中我们经常会用到ViewPager+Fragment组合。然而,有一个很让人头疼的问题就是,我们去加载数据的时候由于ViewPager的内部机制所限制,所以它会默认至少预加载一个。这让人很郁闷,所以,我就想到要封装一个Fragment来解决这个问题。这里还解决一个问题就是在Andr ... 阅读全文 »
Android Studio发布library到jCenter(问题集合) 发表于 2016-12-07 烦心简单的事情折腾一天了,现在将碰到的问题集中写下,方便以后查询试过两种方法 gradle-bintray-plugin插件有点麻烦,不过对于几种jar生成的过程都有详细的配置,基本没有编码格式困惑 ,推荐篇文章:在AndroidStudio中,使用Gradle打包aar到JCenter仓库!完整 ... 阅读全文 »
深度理解依赖注入(Dependence Injection) 发表于 2016-10-21 前面的话:提到依赖注入,大家都会想到老马(Michael Mattson)那篇经典的文章。其实,本文就是相当于对那篇文章的解读。所以,如果您对原文已经有了非常深刻的理解,完全不需要再看此文;但是,如果您和笔者一样,以前曾经看过,似乎看懂了,但似乎又没抓到什么要领,不妨看 ... 阅读全文 »
(转)深入剖析Java中的装箱和拆箱 发表于 2016-09-21 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。 以下是本文的目录大纲: 一.什么是装箱?什么是拆箱? 二.装箱和拆箱是如何实现的 三.面试中 ... 阅读全文 »
Java多线程之Runnable VS Thread及其资源共享问题 发表于 2016-09-20 对于 Java 多线程编程中的 implements Runnable 与 extends Thread,部分同学可能会比较疑惑,它们之间究竟有啥区别和联系呢?他们是不是没啥区别随便选呢?实际中究竟该选择哪一个呢? 甚至网上不少博客文章以讹传讹得出不少谬论,那今天的走进科学栏目将带您一一揭开谜底。 ... 阅读全文 »