自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 资源 (1)
  • 问答 (4)
  • 收藏
  • 关注

原创 Intellij IDEA / Android studio 可持续开发笔记

Intellij 的Java/安卓工具链有着一种不可持续性,这种不可持续性体现在多个方面。首先是不可持续运行。IDEA 使用时间越长,内存占用越大,从不主动释放。运行时间越长,日志越多,从不主动清理。然后是不完整的开源,从源码编译时需要下载更多依赖。而研究更多依赖就要消耗更多的精力与资源……

2024-03-30 19:50:55 916

原创 vscode 运行 java 项目之解决“Build failed, do you want to continue”的问题

安装好官方推荐的 java 扩展包后,就可以运行 java 代码了。功能 比 code runner 强,支持 gradle、maven、普通java项目,运行起来和真正的ide差不多,可以调试。需要整个项目编译起来,然后运行。因为vscode界面基于electron,而electron本质上就是chrome浏览器,而浏览器的界面外观都是可以更改的 —— 通过自定义用户脚本、用户样式的形式。与 eclipse 一样,支持部分代码出错的情况下运行其余完好的代码,于是就可以像脚本一样使用java了。

2024-03-15 19:38:31 706 1

原创 chrome扩展中文字符串乱码解决

如果在background,js中直接写中文乱码(console.log 或者界面菜单中),那么可以用 chrome.i18n.getMessage(key) ,如果可以的话,应该是编码问题,实测将文件编码修改为 utf-16 后完美解决。

2023-10-07 19:40:41 967

原创 【浅谈IDE宏指令录制】为加速chrome扩展国际化,我从vscode回归notepad++

安装vscode开源扩展:https://github.com/C10udburst/macros-vscode.git可开启类似于 notetepad 的宏录制与回放功能!可能需要新版本的 vscode 才能安装。如果不想切换,也可以专门下载个 cursor 编辑器,这是 openai 的vscode 分支,还能免费问gpt问题、缺点是,只能录制当前标签页,一切换就停止录制。

2023-10-07 18:51:37 860

原创 AHK c++ 禁用鼠标设备实现完美息屏(不是休眠)

如何实现完美息屏呢?虽然可以用ahk实现息屏,但桌子一晃,鼠标稍微偏移一下,竟然又亮了,导致息屏无效!现在提供一种AHk脚本结合c++代码的方法,实现完美息屏!

2023-09-24 16:37:21 271

原创 让 exoplayer2 支持播放 ftp ( 扩展 exoplayer 支持 ftp 协议 ) 的两种方式

exoplayer 是安卓开源播放器组件库,由谷歌开发维护。它提供了一个可高度扩展的音视频播放框架,支持许多媒体格式与高级媒体功能,比如 adaptive streaming,DRM,以及安卓 media session 集成。但是不支持 ftp ,有两种方式可以扩展 exoplayer 支持 ftp 协议。

2023-08-22 13:31:09 426

原创 ffmpeg 子进程从内存读取文件、提取图片到内存

除了网络、文件io,开启的ffmpeg子进程还支持pipe,可以从stdin读入数据,输出转化后的图像到stdout。无需编译 ffmpeg,直接调用 ffmpeg.exe。可用于服务端生成缩小的预览图,然后发给ftp客户端,传输较快。

2023-08-22 12:36:49 1647

原创 【KBrowser】基于 Kiwi/chromium 制作全新外壳,将 chromium 代码当作 webview 使用,实现可控核替换

chromium 其实只需几步巧妙的架构,就能拿来“换核”,甚至可以插件化,实现类似webview.apk 的效果。重新设计界面,不再是差不多的回声。而 Kiwi 基于 chrome 77 ,只有 50 MB。优势是兼容好、可安装扩展。

2023-07-30 11:37:56 567

原创 codemirror 5前端代码编辑器资料整理。

CodeMirror 是基于js的源代码编辑器组件,它支持javascript等多种高级语言,tampermonkey内置的代码编辑器就是基于它。它的按键组合方式兼容vim,emacs等,调用者还可自定义”自动完成“的列表窗口,自由度极高,相当成熟。但是这个库也是问题多多,很需要深度配置、改良优化。前排提示:由于信息闭塞,所以才研究了 codemirror 5。研究完才发现, codemirror 5官方基本处于弃坑状态 ……

2023-04-21 15:03:30 3386 1

原创 gradle mavenPublish 切换不同源码,根据不同的代码 flavor 生成并发布不同分支的 aar 库

