start new:
tmux
start new with session name:
tmux new -s myname
package com.oasisfeng.hack; | |
import android.support.annotation.CheckResult; | |
import android.support.annotation.NonNull; | |
import android.support.annotation.Nullable; | |
import android.util.Log; | |
import java.io.IOException; | |
import java.lang.reflect.AccessibleObject; | |
import java.lang.reflect.Constructor; |
package io.github.lizhangqu.fresco; | |
import android.content.Context; | |
import android.graphics.ColorFilter; | |
import android.graphics.PointF; | |
import android.graphics.drawable.Drawable; | |
import android.graphics.drawable.StateListDrawable; | |
import android.net.Uri; | |
import android.view.MotionEvent; | |
import android.view.View; |
apply plugin: JavaFilterPlugin | |
class JavaFilterPlugin implements Plugin<Project> { | |
void apply(Project project) { | |
project.afterEvaluate { | |
if (project.file('filter.properties').exists()) { | |
def processResources = project.tasks.findByName("processResources") | |
processResources.configure { | |
from(processResources.source) { | |
filesMatching('*') { |
apply plugin: AndroidFilterPlugin | |
class AndroidFilterPlugin implements Plugin<Project> { | |
void apply(Project project) { | |
project.afterEvaluate { | |
if (project.plugins.hasPlugin("com.android.application")) { | |
def android = project.extensions.getByName("android") | |
android.applicationVariants.all { def variant -> | |
def variantData = variant.getVariantData() | |
def scope = variantData.scope |
subprojects { | |
configurations.all { | |
resolutionStrategy { | |
force 'com.android.support:multidex:1.0.2' | |
force 'com.android.support:multidex-instrumentation:1.0.2' | |
eachDependency { DependencyResolveDetails details -> | |
if (details.requested.group == 'com.android.support' | |
&& !details.requested.name.contains('multidex')) { | |
details.useVersion '25.3.1' | |
} |
#ifndef DIAGNOSTICS_H | |
#define DIAGNOSTICS_H | |
#include <jni.h> | |
#include <stdio.h> | |
#if !defined(DISALLOW_COPY_AND_ASSIGN) | |
// DISALLOW_COPY_AND_ASSIGN disallows the copy and operator= functions. It goes in the private: | |
// declarations in a class. | |
#if __cplusplus >= 201103L |
import com.android.build.api.transform.Context | |
import com.android.build.api.transform.DirectoryInput | |
import com.android.build.api.transform.JarInput | |
import com.android.build.api.transform.QualifiedContent | |
import com.android.build.api.transform.SecondaryFile | |
import com.android.build.api.transform.Transform | |
import com.android.build.api.transform.TransformException | |
import com.android.build.api.transform.TransformInput | |
import com.android.build.api.transform.TransformInvocation | |
import com.android.build.api.transform.TransformOutputProvider |
git clone https://github.com/owner/git.git
git clone git@github.com:owner/git.git
import android.app.Activity; | |
import android.content.res.TypedArray; | |
import android.content.res.Resources; | |
import android.util.Log; | |
/** | |
* @author lizhangqu | |
* @version V1.0 |