- 博客(59)
- 收藏
- 关注
原创 Illegal argument in isolate message: (object extends NativeWrapper - Library:'dart:ui' Class: Path)
注意 isolate 开启的线程不能在类里面,不然就是主线程了///发送guidvoid startDownLoad(String guid) async { ReceivePort receivePort = ReceivePort(); receivePort.listen((message) { if(message is SendPort){ message...
2023-03-04 17:21:53 57
原创 Dart数字转汉字
class ConvertNumberToChineseMoneyWords{ // 大写数字 static List<String> NUMBERS = ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十",""]; static String toChinese(int index) { if(index >...
2022-06-17 15:07:34 539
原创 记一次解密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 402
原创 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 1718 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 169 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 6100 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 3727 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 317 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 1359 3
原创 XPosed实践
项目配置官方教程首先清单文件<meta-data android:name="xposedmodule" android:value="true" /> <meta-data android:name="xposeddescription" android:val...
2021-04-14 16:19:43 239
原创 Android使用Jenkins打包上传蒲公英
Android环境变量系统管理 - > 全局属性-> 配置环境变量设置环境变量系统管理 - > 全局工具配置-> 配置JDK、gradle,git等jdkgitgradle通用通用留8个包。。。源码管理添加账号就行了构建触发器构建触发器每5分钟检测一次代码有新改动就构建H/5 * * * ...
2021-04-02 16:52:19 621
原创 高阶函数
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 179
原创 recyclerview优化学习总结
在onBindViewHolder里设置监听可能会创建多个View.onclicklistener对象在onCreateViewHolder方法里设置监听@Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { final Recycle...
2020-09-12 14:41:22 229
原创 关闭线程
终止线程stop方法,已经被弃用,无法预期interruptinterrupt方法其作用是中断此线程(此线程不一定是当前线程,而是指调用该方法的Thread实例所代表的线程),但实际上只是给线程设置一个中断标志,线程仍会继续运行。在run方法里调用isInterrupted()方法public static void main(String[] args) { Thre...
2020-09-03 09:55:17 178
原创 组件化ARoute使用总结
ARouter项目结构app为壳,commonlib为公共组件库,chat,home等为模块gradle配置gradle.properties里配置组件化开关#isNeedHomeModule=trueisNeedHomeModule=false#isNeedChatModule=trueisNeedChatModule=false#isNeedFindModule=...
2020-08-18 15:46:19 819
原创 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 927
原创 腾讯云通信音视频通话最小化悬浮小窗
基础7.4.9200效果图首先是显示悬浮窗的服务/** * 视频悬浮窗服务 */public class FloatVideoWindowService extends Service { private String currentBigUserId; //浮动布局view private View mFloatingLayout; //容...
2020-07-07 14:07:47 1992 1
原创 事件分发学习总结2
布局结构所有事件返回值都为:return super.TouchEvent(event)E/ActivityToucEvent: dispatchTouchEvent: 0E/ParentLayout: dispatchTouchEvent: 0E/ParentLayout: onInterceptTouchEvent: 0E/NestedParentLayout: disp...
2020-06-13 15:53:28 166
原创 编译最新版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 594
原创 导入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 863 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 1894
原创 RecyclerView刷新数据时闪烁
关闭recyclerview动画recyclerView.getItemAnimator().setAddDuration(0); recyclerView.getItemAnimator().setChangeDuration(0); recyclerView.getItemAnimator().setMoveDuration(0); recyc...
2020-05-21 16:27:29 2792
原创 RecyclerView九宫格分隔线
九宫格分隔线,无左右边与最下边线效果图public class GridDividerItemDecoration extends RecyclerView.ItemDecoration { private int spanColumnpan; private Drawable mDivider; // spanColumn 是 几列 publ...
2020-05-19 17:48:01 657
原创 View动画学习总结
布局动画android:animateLayoutChanges="true"在4.1 JellyBean上还有一个增强的功能,可以在容器内的子view的layout发生变化时也播放动画,用法如下。LayoutTransition transition = container.getLayoutTransition();transition.enableTransition...
2020-01-07 15:06:50 146
原创 事件分发学习总结
dispatchTouchEventreturn true:表示该View内部消化掉了所有事件return false:表示事件在本层不再继续进行分发,并交由上层控件的onTouchEvent方法进行消费return super.dispatchTouchEvent(ev):默认事件将分发给本层的事件拦截onInterceptTouchEvent方法进行处理(只有返回supe...
2020-01-07 15:05:08 153
原创 线程同步synchronized
monitor同一monitor阻塞,不同monitor互斥synchronized(锁)Java中每一个对象都可以作为锁,这是synchronized实现同步的基础:普通同步方法(实例方法),锁是当前实例对象 ,进入同步代码前要获得当前实例的锁静态同步方法,锁是当前类的class对象 ,进入同步代码前要获得当前类对象的锁同步方法块,锁是括号里面的对象,对给定对象加锁,...
2020-01-07 11:10:54 137
原创 kotlin协程
协程是什么协程并不是 Kotlin 提出来的新概念,其他的一些编程语言,例如:Go、Python 等都可以在语言层面上实现协程,甚至是 Java,也可以通过使用扩展库来间接地支持协程。在使用协程之前,我们需要在 build.gradle 文件中增加对 Kotlin 协程的依赖:buildscript { ... // ???? coroutines版本 ex...
2020-01-06 18:03:14 179
原创 热修复技术实践之类加载方案
项目地址类加载方案的原理是在app重新启动后让Classloader去加载新的类。因为在app运行到一半的时候,所有需要发生变更的类已经被加载过了,在Android上是无法对一个类进行卸载的。如果不重启,原来的类还在虚拟机中,就无法加载新类。因此,只有在下次重启的时候,在还没走到业务逻辑之前抢先加载补丁中的新类,这样后续访问这个类时,就会Resolve为新类。从而达到热修...
2019-12-31 14:52:31 141
原创 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 506
原创 APK体积极限压缩优化瘦身
查看APK结构Build->Analyse Apk未做处理的APK.jpg开启代码混淆混淆模板release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard...
2019-11-04 15:49:43 442
原创 混淆模板
#-------------------------------------------定制化区域----------------------------------------------#---------------------------------1.实体类----------------------------------keep class XXX.XX.mod...
2019-11-04 15:33:09 176
原创 精准计算RecyclerView滑动距离
小专栏前去小专栏查看更多分享前言最近遇到需求,要计算RecyclerView滑动距离,用提供的computeVerticalScrollOffset()方法得到的值不是很准确。是基于item的平均高度算得,如果列表中item高度一致可以用此方法。问题来了,我的应用场景是各item高度不一,这时就只能另找方法了。方法一:网上找的方法,用一个变量去统...
2018-11-08 17:39:00 985
原创 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 317
原创 Android 音乐播放器
一个本地&在线播放器,聚合QQ音乐、网易云音乐、百度音乐、虾米音乐等多平台音乐api实现,音乐播放多功能支持。支持Android 5.0+支持在线歌曲下载歌词播放、桌面歌词、桌面小控件通知栏控制、线控播放、音频焦点控制QQ登录、在线歌单同步百度电台列表,网易云mv排行榜,mv播放评论酷狗歌词搜索、修改歌词样式更多体验请下载apk,...
2018-07-29 22:02:00 281
原创 动脑高级UI预习资料——NestedScrolling滑动机制
1,如今NestedScrolling运用到很多地方了,要想好看一点的滑动变换,基本上就是使用这个来完成的,让我们来简单的了解一下。2,NestedScrolling机制能够让父View和子View在滚动式进行配合,其基本流程如下:当子view开始滚动之前,可以通知父View,让其先于自己进行滚动;子View自己进行滚动;子view滚动之后,还可以...
2018-07-20 10:29:00 160
原创 深入理解 Dijkstra 算法实现原理
迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。(嗯,第一段是抄的,由于本人算法的基础比较薄弱,我会尽量用通俗易懂的语言来让大家理解本文)参考博客:数据结构--Dijkstra算法最清楚的讲解大概就是这样一个有权图,D...
2018-06-29 18:41:00 749
原创 Flutter Plugin开发流程
这篇文章主要介绍了Flutter Plugin开发流程,包括如何利用Android Studio开发以及发布等。今天这篇文章,给大家介绍如何开发Flutter Plugin中Android的部分。有关Flutter以及Flutter Plugin的概念,感兴趣的可以从官网查看相关资料。简介笔者的环境是Mac下Android Studio进行的开发...
2018-05-12 21:05:00 207
原创 如何给老婆解释什么是RPC
一个阳光明媚的早晨,老婆又在翻看我订阅的技术杂志。“老公,什么是RPC呀,为什么你们程序员那么多黑话!”,老婆还是一如既往的好奇。“RPC,就是Remote Procedure Call的简称呀,翻译成中文就是远程过程调用嘛”,我一边看着书,一边漫不经心的回答着。“啥?你在说啥?谁不知道翻译成中文是什么意思?你个废柴,快给我滚去洗碗!”“我去。。。...
2018-05-07 08:11:00 653
原创 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 747 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人