本例定义了两个flavor:normal 、dragsort ,其维度为 "listpopup",意即…… 最后,需要告诉 maven Publish 插件:要用 components 指定打包内容 ……

2023-04-16 19:58:18 309

原创 Idea和Android Studio【插件】全局自动设置代码高亮级别为 Syntax

本文介绍一种使用插件完成类似目的的方法 —— 通过开发idea插件,将默认的 highlighting level 设为 Syntax,如需要重新 inspect all problem,则将鼠标移动至滚动条上方,等待弹出小型设置窗口,将 syntax 下拉菜单改成 all problem 即可(见视频中的操作)。不过这样设置对于已经打开的文件时无效的,不会触发重新分析,无法自动动态设置,只能用作默认值,在新开idea窗口、双击打开代码文件时起作用。网上已有一些全局设置的方法,比如inspect设置中,

2023-04-05 17:58:35 2103

原创 win10 设置侧载默认程序之借尸还魂 —— ahk 命令行转接脚本,ahk成为命令行拨号员

最近发现无法设置explorer的默认打开方式了,原来能设置成某一路径,使用绿色软件或者portable很方便,现在只能从安装好的程序中选择。干掉potplayer.exe,用run.exe替换,将run.exe重命名为potplayer.exe!写一个ahk脚本,功能是,接收命令行参数,并以相同参数启动自己的player.exe。其实可以利用ahk“借尸还魂”之法,将已安装的程序干掉,变成自己的程序。怎么办的,辛辛苦苦开发出来的媒体播放器,上传商店还要交700年费……将shk脚本编译成run.exe。

2023-03-29 22:08:31 418 1

原创 程序员的chatgpt —— cursor 编辑器

回答比较简单(and more),还需查文档:https://learn.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-win32_find_dataa。这个编辑器本身的功能还比较简单,比如无法设置主题色。请对fileArr中的字符串进行自定义排序,当遇到中文字符时,用拼音进行排序。尼玛给的链接根本就是404,hongwenjun却是真有其人,不知怎么的。不用 std::sort ,请对fileArr中的字符串进行自定义排序。

2023-03-28 13:52:54 2746

原创 DirectUI方腾文件管理器一:windows制作一个文件管理器最纯粹的办法

项目地址:https://github.com/KnIfER/FilesTen-Explorer通过这个项目,虽然不能让我的DirectUI分支腾飞,但能让里边的Listview成熟。“最纯粹”,指的是最直接,最简单的方法。比如缩略图通过shellapi获取,不过十几行代码。

2023-03-27 21:59:48 359

原创 Jvm invocation api 调试总论

Jvm invocation api 允许 c++ 程序内嵌虚拟机,运行 Java 代码。这一块的调试还是比较麻烦的。

2023-03-05 15:48:58 427

原创 【无限思维画布】制作思维导图第五步,节点创建与连接,拖拽对齐与双击缩放

正在为无限词典制作单词思维导图功能,实现无限单词导图,无限思维画布。目前制作到第五步,实现节点创建、节点连接、节点拖拽对齐:节点创建与连接,拖拽对齐。

2023-02-27 17:12:18 554 1

原创 【无限思维画布】制作思维导图第三步,节点移动与编辑

正在为无限词典制作单词思维导图功能,实现无限单词导图、无限思维画布。目前制作到第三步 —— 节点移动与编辑。

2023-02-26 20:06:07 506

原创 visual studio 调试增强,实现一行代码打印调用栈

VisualStudio 如何主动打印调用栈?如果不下断点,那么只能在崩溃的时候被动查看。快使用Backward-Cpp,只需在拖入一个头文件,就可以主动打印。但默认无法在 VisualStudio 的 output 窗口看到任何信息,且格式较为零散,下面分享一些强化的方法。

2023-02-01 19:13:05 819

原创 visual studio 必装插件,码c++等必备

分享一些vs插件。必装三件套,虽简单但是没有真的不行,然后用ahk来锦上添花篇 ,最后考察他山之石。

2023-01-27 13:01:08 8787

原创 Jitpack使用指南:maven-publish如虎,jitpack如翼 【安卓Java组件化模块化】【更多gradle技巧】

上文整理了三种多模块开发的方法。我的第一个开源项目就依次用过,如今更是如虎添翼。

2023-01-17 17:07:08 1561

原创 解决安卓刷新recyclerView时导致itemDecoration分栏标题绘制错乱(重叠和隔空现象)

安卓的 itemDecoration 装饰器是个好东西,可以与adapter适配器一样闪耀。但是刷新的时候有可能发生重叠或莫名隔空的BUG。关键是正确获取recyclerView子项视图位置,避免刻舟求剑。

