Skip to content

Instantly share code, notes, and snippets.

@puke3615
puke3615 / install.sh
Created August 27, 2021 02:45
install
./gradlew clean assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
@puke3615
puke3615 / ServiceManager
Created July 14, 2021 08:30
ServiceManager
import java.util.HashMap;
import java.util.Map;
/**
* 服务管理器<hr/>
* 1. 模块之间是相互独立的并列关系, 不能相互调用<br/>
* 2. 需要调用时, 通过下沉{@link Service}的方式<br/>
* <p>
*
* @author puke
@puke3615
puke3615 / RecyclerViewScrollHelper
Created July 14, 2021 08:15
RecyclerViewScrollHelper
import android.support.annotation.FloatRange;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@puke3615
puke3615 / RecyclerViewLoadMoreHelper
Created July 14, 2021 08:13
RecyclerViewLoadMoreHelper
import android.support.annotation.NonNull;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
/**
* 封装加载更多通用辅助类
*
* @author puke
* @version 2020-07-24
@puke3615
puke3615 / RecyclerViewExceptionHelper
Created July 14, 2021 08:12
RecyclerViewExceptionHelper
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
/**
* 带有RecyclerView的列表页统一封装
*
* @author puke
* @version 2019/2/13
*/
@puke3615
puke3615 / VideoUtil
Created July 14, 2021 08:08
VideoUtil
import android.graphics.Bitmap;
import android.media.MediaExtractor;
import android.media.MediaFormat;
import android.media.MediaMetadataRetriever;
import android.os.Environment;
import android.support.annotation.Nullable;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
@puke3615
puke3615 / TimeUtil
Created July 14, 2021 08:07
TimeUtil
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java8.util.function.Function;
/**
* @author puke
* @version 2018/5/15
@puke3615
puke3615 / ScreenUtil
Created July 14, 2021 08:03
ScreenUtil
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Color;
import android.os.Build;
import android.provider.Settings;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
@puke3615
puke3615 / StyleSpan
Created July 14, 2021 07:58
StyleSpan
import android.text.TextPaint;
import android.text.style.CharacterStyle;
/**
* @author puke
* @version 2020-11-10
*/
public class StyleSpan extends CharacterStyle {
private final boolean bold;
@puke3615
puke3615 / ClassScanner
Created July 14, 2021 07:52
ClassScanner
private static List<Class<?>> scanClass(Context context) throws IOException {
Enumeration<String> entries = new DexFile(context.getPackageCodePath()).entries();
List<Class<?>> result = new ArrayList<>();
while (entries.hasMoreElements()) {
String className = entries.nextElement();
try {
Class<?> type = Class.forName(className);
// do something here
} catch (Throwable t) {
Log.e(TAG, String.format("Load %s failure.", className), t);