自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 编译Library至本地maven仓库,自动部署、分模块开发

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

2022-04-06 15:23:13 2023 3

原创 编译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 186

原创 编译运行与使用安卓文字识别项目

Tesseract 用于从图片中提取文字,准确率不错。https://github.com/adaptech-cz/Tesseract4Android这个项目是直接用Android studio编译c++代码的。模型文件需要自己下载(https://github.com/tesseract-ocr/tessdata),比如英文的模型文件就是https://github.com/tesseract-ocr/tessdata/blob/4.0.0/eng.traineddata,很小,只有二十来兆。下载

2022-03-12 16:24:29 2896

原创 【css】border边框影响布局解决方案,鬼话连篇版本

问题的关键究竟为何? border边框影响布局之问题的发生,到底需要如何解决,这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。 一般来说, 培根曾经提到过,深窥自己的心,而后发觉一切的奇迹在你自己。这不禁令我深思。 曾经看到过过一句富有哲理的话,有时候实践是一种巧妙地避开思考的方法。带着这句话,我们还要更加慎重的审视这个问题: 编程实践中,若border边框影响布局出现了,我们就不得不考虑它出现了的事实。 mark {background: yellow; } mark.current {

2022-03-11 19:04:58 2393 6

原创 Android WebView target=“_blank“ 打开新窗口【正解】

网页可使用target="_blank"打开新窗口,但webview默认是不会通过WebChromeClient中的onCreateWindow方法的,须预先设置:final WebSettings settings = wv.getSettings();settings.setSupportMultipleWindows(true); // 支持多窗口然后在WebChromeClient回调中处理:public boolean onCreateWindow(WebView view, boole

2022-03-09 15:56:43 4559

原创 坚持原生就是胜利

人生苦短,我选择Native与Vanilla.天上地下码术,可敬者甚繁。神林纳斯独爱C。自electron以来,世人甚爱前端。予独爱原生芳草之清香,濯清涟而不妖,中通外直,不蔓不枝,香远益清,亭亭净植,可远观亦可细研也。...

2022-02-27 16:41:32 90

原创 CSS 画一个八卦 fix

https://blog.csdn.net/weixin_30500289/article/details/98463802用作随机转盘也是不错的。<style>body{ height: 100%; margin: 0 auto; } .bg_box{ width: 100px; height: 200px; margin: 200px auto; background-color: white; border-c

2022-02-26 16:55:11 86

原创 【无标题】css3 -- 自动生成序号(不使用JS,可任意排序)

原文地址 https://www.cnblogs.com/hf8051/p/5109184.html,不用看注释,直接理解css代码即可,对于简单的代码来说,注解反而是混淆与捣乱。原文内容,用菜鸟解压工具解压(美化):<!DOCTYPE html><html><head> <style> body {counter-reset:section;} h1 {counter-reset:subsection;}

2022-02-25 19:05:33 429

原创 html给按钮添加tooltip悬浮提示

给dom中的元素加title属性即可。出现的是原生窗口化的提示条。如需要自定义样式,可用js实现,缺点是只能在页面内显示。

2022-02-24 15:32:55 741

原创 android 点击Notification的定义视图后收起通知栏

百度搜`setOnClickPendingIntent 收起通知栏`,结果前排的csdn、博客园文章都是无效的(用了反射)。最终在Stack Overflow上找到了解决方案,记录如下。方法很简单,实际内容只有一行:…

2022-02-10 16:03:18 1755

原创 沽名钓誉的GPL

在我看来,GPL不应是“通用公有协议”的缩写,所谓的通用性、一般性不过是个笑话,看看我们国家墙内墙外的沽名钓誉之辈吧,写点代码,就贴上GPL,表面上说是给大家用,实际上呢,却是不允许你直接拿去做产品赚钱。就这?还通用?还一般性?公开倒是真的,态度确实很假。打个不太恰当的比方,就是某人声称研制了比杂家水稻还牛的作物种子,但是放弃专利,将培育方法上传到github,声称将此以GPL协议开源给全人类,为全人类谋福祉,但是却不允许任何人直接吃由此种种子、或子代种子种出来的米饭,要吃的话,必须经由他书面批准才行。这算

2022-01-28 17:33:37 208

原创 “没有梦想,何必远方”

不能赚钱,何必开发?也许,别人随便建一个色情群都比你赚钱,还是副业。这个世界就是这样,只有灵活善变的人才能很好地适应。

2022-01-25 11:56:32 84

原创 安卓现状:前后夹击的烂摊子

前有谷歌不间断出品糟糕的设计,后有黑客相继降低破解的门栏,安卓的现状可谓是一个烂摊子。糟糕的设计:碎成渣滓的存储API、shabi保活机制等等低破解门栏:继Xposed等技术之后出现的各种Virtual***,使得用户无需root就可以安装、使用破解的APK。上帝啊,请再来一次洪水吧!...

2022-01-20 17:01:43 1418

原创 华为后台保活

首先明确一个问题——保的什么活?活就是活性,主要有两点:一、APP的虚拟机进程不被杀死。二、可以执行代码。需求就是就么简单。一个是进程活性,另一个是代码活性。失去进程活性,APP名存实亡,只存在一点点内存缓存,比直接划掉好一点点。失去代码活性,APP丢失权柄,令不出九宫,实际上是被休眠了。保活手段有三。一、系统设置>>应用启动管理,勾选允许后台启动。二、申请电池优化白名单(inent启动Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)

2022-01-19 19:47:54 538

原创 indexeddb很坑

浏览器会自动清理indexeddb的。不同浏览器,清理的时机不同。大多数情况下,浏览器都声称会在磁盘写满时,清理掉你那可怜的一点点大小(也许只有几百kb)的数据库,而继续保持浏览器本身庞大的内存占用。然而事实上,只要你数据磁盘容量只有几百兆的时候,就应该小心了,浏览器会随时进行自动清理。...

2022-01-19 19:13:43 953

原创 css样式calc根据其他属性设置样式值。

css的cacl可以让渲染器动态计算出某一属性值,如calc(100% - 80px),注意减号两边要有空格。但是,这样的calc却无法依据元素的其他属性值计算某一属性值,比如伪代码width:calc(100% - left)是不成立的。如果一定要这么做,也是有迂回的解决方案,不过不能纯靠css了,要在left属性发生变化时,调用js,将left属性复制到以双横线起始的css变量中:cssdiv{--x:80px;left:80px;width:calc(100% - var(--x));}

2022-01-18 16:26:38 257

原创 自定义Visual Studio Code样式终极解决方案

vscode 编辑器本身的主题可以改,但是条目太多,我要说的不是这个。vscode基于浏览器技术,所以可以注入自定义的css。插件:https://marketplace.visualstudio.com/items?itemName=be5invis.vscode-custom-css插件有问题,无法实时更新,每次修改后需要重启vscode。修改方式:配合chrome与github1s。...

2022-01-14 23:15:24 459

原创 【安卓之巅】如何混淆Activity等四大组件(非标题党非自动生成)

如果把默认打包好的release.apk拖入android studio,双击打开dex文件,可以看到里面的Activity、View、布局等等全部都有是原来取的名字,感觉底裤都不剩了,怎么办?公开的有以下两种方案:一、使用第三方加固服务缺点:1.性能贼低,包括启动慢和运行慢。启动慢大多是冷启动慢,最多也就多出1~2秒的样子,可以接受。但在有的设备上,加固后的Java层代码可有十倍性能损失(测试出来的数据,是真的十倍!),需在Java层开多线程、多任务的慎重使用。2.不开源,产品不受开发者本人控制,对于

2021-12-22 20:19:26 1741

原创 Java创建zip压缩文件(不依赖第三方库)

话不多说,直接上代码:package com.knziha.myapplication;import org.junit.Test;import java.io.*;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;public class File2Zip { @Test public void test() { String rootPath = "C:\\Users\\Ad

2021-12-22 19:25:19 507 1

原创 Windows 使用技巧

借助各种小巧的工具或技巧,使用windows操作系统的体验能有显著提升。最好的 Windows,你值得拥有。第二篇 v1.6 - v1.8 第一篇免费OCR解决方案在线OCRacrobat 文字识别功能TIM 提取图片文本多窗口、多标签页(已弃用)WindowsTabs.设置任意windows程序的多标签页使用[QTTabbar 为系统资源管理器开启多标签页的插件](http://qttabbar.wikidot.com/)[如何将任意快捷方式固定在 Win10 的开始屏幕中?](https://www

2021-12-10 15:39:05 307

原创 解决 Android 开启混淆后 Crash 信息行号对不上 (一)完整流程

前言在 Gradle 插件版本达到 3.4.0 及以上,默认会开启 R8 进行代码优化,以往我们都是使用 SDK 自带的 proguardgui.bat 来还原堆栈信息,但在开启了 R8 混淆后这个方法就失效了,原因是 R8 内部会做各种代码优化诸如内联操作等,并实施行号映射,这时候在堆栈信息中抛出的行号就完全不是真实的崩溃位置了…如何解决?先来看下 release 版开启混淆后所抛出的异常信息可以看到,我们实际是在第 45 行抛出一个 NullPointerException 的,但 Logc

2021-12-08 03:41:22 1912

原创 【JAVA】MANIFEST.MF / CERT.SF 中 文件SHA1-Digest计算方法

前言: 给旧手机刷机,rom.zip 直接解压魔改,完后再压缩为zip刷入手机。其间遇到了 MANIFEST.MF / CERT.SF 这两个文件,看看是怎么回事吧。MANIFEST.MFManifest-Version: 1.0Created-By: 1.0 (Android SignApk)...Name: system/app/webview/webview.apkSHA1-Digest: zjehQbk00n2eu+YoBb1LZdieREo=CERT.SFName: syst.

2021-12-06 16:25:44 609 3

原创 彻底改掉搜狗搜索、CSDN页面上悬浮标题栏的滚动BUG

  都说前端上限高于天,奈何做出特效卡成翔。这不,Sogou搜索与CSDN的前端“门面”上,一个大BUG赫然显示于诸君面前,滚动的时候,页面的Y轴偏移不是连续变化的,而是在顶部硬生生地跳过了一段距离,造成页面上下横条的BUG,严重影响用户体验。  什么,你觉得这样的BUG很小,甚至根本算不上什么?我的天哪,每次打开首页、每次浏览正文、每次搜索、每次翻页,此BUG都会往你脸上呼,如此大胆而嚣张的BUG,哪里还小了?禁用搜狗搜素的悬浮搜索栏.headsearch{ position: unset!

2021-12-01 19:15:37 381

原创 【Java】10进制与62进制互相转换

  稍稍参(复)考(制)了 《10进制与62进制互相转换_Heartsuit的博客》之后,我将两个方法改写成Java,惊讶于Java与C#语法、接口之近似,基本上改改API名称的首字母大小写就能兼容。kotlin那种六亲不认的语法还是丢给小朋友玩吧。  可以将Long转换为String,支持的数字范围是Long.MIN_VALUE~Long.MAX_VALUE,支持负数。不过生成的字符串是小端版本:2147483647 ==> “1bcKL2”9223372036854775807 ==&gt

2021-12-01 18:17:45 413

原创 visual studio native c++单元测试及输出

单元测试项目,可通过引导对话框创建,在创建常规项目的对话框中,搜索Test,一分钟后,会出现搜索结果,选中其中的 native test,创建单元测试项目。创建完成后,自动生成模板代码,照着写即可。默认的代码生成方式为动态生成,可切换。可以像常规项目那样引入各种静态库、设置临时文件目录以及输出目录等,最终生成的是一个dll文件,不能直接运行,需要在单元测试列表中运行,或者可以右击代码->run tests。不要在链接器的设置页面修改输出目录,否则,如果link输出目录与项目输出目录不匹配,运行单

2021-10-05 13:06:45 149

原创 关于 C++ 头文件二三事

头文件不直接参与编译,而是与cpp文件一同编译。用别人的话来说,类似于复制粘贴。预编译头文件可以加快编译速度。在visual studio中,通常是设置stdafx.h为预编译头文件,stdafx.cpp创建预编译头文件,其他cpp源代码则使用预编译头文件。使用预编译头文件的cpp必须第一个引入stdafx.h。头文件中可以用 __declspec(selectany) 声明全局变量,类似于cpp中的static。可跨越静态库,不跨越动态库。visual studio引入头文件时,可以..

2021-10-05 08:12:39 83

原创 win32 文件模糊搜索接口(通配符表达式详解)

主要有两个,FindFirstFile 与 PathMatchSpec,前者用于搜索文件系统,后者用于检查路径字符串是否与表达式相匹。https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmdhttps://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-findfirstfilea WIN32_F

2021-10-05 07:47:24 210

原创 最新DirectUI技术:RichEdit自适应大小。

可喜可贺,新一代的RichEdit控件已经支持自适应大小,同时支持定义最大尺寸。RichEdit控件基于win32的textservice api,原生即是无窗口控件。技术细节详见《Windowless Rich Edit Controls》 。

2021-10-03 09:29:57 52 1

原创 测试SetCursor这一win32 api的效率

directui ,移动鼠标时,每一空间都会设置鼠标指针,设置的代码为:::SetCursor(::LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW)));有点出乎预料。注册窗体类时,给窗体设置一默认值,多半就是IDC_ARROW,这种情况下,应该只在必要情况下,才去更改指针图标。那么,SetCursor… 方法比之SendMessage,DefWndProc如何呢? LONG tm = GetTickCount();

2021-10-02 15:03:21 137

转载 编译Skia:结合云端Github Actions与本地Visual Studio

用 Github Actions 云编译JetBrains替Skia项目手工制作了Java和Kotlin绑定,拓展了Java - Graphics2d的绘图功能。他们顺便公开了用于自动构建Skia的仓库[1],基于Github Actions。维护需编写 build.yml[2] 与一些简短的 python 脚本。Fork 一份后,可以修改参数然后部署自动化[3]构建。查看原项目Log可知,构建总耗时52分钟,构建目标包括了mac,安卓,linux ,windows这些平台。修改分支代码,只需构建w

2021-09-03 20:19:29 110

原创 Skia最新“编译”,绘制中文字符串,加载PNG、BMP图片等资料的整理。

“编译”Skia国内不适合自己编译。Github 有不止一个自动构建的SKIA二进制build,涵盖多个操作系统,直接取而用之即可。推荐大名鼎鼎的JetBrains维护的仓库,地址是 https://github.com/JetBrains/skia-build。主要是静态库与头文件。最新release的静态库解压出来180MB,与LIBCEF一样。debug解压出来一两个G。推荐直接用release版本的。绘制中文字符串直接用Skia的SkString就可以,无需多次转换。如果显示方框,那说明字体

2021-08-09 15:38:55 554

原创 Duilin 设计器,争取媲美安卓IDEA,让MFC时代变了去吧,2021了谁还拖控件啊!

目前只做了两天,完成左右分栏、实时预览的效果。支持预览360 demo、富表demo、游戏登录demo、qq demo这些原duilib展示程序的皮肤,支持预览控件的悬浮特效、点击特效。在左侧编辑框修改时,右侧预览框可以做到实时更新,视频效果如下:https://www.zhihu.com/zvideo/1405944791352397824https://github.com/netease-im/NIM_Duilib_Framework/discussions/349说是做了两天,其

2021-08-06 08:03:44 85

原创 为支持增量编译的Java注解启用Trees API(解决IncrementalProcessingEnvironment 不能 cast为 JavacProcessingEnvironmen)

首先,简述一下让Java的自定义注解支持增量编译的步骤:在注解模块的模块\src\main\resources\META-INF\gradle\incremental.annotation.processors文件中填写:包名.注解处理器1名称,isolating包名.注解处理器2名称,isolating是不是与在 META-INF\serveices\javax.annotation.processing.Processor文件中声明注解处理器很像呢?只不过后面多了,isolating,或者,

2021-07-22 17:26:56 283 2

原创 如何更精细地调整安卓系统的音量级别?

原生安卓系统只能调出15级音量,而市面上很多已上传的音量APP也只能调整这15级音量,这样的调整方式,级别粗糙,不够贴心。可以用全局均衡器来进一步微调音量,相当于为15个音量级别的每一级额外增加数千个微调等级。构造全局均衡器(应用于系统级别)与构造一般均衡器(APP内部有效)一样,无需 context,却别全局均衡器是传入的 session id 为零:mEqualizer = new Equalizer(999, 0);全局均衡器被一部分官方标注为不推荐,甚至废弃,但没有替代方案,也未被彻底舍弃

2021-06-27 15:03:20 2731

原创 如何让安卓的进度条在被触摸后立即开始调整数值?

默认的seekbar,在触摸开始后,不会立即调整数值。只有在触摸停止,或者滑动一段距离后,才会有视觉上的进度变化,这样的进度条,反应太慢,不够灵敏。解决方案:在触摸开始后,手动调用调整进度。sysVolSeek.setOnTouchListener((v, event) -> { if (event.getActionMasked()==MotionEvent.ACTION_DOWN) { try { Method mm = AbsSeekBar.class.getDecl

2021-06-27 10:25:26 49

原创 仿Via浏览器在长按位置显示置功能菜单栏

首先先感谢Andy提供的原始代码 仿微信消息根据长按位置显示置顶删除功能菜单栏,省去了不少麻烦,不必面对枯燥的文档。首先感谢 popfisher 提供了一些思路 Android PopupWindow怎么合理控制弹出位置(showAtLocation)诶,人类的本质果然是复读机,就连本文也是使用Chrome扩展:“一键复制与自动滚动”,复制了原文的一些[标题](地址)与 Markdown 源码。有需要的可以前往Edge的扩展市场下载。……VIA浏览器的长按菜单栏更像是桌面应用的右键菜单。仔细观察,发

2021-05-20 21:07:10 331 1

原创 NotePad++使用、魔改笔记

NotePad++使用笔记++++++++++++++好用的工作区文档列表面板功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入++++++++++++++相信许多都是从NotePad++开始编写代码的。好用的工作区文档列表面

2020-08-22 15:02:51 1276 1

原创 FFmpeg+Python打造命令行工具箱

目录总操作模式的设计  一次可以处理多个文件。  一个例子  多文件处理的技巧  参数设计工具一、Gif 转换器  方法来源  效果参考  代码以及使用:工具二、画面裁切(crop)总操作模式的设计瀑布式级联操作,用一个while循环不断读取用户输入,处理完后还可以继续处理。  一次可以处理多个文件。将文件拖拽到命令行,按两次回车即可。第一次

2020-07-22 19:16:35 1204

原创 又一 Java 注解(annotation)用例

之前提过Multiline注解,可以在低版本的Java语言中通过注释与注解优雅地实现多行文本的定义。将Multiline-String拓展为Multiline-Byte Array后,意犹未尽,于是开了个空工程(纯Java无groovy、maven管理)测试annotation。但是……怎么都不对,注解不生效,都没调用!明明,资源文件中meta-inf信息填好,处理器挂钩,但是写好的注解毛都没处理。一开始以为是idea的问题,换了Eclipse,也还是不行……索性放弃另起炉灶的想法。干脆再次拓展Multi

2020-07-11 11:03:22 210

原创 Sortablejs + css 模仿安卓桌面,实现可拖拽排序的主页图标+文件夹收纳

Sortablejs 已有功能可以参考官方demo (http://sortablejs.github.io/Sortable/#grid),这里简要说一下,Sortablejs 已经实现了:拖拽动画、多选、跨容器拖拽、网格、等等,详细的可以在主页(https://github.com/SortableJS/Sortable)的参数列表中查看,里边还有各种回调,不过用不到呵呵,我选择直接改 Sortable.js其中网格通过将item项的样式改为 display:inline-grid 实现。原本demo

2020-07-03 21:11:46 1014 2

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