2022-12-17 13:43:56 1272

原创 【脚本资源】巧用 FFMEPG 为Android Studio制作提示音,用音乐舒缓压力

截取前两秒项目构建成功的提示音,是一种开放的感觉,open feeling,心胸开阔,开启无限可能。反转后作为构建失败的提示音,别有旋律,是一种幽然的警报声,紧张中带有诙谐感,开始无限调试。

2022-12-16 15:31:08 476

原创 将“万词王”离线转化为“文络之心“插件之一:复现 wantwords Python/Pytorch 开源项目

本文带你从零探索Wantwords.net,这是个开源的pytorch词典项目。其模型文件也是开放下载的。

2022-12-05 11:49:39 1223

原创 关于 Lucene 搜索语法与分词的浅显研究

上文我用icu分词器实现了简单的中文分词器,却发现不能直接在搜索之时使用,会打断一些lucene搜索语法的分析。比如,使用双引号进行全文搜索,我制作的自定义分词器却出现了冗余内容,反而查找不到任何有效内容……问号无法在双引号内使用。其实双引号之内,空格以及标点符号是被过滤掉的,匹配连续的关键词。

2022-12-04 15:57:36 429

原创 Android Studio / IDEA 调试金手指:live template自动打印方法名以及所有变量

需要用到groovyScript,参考第N篇博客至于学会了……

2022-11-29 17:45:07 814

原创 安卓Accessibility(Talkback无障碍读屏器)适配笔记

视图只要保证这两点,就可以被读屏器点读……有些按钮可能需要根据情况提供不同的读屏内容,建议用委托类实现,不用总是自定义视图。

2022-11-26 22:16:59 1501

原创 JS 繁简转换优化

前已有博客,可优化,以充实转换表、优化查找比对效率。

2022-11-26 14:54:43 599

原创 JS测试出最小支持字体,以及修复PDFJS的文本错误偏移

如果浏览器的文本缩放不是100%,而PDFJS没有检测这一点,导致文本排布发生偏移。PDFJS的文本层有时会有一个错误的整体偏移,导致文本处于错误位置,导致用户选择错误的文本。浏览器还有一个“最小支持字体”的限制,

2022-11-19 13:21:10 1191

原创 终于把下载安装更新的功能整出来了,记录关键点

我的第一个安卓应用终于也有了APP内安装更新的功能(赶上末班车了吗),记录一些关键点,方方面面的。

2022-11-17 20:41:35 577

原创 再战sortablejs

这次重新捡起sortablejs,发现还有许多地方可以优化,甚至可以实现懒加载。sortable.js一共一百多kb。它使用插件式设计,其中MultiDrag……

2022-11-03 13:22:46 1081 3

原创 js用普通DIV模拟A标签

当节点为A标签时(即anchor tag超链接元素),鼠标中键无法在其上触发自动滚动。比如浏览器再带的书签管理器,会在左右设计空白区域,只能在空白区域触发中键滚动,但如果没有这么多空间的话(比如扩展弹出窗口),就需要用DIV标签模拟A标签。

2022-10-31 11:45:17 747

原创 用原生JS实现虚表控件

在HTML/dom环境,纯JS“无限”滚动列表与众不同,和自绘制界面实现的ListView是不一样的,更加需要dom操作的技巧,讲究的要么是“左脚蹬右脚”循环覆盖,要么是滚动一点、增长一点。不过后者严格来说不是虚表,仅仅是懒加载而已。

2022-10-29 07:56:21 423

原创 Aardio 第一天:使用虚表和适配器+试融合Java

挺洋气的名字,乍看神似arduino的重新排序。不过这是一种国人开发的脚本编程语言,自带基于win32 api的界面框架,可以和其他编程语言沟通,比如调用java或者python代码。下载下来6.5MB的压缩包,解压后,打开集成开发环境,它还会远程下载组件,比如粘贴了vlist的示例代码后,点击硕大的运行按钮,会要求安装vlist组件,确认即可。也可以从网上下载 .aardio 文件,自己放到lib文件夹中,作为开源库使用。这对于开源很友好,也可以魔改、借此入门,aardio上层都是开源的。

2022-09-28 15:30:00 2931 1

原创 安卓在任意位置打开drawerLayout

其实可以把 drawerLayout 放到中,这样就可以在任意位置打开侧滑抽屉界面了,不必嵌套在主界面之内。缺点是这样的抽屉关闭后无法再滑动打开,只能通过点击菜单/按钮来打开,不过自从安卓出全面屏手势后,这个缺点也就不算缺点了。

