Jack's Blog

Thinking will not overcome fear but action will.

Executor介绍

Executor介绍 1.简介 在JDK1.5之后,Java为我们提供了一个Java.util.concurrent包,这个包下有Executor接口,这就为我们提供了线程池的方法去开启多个线程。 2.Executor对比 new Thread的优点 new Thread()的缺点 每次我们new Thread都会创建一个对象,不能被重用,而且对象的创建和销毁也是消耗...

修改字节码工具javassist的使用

在不重新编译的情况下直接修改Java Class文件中的内容

修改字节码工具javassist的使用 1.简介 Javassist是一个提供简单接口操作java字节码的工具。 它可以让你在一个已经编译好的类中添加新的方法,或者是修改已有的方法。 它不要求你对字节码方面具有多么深入的了解,同样的,它也允许你忽略被修改的类本身的细节和结构。 javassist官网:http://www.javassist.org/ github地址:htt...

Android Jobscheduler 以及 Android-Job

Jobscheluder的使用以及开源方案Android-Job

Android Jobscheduler 以及 Android-Job 1.前言 Android 5.0系统以前,在处理一些特定情况下的任务,或者是为了应用的保活,我们通常是使用了Service常驻后台来满足我们的需求。当达到某个条件时触发该Service来进行相应任务的处理。或者仅仅是为了我们自己的应用不被系统回收销毁。这样做在满足了自己应用的需求的同时也消耗了部分硬件性能。对用...

常用的加密方式和应用场景

区别和使用场景

常用的加密方式和应用场景 1.前言 在移动端的开发中,数据安全的问题一直是大家备受关注的,数据加密技术也受到了大家的青睐。项目中也用到了一些,在这里学习总结下,完善下自己的知识,也分享给大家,一起交流! 按可逆性:加密可分为可逆算法和不可逆算法 按对称性:加密可分为对称算法和非对称算法 一般的加密分为以下几种,下面会分别简单讲解原理和其使用方法: Base64编码...

Android状态机StateMachine

StateMachine源码分析以及使用

Android状态机StateMachine 1.StateMachine 源码分析 1.1 StateMachine 简介 The state machine defined here is a hierarchical state machine which processes messages and can have states arranged hierarchica...

JAVA强、软、弱、虚引用

区别和使用场景

JAVA强、软、弱、虚引用 区别和使用场景 前言 Java执行GC判断对象是否存活有两种方式其中一种是引用计数。 引用计数:Java堆中每一个对象都有一个引用计数属性,引用每新增1次计数加1,引用每释放1次计数减1。 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于(reachable)可达状态,程序才能使用它。 ...

修改jar包内文件并重新打包

一步一步教你修改jar包

修改jar包内文件并重新打包 1.首先将目标jar包拷贝到工程的libs目录下,然后build-path引用到的jar包; 2.在工程中创建一个目录结构与你需要修改的类一致,并新建类 例如: 目标类 com.android.xxx.a.class 新建类 com.android.xxx.a.java 3.拷贝原有jar包内的目标class文件内的内容到新建类中 4....

Android应用判断手机是否ROOT的三种方法

如何查看手机是否ROOT

Android应用判断手机是否ROOT的三种方法 1.查看系统的Build Tags: private static boolean isRoot1() { String str = Build.TAGS; return str != null && str.contains("test-keys"); } 2.查看system...

Android自定义混淆规则

Android 将包名类名混淆为藏文

Android自定义混淆规则 1.配置proguard-rules.pro和module文件混淆成藏文: 在proguard-rules.pro的配置: #藏文混淆 #指定class模糊字典 -classobfuscationdictionary ./proguard-keys.txt #指定package模糊字典 -packageobfuscationdictionary ./pro...

主线程中的Looper.loop()死循环为什么不会导致ANR?

主线程中的Looper.loop()死循环为什么不会导致ANR? 源码的 ActivityThread 类中有这么一段代码: public final class ActivityThread { public static void main(String[] args) { ... Looper.prepareMainLooper(); // 注意此处 ...