- 博客(120)
- 资源 (17)
- 收藏
- 关注
原创 Windows查找JDK的安装路径
如果很久之前安装了JDK,或者在别人的电脑上,想要快速指导JDK 的安装路径,可以通过啥方式指导JDK的安装路径是在哪里呢?从第一步可以知道,我们已经安装了 JDK 并且有配置了环境变量,那么我们直接去环境变量里面查看就可以了。如果显示这种,说明是已经安装了 JDK 的了。从最后的jre目录可以找到相应的jdk目录。首先我们打开命令行,如果输入。一、确认是否安装了JDK。
2024-05-05 22:54:52
6003
2
原创 鸿蒙开发环境配置-Windows
入局鸿蒙开发,发现在 Windows 下面配置安装相关环境并没有像 Mac 一样简单,过程中遇到了一些问题记录一下。
2024-01-19 22:46:57
1102
原创 强劲升级,太极2.x你值得拥有!
嗨,大家好,最近桃桃没顾得上给大家分享好用好玩的软件。还记得前段时间给大家分享的太极1.0软件?最近大佬对软件进行了全新升级,升级后的功能更强更稳定,轻度用户使用基本功能就已经足够了,壕无人性的同学则可以考虑VIP,一起来看看呗!
2023-10-25 22:18:36
555
原创 anyproxy 的安装和抓包使用
基于Node.js,开放二次开发能力,允许自定义请求处理逻辑支持Https的解析提供GUI界面,用以观察请求。
2023-10-22 18:26:46
1063
原创 阿里云服务器部署flask项目「gunicorn + nginx + 支持https」
阿里云服务器部署flask项目「gunicorn + nginx + 支持https」
2023-05-14 17:15:07
2324
6
原创 Python用requests访问微信小程序security.msgSecCheck的api从而实现敏感词过滤并避坑47001
Python用requests访问微信小程序security.msgSecCheck的api从而实现敏感词过滤并避坑47001
2023-05-14 17:12:49
763
原创 Flutter常用Widget(一)Container
Flutter常用Widget(一)Container详细介绍Container的相关使用。一、简介A convenience widget that combines common painting, positioning, and sizing widgets.一个使用方便的小部件,它融合了常见的绘画,定位和大小调整。1、构造函数 Container({ Key...
2020-05-05 22:31:52
532
原创 玩转沉浸模式&全屏显示
简介System Bar,系统状态栏,用来展示通知、表现设备状态和完成设备导航的屏幕区域。通常上来说,系统栏(System bar)包括状态栏和导航栏,一般都是与程序同时显示在屏幕上的。但有些场景,譬如视频播放、小说阅读等,可以通过暂时隐藏系统栏,来为用户提供一个更加专注的体验环境。不同场景的诉求和实现透明状态栏参考链接1、http://hukai.me/android-training...
2020-04-12 23:24:13
478
原创 System UI Flag
简介在Android 3.0(11)之后,Android提供了setSystemUiVisibility方法,这个方法的作用是可以通过一个flag配置更改状态栏或其他屏幕/窗口装饰的可见性,主要的作用是暂时隐藏掉系统栏的一些UI,让用户能够将注意力更多地集中在应用程序内容上。注意,在使用的时候,有一些flag不一定是API 11 就支持的。大部分都是在API 16的时候增加上的。这种方式设置...
2020-04-06 23:36:23
693
原创 Window Flag 含义
简介WindowManager.LayoutParams 是用于向WindowManager 描述Window窗口的相关展示策略,它继承自于 ViewGroup.LayoutParams,在我们日常的开发中,肯定会或多或少用到其中的一些主要成员常量,特别是做跟全屏显示相关的业务,譬如视频或者是阅读器,更是会经常用到。这里主要介绍一下,一些常用的Flag 的相关含义,方便开发中使用。常用Fl...
2020-04-06 17:05:27
2100
原创 原生工程集成Flutter
目录背景创建Flutter Module背景随着Flutter的不断完善,逐渐有更多的功能可以考虑使用Flutter 来实现,开发的过程就会发现,我们肯定不能抛弃原有的APP的所有功能进行重写,一般都是针对一些新的业务场景使用Flutter 来实现,这就不可避免的会遇到如果使用Flutter与Android 和iOS进行混合开发的问题。本文会介绍一下Android端开发Flutter的整个流程...
2020-03-28 15:16:23
518
原创 高效开发小结
背景作为一枚稍微还有点追求的程序猿,在日常工作的过程,经常会想去研究下怎样才能高效完成工作和有所成长,不至于成为一个只会写代码完成任务的机器。主要是两个方面:a)、工作拆解合理,排期明确,逐步提高风险把控能力;b)、方便总结、反省,进行优化;在摸索过程中,除了需要在日常工作中刻意去思考外,也发现了几款比较好用的软件,推荐结合使用。思考需要对自己需要提升的能力,理出一份对应的指南,...
2020-03-01 17:42:43
306
原创 Flutter 开发常见异常
添加asset 文件夹增加图片资源的时候,出现了以下错误:解决方式只需要将assets 的声明跟上面的对齐就行。解决后:
2020-02-08 20:25:01
742
2
原创 Flutter 配置常见问题
The Flutter SDK installation is incomplete. Please see…本来是用的好好的的Flutter工程配置,某一天创建新工程的时候突然提示上面错误,很是疑惑,后来想起是pull 了master的代码下来,所以在此执行了一个flutter doctor,下载对应的配置,等执行完成就OK 了。...
2020-01-18 22:39:59
1214
原创 文件句柄和文件句柄泄漏解决
文件句柄在文件I/O中,要从一个文件读取数据,应用程序首先要调用操作系统函数并传送文件名,并选一个到该文件的路径来打开文件。该函数取回一个顺序号,即文件句柄(file handle),该文件句柄对于打开的文件是唯一的识别依据。要从文件中读取一块数据,应用程序需要调用函数readFile,并将文件句柄在内存中的地址和要拷贝的字节数传送给操作系统。当完成任务后,再通过调用系统函数来关闭该文件。...
2019-12-22 12:07:53
4104
原创 Litho介绍和原理分析
一、Litho简介Litho是Facebook推出的一套高效构建Android UI的框架,主要目的是提升RecycleView复杂列表的滑动性能和内存占用。官网原文介绍如下:“Litho is a declarative framework for building efficient user interfaces (UI) on Android. It allows you to wr...
2019-12-16 23:08:01
5955
原创 Start Uml 3.0.2 使用
1、下载start uml: 下载地址2、修改StarUML安装包下的lincense_manage.js(/Applications/StarUML.app/Contents/Resources/app/src/engine/license-manager.js)这个文件夹在开始安装的时候并不存在,是通过asar文件解压得到的,所以需要先将asar进行解压,解压操作需要用到asar,所以...
2019-12-14 11:16:59
421
原创 Github 下载文件夹方法
背景有时候GitHub上的工程很大,而我们只需要其中的一部分文件,这个时候整个clone 下来耗时长不说,还占用空间,所以就有了这样子的诉求:下载某个文件夹。下载方式一、GitZip for github如果你使用的是 Chrome 的话,可以用 GitZip for github 这个插件。下载安装之后,直接双击需要下载的Github 工程的文件夹,就会弹出下载弹框让你下载。使用...
2019-12-13 22:59:08
5386
1
原创 任务调度框架(多任务、动态优先级调度)
背景日常开发的过程中,对于某个状态变更的监听,一般都是使用注册listener的方式,在状态变更的时候,遍历注册的listener一一进行通知,这种情况,经常会出现一些任务扎堆执行的情况,譬如登录完成(或者其他类似的通知监听),如果一个APP里面有很多的业务,每个模块都注册了监听,在登录状态变更的时候,会去获取更新数据或者干一些业务相关的逻辑。这种情况下这种实现方式会存在以下几个问题:1、通...
2019-12-08 23:09:48
3525
1
原创 UI空闲时回调-MessageQueue.IdleHandler
背景我们的在业务开发的过程中,可能会遇到这样子的情况,需要再UI线程空闲的时候,做一些操作,那应该怎样子实现呢?MessageQueue.IdleHandlerMessageQueue给我们提供了一个IdleHandler的接口,其定义如下: /** * Callback interface for discovering when a thread is going to...
2019-12-08 17:57:03
668
原创 Android xml onClick原理
背景 <Button android:onClick="handleAction" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击"/>我们在写布局的时候,经常会给一个控件加上an...
2019-12-06 21:20:36
1029
原创 策略模式
策略模式策略模式定义了算法家族,分别封装起来,让他们之间可以互相转换,这个模式的算法变化,不会影响到使用算法的客户。结构图其中,Context对象以聚合的方式,拥有Strategy对象。代码实现1、创建基类或者接口public abstract class Strategy { public abstract double doSomthing(int num1, int n...
2019-12-04 08:27:54
247
原创 Lottie源码分析
简介我们使用Lottie的时候,最关键的类就是LottieAnimationView(继承自ImageView)和LottieDrawable(继承自Drawable),Lottie的描述文件最终会解析成一系列的Layer,然后在绘制的时候,根据不同的进度,绘制Layer的不同帧。JSON描述文件在分析源码之前,我们需要先认识一下,加载的json 文件的数据结构是怎样的。比较重要的有三层,...
2019-12-01 23:29:03
549
原创 Lottie使用
一、简介Lottie是Airbnb开源的一个动画渲染库,支持多平台,包括iOS、Android、React Native以及Web。Lottie动画的制作流程如下:设计师通用After Effects 制作动画,然后通过Bodymovin插件导出对应的json文件,给到每个端的研发,然后进行编译展示。官网地址GitHub地址二、简单使用1、依赖引入build.gradle ...
2019-12-01 12:16:55
3060
原创 ImageView显示长图
显示长图失败我们知道,ImageView经常用来显示一些位图,但是不是所有的图片都能够正常显示的,很明显不是的,当图片超过了一定的大小之后,你会发现,调用setImageBitmap(Bitmap bitmap)方法之后,图片没有正常显示出来,并且可显示的区域也没有显示对应的图片,这是为什么呢?测试做了一个实验,将一个如图大小的Bitmap设置给ImageView,图片没有显示出来,并且出现...
2019-11-30 11:53:30
2217
原创 Xposed的使用(二)
背景在上一篇文章介绍了Xposed的使用,但在反编译自己编写模块的过程中,发现对于一些常用用法方面资料还是比较缺乏,在使用的过程中还得不过google,因此在这里小结了一下这个框架常用的一些方法。查找操作常用hook方法实现public class CommonHookModule implements IXposedHookLoadPackage {private String...
2019-11-30 11:52:14
919
原创 Xposed的使用(一)
简介Xposed是 Android 平台上很出名的一个hook开源框架,使用这个框架我们可以Hook Android系统的核心进程Zygote来达到修改应用程序的运行过程和结果,本篇文章主要介绍怎样通过Android Studio来编写插件给Xposed来实现自己想要的拦截效果。使用安装xposed_install首先需要安装xposed_installer框架,因为需要劫持系统,所以要求...
2019-11-30 11:50:54
677
原创 Ndk配置(Mac)
下载下载NDK有以下两种方式1、使用AndroidStudio里面的SDK Manager,一般下载安装的时候顺便将CMake也一并安装,这种方式操作简单方便,但缺点也比较明显,只能下载最新版本的,不能选择其他的版本2、官网下载: https://developer.android.com/ndk/downloads/ ,能够按照自己的需要下载对应的版本。环境变量配置下载完...
2019-11-30 11:50:01
3071
原创 VirtualHook使用
背景想要逆向分析其他应用,除了需要有smali语法功底外,一套好用的良好的逆向装备也是必不可少的,并且当我们想要更加深入去了解一款app的实现的时候,可能还需要用到调试、替换(修改原有的逻辑),解决方案有很多种,这里推荐使用apktool + jadx + virtualhook,apktool解决资源文件的问题,jadx解决反编译查看代码的问题,virtualhook解决热替换的要求。环...
2019-11-30 11:48:53
1243
原创 360脱壳
背景在反编译app的时候,有时候会遇到一些加固了的app,这样子我们做竞品分析的时候,就无法使用apktool或者jadx进行反编译了,APK加固成为我们分析的障碍。360渠道作为Android应用分发的较大渠道,很多apk都使用了360加固。本文就来介绍下如何来绕过这个坑。360加固后的apk,在arm设备上首先会将assets目录下的libjiagu.so拷贝到files目录下,然后通过l...
2019-11-30 11:47:30
1860
原创 Room使用介绍
简介在2017年Google IO大会上推出的官方数据框框架,其实际上就是对SQLite做了一层封装。基本原理是通过编译期注解,根据你配置的表名和表字段生成对应的代码,减少开发者的工作量。使用1、添加Room依赖dependencies { api "android.arch.persistence.room:runtime:$1.1.1" annotationProcessor "...
2019-11-30 11:46:25
1995
原创 Android NDK开发(目录)
NDK开发一、第一个NDK工程二、JNI开发基础知识三、JNI开发流程四、JNI调试五、崩溃问题定位及异常保护六、SO的生成七、静态注册和动态注册八、自动生成JNI头文件源码地址...
2019-11-20 23:52:33
240
原创 NDK开发(七)--静态注册和动态注册
简介在开发NDK 工程的时候,我们在java层调用一个native方法的时候,虚拟机怎样知道应该调用到so里面的哪个方法呢?这里就用到了另外一个概念注册,通过注册,可以将指定的native方法和so里面对应的方法绑定起来。注册分为静态注册和动态注册。一般我们用到的都是静态注册。静态注册...
2019-11-20 23:29:23
347
原创 NDK开发(五)--崩溃问题定位及异常保护
使用带符号表的so进行问题排查我们可以利用带符号表的so,将崩溃信息里面的错误地址对应的so 行号进行输出,需要使用到ndk的两个工具进行问题定位。addr2line工具在/Library/Android/sdk/ndk-bundle/toolchains/x86_64-4.9/prebuilt/darwin-x86_64/bin下面,会有一个x86_64-linux-android-...
2019-11-20 08:45:12
895
原创 NDK开发(四)--NDK调试
崩溃日志分析在ndk崩溃的时候,如果是习惯JAVA 开发的同学,可能会毫无头绪,因为其崩溃信息并不像JAVA那样清晰,如果不知道各个部分的错误信息是代表啥意思,可能在出现问题的时候,不知道从何入手解决。上面是一个比较全的NDK崩溃堆栈。基本上一个崩溃日志可以分为三部分:错误信号,寄存器信息,方法调用栈。1、错误信号从错误信号里面,一般会告知,是哪种类型的异常,譬如上面的错误,提...
2019-11-20 00:27:25
382
原创 NDK开发(三)--JNI开发流程
一、编写流程1、声明native方法2、生成对应的头文件使用javah命令3、在C/C++文件,引入对应的头文件,并实现对应的方法使用""而非<>的方式引入。否则会报以下异常.error: 'com_canter_ndkdemo3_JNIMethod.h' file not found with <angled> include; use...
2019-11-19 00:16:52
325
原创 NDK开发(八)--自动生成JNI头文件
简介在使用NDK开发过程中,对于我们声明的native方法,都是需要进行静态注册的,实现的方法可以是根据类型签名的规范进行实现,也可以使用javah来帮我们自动生成。自己手写的方式,很容易一不小心就写错了,所以一般都是使用javah的方式,我们之前在使用的时候,步骤都是这样子的,javac com/example/Test.javajavah com.example.Test然后将在当前...
2019-11-10 18:49:29
646
原创 NDK开发(二)--JNI基础知识
JNI数据类型JNI的数据类型包含两种:基本类型和引用类型。1、基本数据类型Java中的数据类型的对应关系如下:2、引用类型Java中的引用数据类型的对应关系如下:JNI类型签名JNI的类型签名标识一个特定的Java类型,这个类型可以是类也可以是方法或者数据类型。类签名L+包名+类名+;的形式,在编写的时候,需要将全路径里面的"."替换成“/”,例如最常用的java.l...
2019-11-09 23:23:58
207
原创 NDK开发(六)--SO的生成
为啥能够生成一个带符号、一个不带符号的so?在执行gradle assembleRelease 之后,我们的工程就会输出三个so 文件。其中有两个是带符号表信息的,另外一个是不带符号表信息的,看到这不禁有些疑惑,其他两个so 是怎样生成的?为啥能够输出不带符号表的so?生成的位置以及相关的设置是在哪里配置的?一开始在研究的时候,以为是ndk-build的时候生成的,一直在找CMakeLis...
2019-11-08 00:01:41
1412
原创 NDK开发(一)--第一个NDK工程
介绍1、NDKNDK是Native Development Kit的缩写,它不是一个单独的工具,而是一个包含API、交叉编译器、链接程序、调试工具、构建工具、文档和示例等的综合工具。它的作用是快速开发C/C++动态库,并自动将动态库和应用打包到apk中。2、JNIJNI是Java Native Interface的缩写,即Java 本地接口,作用是Java 跟本地其他语言(C/C++)进行...
2019-11-05 23:00:16
362
EngineerTool.apk
2019-10-11
Animation 动画详解
2018-04-08
ToTrace脚本文件
2017-11-21
MarkDown安装包(含注册码)
2016-01-13
SVN的安装包
2015-02-08
操作系统课程设计
2015-02-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人