自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 KSP实战-使用ksp AutoService为SPI自动生成配置文件

AutoService是自动为Service Provider Interface(SPI)生成配置的高性能KSP注解处理器插件;效果如图:背过Java面试题的应该都知道SPI,对于Android开发者来说,可以使用SPI实现基于接口的模块解耦;具体可以参考这位大佬的文章Android 中 SPI 的使用, 这里不在赘述;

2023-12-16 14:23:25 1001

原创 基于模块暴露和Hilt的Android模块化方案

ModuleExpose,是将module内部需要暴露的代码通过脚本自动暴露出来;不同于手动形式的接口下沉,ModuleExpose是直接将module中需要暴露的代码完整拷贝到module_expose模块,而module_expose模块的生成、拷贝和配置是由ModuleExpose脚本自动完成,并保证编译时两者代码的完全同步;最终,工程中包含如下几类核心模块:基础模块:基础代码封装,可供任何业务模块使用;业务模块:包含业务功能,业务模块可以依赖基础模块,但无法依赖其他业务模块(避免循环依赖);

2023-11-28 16:31:23 1054

原创 【无标题】

Android外文整理

2022-09-01 11:31:18 121 1

原创 python返回对象导致的对象修改问题

注意不要忽略python函数返回对象带来的 不容易发现的 变量修改问题! 具体问题看下面:class A(object): def __init__(self): self.buffer = [1, 2, 3] def get_buffer(self): return self.buffer def debug(self): print(self.buffer)def testA(): """ 通过retur

2021-03-19 00:04:52 501

转载 Android Room && ViewModel with a View

jetpack part document转载原因文章充分介绍了使用jetpack ViewModel 、LivaData、Room的使用案例文档地址:https://developer.android.com/codelabs/android-room-with-a-view-kotlin文档源码地址:https://github.com/googlecodelabs/android-room-with-a-viewcontentEntity: Annotated class that des

2020-11-27 20:37:35 321

原创 Fragment和Activity之间的通信

Fragment通信1. Fragment和Activity通信1. Fragment->Activity可以在fragment编写interface接口,实例化mListener字段(初始化设置为null)、在Activity实现回调接口,在Fragment调用onAttach的时候实现,实例化mListener字段,实现调用。参考文章:https://blog.csdn.net/weixin_34273481/article/details/85815511参考书籍:Android

2020-11-24 19:37:16 495

原创 win10好使的软件

Windows10 Best ToolsTyporamarkdown文件编辑器详细信息传送门Snipaste截图+贴图+截图标注 神器详细信息传送门PotPlayer强大的视频播放器详细信息传送门Textify实现不可复制信息复制传送门TrafficMonitorTraffic Monitor是一款用于Windows平台的网速监控悬浮窗软件,可以显示当前网速、CPU及内存利用率,支持嵌入到任务栏显示,支持更换皮肤、历史流量统计等功能。传送门Wox+E

2020-10-15 14:57:06 273

原创 Java终止子线程

Java终止子线程使用 interrupt() 设置线程为中断状态,以此通知线程,作为一个结束的信号。使用 isInterrupt() 检查线程的状态是否为中断状态以此作为结束的标志。当被设置 interrupt()的线程处在等待状态中,如sleep之中,就会出现 InterruptedException 异常。可以在catch捕获并且退出。public class Test { public static void main(String[] args) throws Interrupt

2020-09-07 22:48:51 1337

原创 主线程join 循环等待子线程的正确理解

主线程join 循环等待子线程的正确理解看个例子:开启N个线程,将N个线程在主线程下join一下看下面的代码,看上去的功能是 主线程等到N个子线程执行完毕之后,再执行主线程的后续操作, 代码的目的也确实是这样的。困惑的地方在于,我以前理解的是: 主线程执行完for循环才开始阻塞(每个子线程都被join了),等到子线程全部执行完毕后,主线程才继续执行。 但是join函数本身,是让调用此函数的线程等待join的参数线程,直到其执行完毕, 所以我就在想本质上主线程是不是在循环的第一步就开始等待,直到第一个被

2020-09-07 22:22:07 946

转载 Android学习文章记录

ViewModel&&LiveData参考文章 : https://juejin.im/post/5c9263f9e51d456e912ec4a7

2020-07-16 18:58:38 100

原创 typora assets文件夹瘦身

typora assets文件夹瘦身程序作用typora编辑器设置本地图片保存路径为 {filename}.assets 之后,复制黏贴的图片会自动保存在这个 {filename}.assets。问题来了,复制文件,图片会自动保存到assets文件夹,并在markdown文件产生该图片链接语法![](),但是删除、修改markdown中的图片链接语句,并不会删除assets删除图片,这导致了经常assets文件夹会产生很大的无用图片,本地上是没什么的,但是上传到github等平台就很麻烦,毕竟图片很大,

2020-06-29 22:21:57 1722 11

原创 python文件搜索及上传功能实现

python文件搜索及上传功能实现程序实现功能利用os.system()调用命令行命令搜索Linux上所有的txt文件(无权限查看的被略去)利用os.system()调用命令行命令搜索Linux上具体的某个txt文件(zhaojunchen.txt)利用ssh的scp上传搜索出来的txt(代码搜索出来的zhaojunchen.txt 只有一个、如果搜索出来的是多文件,需要稍作处理)文件到服务器程序用途提供python代码与LInux命令行的交互方法 os.popen() 不同于os.sys

2020-06-28 23:09:31 190

原创 python调用nmap扫描局域网存活主机和端口

python调用nmap扫描局域网存活主机和端口文章目录python调用nmap扫描局域网存活主机和端口操作环境运行代码关键代码1. nm.scan(ip,port,args)2. 字典的解析运行结果参考文章操作环境python2sudo apt install nmappip install nmap json运行代码sudo python2 scan.py代码经过调试,使用root可直接运行#!python2 # scan.py must be sudo to runimport

2020-06-27 14:07:48 1929

原创 Tcp文件传输编程

实验目的掌握Socket编程的基础知识,了解服务器端和客户端编程的模型,掌握基本的Socket函数,能够实现TCP环境下客户端与服务器端交互的例子。实验要求编写TCP网络交互客户端和服务器端实例:客户端读取某个文件并将内容发送给服务器端;服务器端读取客户端消息之后,将客户端消息、客户端消息长度写入本地文件,同时将这些信息返回给客户端;实现Ctrl+C信号的捕获并正常退出;服务器端接收连接时使用新的进程处理,实现并发处理;了解服务器端的设置(地址、端口、侦听队列)实验设计设计包含以下三

2020-06-16 22:28:58 1175

原创 netfilter禁止ping发送

文章目录实验目的功能描述需求分析实验环境实验模块钩子模块钩子函数ping模块IP. . 模块port模块内核交互实验编码OUT钩子函数IN钩子函数sockopt钩子内核初始化Makefile用户测试程序实验测试内核交互模块测试ping模块测试port模块测试IP模块测试实验注意参考文献实验目的了解Netfilter框架,掌握Linux内核模块编程的方法,熟悉Netfilter框架进行数据拦截的方法,能够利用Netfilter框架实现网络数据包的控制。功能描述能够利用Netfilter框架和钩子函数

2020-06-13 21:54:36 1055

原创 Ping程序设计

Ping程序设计文章目录Ping程序设计0. 设计框架1. 实验须知ICMP协议2. 发送数据1、 ICMP报文填充2、 ICMP校验3、 发送ICMP报文3. 接收数据1、 剥离ICMP接收报文头部2、 接收报文4. 主程序流程Ping数据结构主函数流程注意点运行结果参考文献github: https://github.com/zhaojunchen/Linux-Network/tree/master/ping 0. 设计框架ping程序一般按照下图的框架进行设计。主要分为发送数据接收数据

2020-05-19 23:51:39 3380

原创 kotlin函数表达式和Lambda表达式在形式上的区别

kotlin函数表达式和Lambda表达式在形式上的区别package ch01import ch01.Important.add_1import ch01.Important.add_2import ch01.Important.add_3import ch01.Important.add_4/** * @Author zhaojunchen * @Date 2020/5...

2020-05-01 13:41:54 254

原创 PE文件注入

PE文件注入shellcode、实现弹出计算器实验环境及要求win10(地址随机化)、 32为exe(dll尚未尝试、理论上是可行的)实现功能地址自定位的弹出计算器的shellcode注入PE、打开PE是弹出计算器PE本身功能完整性实验思路解决shellcode地址定位的问题(使用PEB解决)修好PE节表、添加新的节修改新节的内容、新节的首部注入shellcode修改P...

2020-04-14 22:26:58 918

原创 彻底解决AMD 无法运行android studio原生模拟器

彻底解决AMD 无法运行android studio原生模拟器问题描述 早期的amd不支持AMD运行android studio的原生模拟器,只有使用第三方模拟器。造成了配置麻烦、安装packages速度非常慢(举个例子:AMD 2600x、SSD环境下、Geny模拟器–>只要更新代码、build、run之后的install package时间约15S…而在Macbook air2015环...

2020-03-26 11:23:14 18828 3

原创 system函数阻塞问题

system()函数是阻塞方式进行的,他会新建一个进程! system代码执行完毕才继续执行!注意一点,如下的命令:#include <bits/stdc++.h>#include <windows.h>using namespace std;int main() { std::cout << "Hello, World!" <&...

2020-03-11 09:49:15 6573

原创 Java原始类型引用类型

Java原始类型引用类型文章目录Java原始类型引用类型原始类型引用类型原始类型引用类型Java泛型编程Java泛型编程原始类型Java原始类型有8中、分别是:bool byte char short int long float double原始类型的函数参数传值方式是按值传递!这个很容易理解引用类型引用类型函数传递参数的方式是按引用传递,在c++里面理解的话就是 (传递本身&am...

2020-03-10 21:06:06 258 1

原创 Qt添加结尾分号并换行

Qt添加结尾分号并换行描述:用的过idea的小伙伴都知道的,Ctrl+Shift+Enter ==>在一行代码里面,实现将光标转到结尾、添加分号、换行这三个步骤!Qt creator是没有这个操作的! 但是可以将这个动作录制下来(end+;+enter)、命名、为其设置快捷键!参考文章 https://doc.qt.io/qtcreator/creator-macros.html 写的...

2020-02-26 20:33:25 1810

原创 No symbols for ntdll.

No symbols for ntdll.文章目录No symbols for ntdll.1. 错误情形2. 解决方案3. 过程记录1. 错误情形在使用windbg preview调试的时候、在command界面输入!address -summary 显示ntdll 未加载错误代码如下:0:014> !address -summary**********************...

2020-02-26 19:07:01 1774

原创 开源英文词库

github主页地址 https://github.com/zhaojunchen/ECDICT词典库的格式为:字段 解释word 单词名称phonetic 音标,以英语英标为主definition 单词释义(英文),每行一个释义translation 单词释义(中文),每行一个释义pos 词语位置,用 "/" 分割不同位置collins 柯林斯星级oxford 是否是牛津三千核...

2019-12-02 23:02:21 6040

原创 程序员网站集合

持续更新中PlantB word黏贴美化的代码Sci-Hub 论文免费下载Devdoc 在线API文档查看Google scholar google学术中国镜像Typing practice打字练习网站

2019-12-02 22:09:02 241

原创 ubuntu14.04/18.04编译V8

ubuntu编译v80 基础准备稳定快速的VPN代理(这里我用的VPN的全局代理),没有VPN或者VPN总是掉线、慢速…您就别试了。。。真的(直)环境:virtualbox+ubuntu14.04 64bit (主机为win10) (在16.04 在总是有问题、真的让人崩溃! 当然不是说16.04没法编译、只是我始终不成功、各种报错)1 安装depot_tools这个东西是goo...

2019-11-25 21:50:52 586

原创 Android开发经验转载

批量地插入数据的方法 转载自:https://www.jianshu.com/p/a3aae513939b解决由隐式事务开启的消耗!主动地开启事务//假设strings.size() = 10000try { mDb.beginTransaction(); for (String data : strings) { ContentVal...

2019-11-18 11:13:40 99

原创 利用VS了解汇编函数调用过程

利用VS了解汇编函数调用过程1.建立 vs 汇编新建vs c++控制台项目->右键根目录文件->属性在框下面填写 /FAs 保存写源代码 生成项目切换文件夹视图找到ASM(windwos下的x86(32位)汇编) 这个ASM文件会将源代码的每一行 解析为汇编代码, 你的每一条代码都被清洗的解析为若干的汇编代码(比linux的方便得多) 这样的话就可以很方便了解堆...

2019-09-21 19:23:09 401

转载 缓冲区溢出漏洞展示

本问转载自实验楼的缓冲区漏洞展示:https://www.shiyanlou.com/courses/231/learning/1注意:实验中命令在 xfce 终端中输入,前面有 $ 的内容为在终端输入的命令,$ 号不需要输入。命令上有 # 的内容为注释,不需要输入适用人群:有 C 语言基础会进制转换以及计算vim 基本使用熟悉基本 linux 命令缓冲区溢出是指程序试图向缓冲区写...

2019-09-17 18:53:56 468

原创 python爬虫篇-1

爬虫篇-1 基础爬虫部分直接上代码(目标网站有点…洁癖慎入)import requestsimport osimport pymysqlfrom bs4 import BeautifulSoup# headers和cookies直接由网站在线生成headers = { 'Connection': 'keep-alive', 'Cache-Control': 'max...

2019-09-10 23:42:48 158

原创 Java函数返回局部对象

结论: 在java函数里面创建局部对象,当返回这个对象时这个对象不会被销毁。参考:https://blog.csdn.net/shkkhd/article/details/1829584Class ObjectA{}Public Class Test{ Public static ObjectA Factory(){ return n...

2019-07-18 11:51:38 1880 2

转载 gcd时间复杂度分析

文章地址https://blog.csdn.net/fengyuzhicheng/article/details/79561300gcd代码实现define ll long long ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;}ll gcd(ll a,ll b) {while(b^=a^=b^=a%=b);return a;}...

2019-07-03 21:36:33 4941

原创 Android常见包的导入

implementation 'com.google.code.gson:gson:2.8.5'implementation 'com.squareup.okhttp3:okhttp:4.0.0'implementation 'com.github.bumptech.glide:glide:4.9.0'implementation 'org.litepal.android:java:3.0....

2019-07-01 16:31:29 531

转载 腾讯云修改镜像环境的Mysql密码

入坑腾讯云最近开始捣鼓云服务器,发现腾讯云是真的坑。各种文档懒得跟屎一样,环境配置一点都不友好。0.搭建lamp服务器apache + php + mysql + wordpress1.选择服务器镜像1.添加管理员用户参考博客2.mysql初始化密码修改网上很多的教程mysql的初始化密码会显示在/var/log/下数据库日志文件,但是通过镜像搞过来系统根本就没有这个密码字段。 正...

2019-06-24 23:02:14 1070

原创 Mac 终端美化

Mac 终端美化1.修改终端$的前缀打开终端前缀的配置文件(sub为sublime的快捷方式 见下)注释掉原来的PS1(\h 主机名 \u用户名) 添加新的PS1 如上面的格式 其余不用修改 重启终端就可以了。 上次看一个老兄的博客 直接将PS1 搞成了表情包…在这里推荐使用sublime打开这一类的配置文件 对于不熟悉vim的人来说比较好。ln /Applications/Sub...

2019-06-13 17:58:07 1528

转载 React资源地址 转载

1.react pdf百度云下载地址集合https://blog.csdn.net/myvanguard/article/details/838196812.js、Es github教程地址https://github.com/mqyqingfeng/Blog3.react学习github教程地址https://github.com/reactnativecn/react-native-...

2019-06-11 17:37:43 258

原创 Django环境配置

安装配置django环境,运行环境1.在终端执行如下的命令pip install django在这里我特意推荐大家安装 miniconda这个插件,一是包管理方便 二是自带python执行环境 三是方便其他的IDE使用(sublime的miniconda插件配置,Pycharm使用)python -m django version 查看django的版本2.建立工程移动到工程目...

2019-06-03 21:01:23 2528

原创 那些年Cursor上遇到的坑

Android Cursor 使用用法Android数据库查询的话我还是比较喜欢SQL的原生语句,感觉用上去比较舒服。既然说是坑,让我来上一个刚才上个坑… String wxid = (String) XposedHelpers.getObjectField(item, "field_content"); ...

2019-05-23 23:19:46 633

原创 Jave文件递归遍历

Jave文件递归遍历1.直接上代码public class Main { static int count = 0; private static void func(File myfile, int[] arr) { if (myfile.isFile()) { System.out.print("计数文件");// ...

2019-05-07 16:43:49 105

原创 C++ GMP常用函数

C++ GMP常用函数explicit mpz_class::mpz_class (const char *s, int base = 0)explicit mpz_class::mpz_class (const string& s, int base = 0)Construct an mpz_class converted from a string using mpz_set...

2019-05-04 23:22:59 8647 1

空空如也

空空如也

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

TA关注的人

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