自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 Dart数字转汉字

class ConvertNumberToChineseMoneyWords{ // 大写数字 static List<String> NUMBERS = ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十",""]; static String toChinese(int index) { if(index >...

2022-06-17 15:07:34 501

原创 记一次解密ollvm字符串

解密37010中的字符串加密的字符串寻找异或的V0地址,tab按住V0直接过去,发现是0xC6image.png然后看37010这个数组,双击它 ,发现它有两个地址image.png左下角是(36010)so中的地址,37010是IDA加载的地址将so拖入010EDITOR,输入36030image.pngimage.png选中360...

2022-03-21 17:19:32 337

原创 Hook淘宝X-SIGN

版本9.16.0直接搜索x-sign,找到InnerProtocolParamBuilderImplsmali可以发现是调用了pha的 a方法找到pha的子类phb直接调用它的a方法public void getSignStr(Object instance){ Map<String, String> map1 = new HashMap<&...

2021-09-02 10:50:43 1551 2

原创 Android阴影

UI总说cardview的阴影太黑,故弃用。对比图上方‘个人信息’用的是shape,下方‘就诊信息’用的是切图切图UI切图shape<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"...

2021-08-16 16:43:58 144 1

原创 Hook抖音用户信息id,secUid

抖音版本16.3.0,hook方式xposed在采集APP数据的时候很多接口都会用到userId和sec_uid,通过抓取接口webcast/user可以看到id都是由客户端生成的用户信息实体类com.bytedance.android.live.base.model.user.User/** * 获取当前登录用户ID * @param lpparam ...

2021-07-15 10:27:06 5759 1

原创 XPosed+Charles抓包淘宝App

阿里系大多使用了MTOP来加签请求,所以需要通过hook的方式关掉这个加签。我这里使用的是xposed。也可以使用Frida@Override public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable { XposedBridge.log("=======...

2021-06-08 11:37:20 3567 6

原创 FRIDA实践

环境搭建安装fridapython3.9 -m pip install frida安装frida-toolspip3 -m pip install frida-tools下载运行在目标机上的frida-sever端,下载时要选择对应的版本下载,例如我的机器是模拟器,架构位x86_64,就选择ffrida-server-14.2.18-android-x86_64下载,然后解压,把解压的文...

2021-06-08 11:32:58 289 1

原创 XPosed修改微信余额

XPosed环境搭建第一步:找到当前activity此处使用的adb命令adb shell dumpsys activity top > activity_top.txt也能看到View Hierarchy,整个view树结构第二步:找到余额控件IDmonitor查看控件ID查找id为ff3的16进制值:通过activity_top查看com.robinhood....

2021-04-16 15:50:12 1251 3

原创 XPosed实践

项目配置官方教程首先清单文件<meta-data android:name="xposedmodule" android:value="true" /> <meta-data android:name="xposeddescription" android:val...

2021-04-14 16:19:43 217

原创 Android使用Jenkins打包上传蒲公英

Android环境变量系统管理 - > 全局属性-> 配置环境变量设置环境变量系统管理 - > 全局工具配置-> 配置JDK、gradle,git等jdkgitgradle通用通用留8个包。。。源码管理添加账号就行了构建触发器构建触发器每5分钟检测一次代码有新改动就构建H/5 * * * ...

2021-04-02 16:52:19 592

原创 高阶函数

lambda表达式:只有一个参数可以省略不写,kotlin默认的参数名itclass AdvanceOperate{ //定义高阶函数 fun multipleOperate(num1:Int,num2:Int,operate:(num1:Int,num2:Int)->String):String{//第三个参数为普通函数 println("$num1 an...

2021-03-23 16:58:36 151

原创 recyclerview优化学习总结

在onBindViewHolder里设置监听可能会创建多个View.onclicklistener对象在onCreateViewHolder方法里设置监听@Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { final Recycle...

2020-09-12 14:41:22 196

原创 关闭线程

终止线程stop方法,已经被弃用,无法预期interruptinterrupt方法其作用是中断此线程(此线程不一定是当前线程,而是指调用该方法的Thread实例所代表的线程),但实际上只是给线程设置一个中断标志,线程仍会继续运行。在run方法里调用isInterrupted()方法public static void main(String[] args) { Thre...

2020-09-03 09:55:17 150

原创 组件化ARoute使用总结

ARouter项目结构app为壳,commonlib为公共组件库,chat,home等为模块gradle配置gradle.properties里配置组件化开关#isNeedHomeModule=trueisNeedHomeModule=false#isNeedChatModule=trueisNeedChatModule=false#isNeedFindModule=...

2020-08-18 15:46:19 795

原创 电动牙刷APP汇总

小米米家APP华为华为智慧生活APP欧可林欧可林APP高露洁高露洁APP牙护士牙护士APP

2020-08-18 14:28:49 728

原创 okhttp3下载工具类kotlin及apk安装

object DownloadUtil { private val okHttpClient: OkHttpClient = OkHttpClient() private var context: Context? = null private val TAG = javaClass.simpleName /** * @param url 下载连接 ...

2020-07-27 11:07:07 865

原创 腾讯云通信音视频通话最小化悬浮小窗

基础7.4.9200效果图首先是显示悬浮窗的服务/** * 视频悬浮窗服务 */public class FloatVideoWindowService extends Service { private String currentBigUserId; //浮动布局view private View mFloatingLayout; //容...

2020-07-07 14:07:47 1915 1

原创 事件分发学习总结2

布局结构所有事件返回值都为:return super.TouchEvent(event)E/ActivityToucEvent: dispatchTouchEvent: 0E/ParentLayout: dispatchTouchEvent: 0E/ParentLayout: onInterceptTouchEvent: 0E/NestedParentLayout: disp...

2020-06-13 15:53:28 142

原创 编译最新版FFmpeg

FFmpeg 编译步骤:配置环境(NDK,FFmpeg安装包)配置FFmpeg的shell脚本执行脚本生成so库本文使用的是目前最新的版本 ffmpeg-4.2.3。修改 configure 脚本,新增 cross_prefix_clang 参数打开根目录下的 configure 文件,搜索 CMDLINE_SET ,可以找到以下代码,然后新增一个命令行选项:cross_pre...

2020-06-07 14:55:59 568

原创 导入Ffmpeg到项目

目录结构其中有两个文件非常重要,分别是 native-lib.cpp 、 CMakeLists.txt。native-lib.cpp :是一个 C++ 接口文件,在 MainActivity 中声明的外部方法将在这里得到实现。#include <jni.h>#include <string>extern "C" JNIEXPORT jstring...

2020-06-07 14:54:21 793 1

原创 Android高版本dialog弹出黑色状态栏

测试发现8.0系统弹出时会出现黑色的状态栏很难忍受添加依赖implementation 'com.gyf.immersionbar:immersionbar:2.3.3-beta15'dialog中透明状态栏ImmersionBar.with((Activity) context,this) .transparentStatusBar() ...

2020-05-26 10:00:43 1852

原创 RecyclerView刷新数据时闪烁

关闭recyclerview动画recyclerView.getItemAnimator().setAddDuration(0); recyclerView.getItemAnimator().setChangeDuration(0); recyclerView.getItemAnimator().setMoveDuration(0); recyc...

2020-05-21 16:27:29 2758

原创 RecyclerView九宫格分隔线

九宫格分隔线,无左右边与最下边线效果图public class GridDividerItemDecoration extends RecyclerView.ItemDecoration { private int spanColumnpan; private Drawable mDivider; // spanColumn 是 几列 publ...

2020-05-19 17:48:01 628

原创 View动画学习总结

布局动画android:animateLayoutChanges="true"在4.1 JellyBean上还有一个增强的功能,可以在容器内的子view的layout发生变化时也播放动画,用法如下。LayoutTransition transition = container.getLayoutTransition();transition.enableTransition...

2020-01-07 15:06:50 120

原创 事件分发学习总结

dispatchTouchEventreturn true:表示该View内部消化掉了所有事件return false:表示事件在本层不再继续进行分发,并交由上层控件的onTouchEvent方法进行消费return super.dispatchTouchEvent(ev):默认事件将分发给本层的事件拦截onInterceptTouchEvent方法进行处理(只有返回supe...

2020-01-07 15:05:08 129

原创 线程同步synchronized

monitor同一monitor阻塞,不同monitor互斥synchronized(锁)Java中每一个对象都可以作为锁,这是synchronized实现同步的基础:普通同步方法(实例方法),锁是当前实例对象 ,进入同步代码前要获得当前实例的锁静态同步方法,锁是当前类的class对象 ,进入同步代码前要获得当前类对象的锁同步方法块,锁是括号里面的对象,对给定对象加锁,...

2020-01-07 11:10:54 116

原创 kotlin协程

协程是什么协程并不是 Kotlin 提出来的新概念,其他的一些编程语言,例如:Go、Python 等都可以在语言层面上实现协程,甚至是 Java,也可以通过使用扩展库来间接地支持协程。在使用协程之前,我们需要在 build.gradle 文件中增加对 Kotlin 协程的依赖:buildscript { ... // ???? coroutines版本 ex...

2020-01-06 18:03:14 161

原创 热修复技术实践之类加载方案

项目地址类加载方案的原理是在app重新启动后让Classloader去加载新的类。因为在app运行到一半的时候,所有需要发生变更的类已经被加载过了,在Android上是无法对一个类进行卸载的。如果不重启,原来的类还在虚拟机中,就无法加载新类。因此,只有在下次重启的时候,在还没走到业务逻辑之前抢先加载补丁中的新类,这样后续访问这个类时,就会Resolve为新类。从而达到热修...

2019-12-31 14:52:31 119

原创 gradle自定义plugin实践之360多渠道加固打包

项目地址使用AndroidStudio新建一个工程或者新建一个module,在src/main下新建两个文件夹,groovy、resources,PS:这里的名字其实叫什么都可以,之前的java、res我们可以直接删除。修改app文件夹下的build.gradle文件apply plugin: 'groovy'apply plugin: 'maven'sou...

2019-12-30 14:59:15 471

原创 APK体积极限压缩优化瘦身

查看APK结构Build->Analyse Apk未做处理的APK.jpg开启代码混淆混淆模板release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard...

2019-11-04 15:49:43 412

原创 混淆模板

#-------------------------------------------定制化区域----------------------------------------------#---------------------------------1.实体类----------------------------------keep class XXX.XX.mod...

2019-11-04 15:33:09 156

原创 精准计算RecyclerView滑动距离

小专栏前去小专栏查看更多分享前言最近遇到需求,要计算RecyclerView滑动距离,用提供的computeVerticalScrollOffset()方法得到的值不是很准确。是基于item的平均高度算得,如果列表中item高度一致可以用此方法。问题来了,我的应用场景是各item高度不一,这时就只能另找方法了。方法一:网上找的方法,用一个变量去统...

2018-11-08 17:39:00 938

原创 Glide V4使用指南

Glide的强大和灵活相信不需要多介绍了本文使用Glide版本为4.8.0,因为使用的Java语言进行开发,涉及到使用Kotlin的部分还请参考官方文档SDK要求最小SDK版本需要使用API 14(或者更高版本)Complie SDK Version需要使用API 27(或者更高版本)Glide使用的SupportLibr...

2018-10-26 09:08:00 298

原创 Android 音乐播放器

一个本地&在线播放器,聚合QQ音乐、网易云音乐、百度音乐、虾米音乐等多平台音乐api实现,音乐播放多功能支持。支持Android 5.0+支持在线歌曲下载歌词播放、桌面歌词、桌面小控件通知栏控制、线控播放、音频焦点控制QQ登录、在线歌单同步百度电台列表,网易云mv排行榜,mv播放评论酷狗歌词搜索、修改歌词样式更多体验请下载apk,...

2018-07-29 22:02:00 254

原创 动脑高级UI预习资料——NestedScrolling滑动机制

1,如今NestedScrolling运用到很多地方了,要想好看一点的滑动变换,基本上就是使用这个来完成的,让我们来简单的了解一下。2,NestedScrolling机制能够让父View和子View在滚动式进行配合,其基本流程如下:当子view开始滚动之前,可以通知父View,让其先于自己进行滚动;子View自己进行滚动;子view滚动之后,还可以...

2018-07-20 10:29:00 137

原创 深入理解 Dijkstra 算法实现原理

迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。(嗯,第一段是抄的,由于本人算法的基础比较薄弱,我会尽量用通俗易懂的语言来让大家理解本文)参考博客:数据结构--Dijkstra算法最清楚的讲解大概就是这样一个有权图,D...

2018-06-29 18:41:00 720

原创 Flutter Plugin开发流程

这篇文章主要介绍了Flutter Plugin开发流程,包括如何利用Android Studio开发以及发布等。今天这篇文章,给大家介绍如何开发Flutter Plugin中Android的部分。有关Flutter以及Flutter Plugin的概念,感兴趣的可以从官网查看相关资料。简介笔者的环境是Mac下Android Studio进行的开发...

2018-05-12 21:05:00 191

原创 如何给老婆解释什么是RPC

一个阳光明媚的早晨,老婆又在翻看我订阅的技术杂志。“老公,什么是RPC呀,为什么你们程序员那么多黑话!”,老婆还是一如既往的好奇。“RPC,就是Remote Procedure Call的简称呀,翻译成中文就是远程过程调用嘛”,我一边看着书,一边漫不经心的回答着。“啥?你在说啥?谁不知道翻译成中文是什么意思?你个废柴,快给我滚去洗碗!”“我去。。。...

2018-05-07 08:11:00 623

原创 Android之Gradle加快编译速度

原文:https://zeroturnaround.com/rebellabs/making-gradle-builds-faster/对build过程进行配置实现编译优化:首先要配置java环境:https://www.jianshu.com/p/5fe13447a6b7在项目的控制台输入命令:./gradlew :app:assembleDeb...

2018-03-26 13:34:00 720 1

原创 我所经历的Android面试

概述笔者15年毕业一直在小公司,觉得完全靠自学已经到了自己的天花板,然后想进大型互联网公司发展,所以年前辞职,放弃了年终奖,年后就直接来的北京,面试的公司有稳定的大公司,也有创业型公司,有些创业型的公司面试质量也挺高的,不输于一些大公司,下面会说到。技术储备基础不管是Android基础还是Java基础以及常见的数据结构,这些是无原则地必须要熟练掌握...

2018-03-26 08:51:00 289

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除