2022-09-20 16:46:16 561

原创 安卓高级编程之实现类似三星系统的设置界面,并用lucene建立搜索系统

安卓的默认设置实现略显杂乱无章,且无法搜索。需要亿点美化与扩展。

2022-09-14 12:22:52 794

原创 Lucene 之又一奇葩设定:lengthNorm 导致文章越长,排名越后

上文中自定义了 WordBreakFilter,可以大幅地改善结果排序,更加精确地命中汉语词组。但最近又发现一个排序上的错误:以`开心`为关键词全文搜索《牛津英语词典》之时,词条“unrip”……

2022-09-10 00:13:19 201

原创 用不到一百行代码为Lucene实现优雅的中文分词

废话不多说直接上代码 WordBreakFilter.java:使用:测试案例代码见上文。原理:在自定义过滤器WordBreakFilter中调用icu4j的BreakIterator进行断词。这是一个萌新试图用乱拳打死smartcn、paoding等老师傅的故事……

2022-09-04 15:44:54 321

原创 古怪的Lucene中文分词方案 —— CJKAnalyzer

Lucene 4.7 的分词器中已经有CJKAnalyzer了,这个分词器支持中文、日文、韩文和朝鲜文。其过滤器CJKBigramFilter,既可以同时输出单字与双字切割,也可以选择只输出双字切割。可见,虽然CJKAnalyzer的分词方法较为简陋,但对于搜搜双字词语还是有帮助的,排序不会像 StandardAnalyzer 那样杂乱。同时输出单字与双字,还可搜索到更多结果。关键词搜索“人民”,使用 StandardAnalyzer 之时,词条“工人居民”居然排在了“人民银行”等词条的前面。

2022-09-03 13:12:32 501

原创 【安卓组件化 maven-publish】编译任意Library库至本地maven仓库,自动部署、分模块开发

本文基于Android Studio操作,借助Gradle插件 —— Maven Publish,实现在构建完安卓库或者纯Java库之后,自动将之部署aar或jar至maven仓库,使其成为一个公共模块,供其他项目引用。首先了解一下其他的多模块开发方法。第一种:在setting.gradle中定义子模块然后 api Project(':...')),直接引用 。第二种,部署至远程服务器,如 jitpack.io(傻瓜式操作,还支持gitee)第一种方法适合小库,优点是改动后可一键构建运行,缺点是

2022-04-06 15:23:13 3517 5

原创 编译Github Desktop

GithubDesktop 是个Electron + react 项目。它使用yarn构建。直接下载源码。… --depth=1 --recursive,一百多MB,与程序本身的体积差不多。然后进入目录,命令行yarn,让它配置各种依赖,完成会展开至八百多MB,也不知道都下载了些啥。需要Python3.9、与visual studio 的c++集成环境。这些之前编译vscode时已经做过了。yarn命令却返回错误,说什么dugite下载过程出错。勘察了一下不是GFW的原因,似乎是dugite的脚本有问

2022-04-05 21:46:06 515

win10 c++ 关闭/启动设备驱动

命令行工具,用于关闭鼠标等设备驱动,需要提供设备id,方法见博客。 调用参数 : DeviceSuppressor.exe disable=USB\VID_123&XXX enable=USB\VID_123&XXX 改进 https://gist.github.com/3735943886/f47c355738e3dd7975fe0aa1abd67445

2023-09-24

Idea插件:全局自动设置代码高亮级别为 Syntax

Idea和Android Studio【插件】全局自动设置代码高亮级别为 Syntax 设置全局 highlighting level 为 Syntax 提升性能,更好地编辑代码! https://blog.csdn.net/sinat_27171121/article/details/129973447

2023-04-05

【条码】【二维码】高性能扫码程序ScanZxing-HP.zip

zxing-demo 纯正精简版。 保留所有功能,添加闪光、曝光的设置位置,支持暂停和快速恢复。 支持三种聚焦模式:连续聚焦、循环聚焦、传感器聚焦。 当屏幕朝向、窗口大小的变化时,可动态调整摄像机分辨率和预览尺寸,无需重建Activity。 已进行性能优化、流程优化,关键部分添加注释。在此demo的基础上开发,相信可秒杀一切二维码扫码Activity。 关于“精简”:原工程一两百行就新建一个Java类,累积近二十个类,平白增加理解难度。 本人根据内部的逻辑关联剔除、归并、整合了全部代码,现只剩6个核心源文件,且最大不超过550行。

2020-07-28

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

TA关注的人

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