程思扬
知道的越多,不知道的越多。
展开
-
Android笔记:Android中Fragment改变主题
可以通过自定义样式来调整Fragment的外观。这种方法适用于需要为特定Fragment定制样式的情况。原创 2024-11-02 14:15:15 · 177 阅读 · 1 评论 -
Android笔记:Constructor (xxx) has been changed after generation.
(1)修改表中字段类型后,编译会报措(android greendao Constructor (see XXXX:82) has been changed after generation.),修改后,去掉构造方法上hash即可,如:@Generated(hash=1111111),变为@Generated即可。当你使用某些工具(如注解处理器、代码生成库等)来自动生成代码时,这些工具通常会为生成的代码添加某种标记,以便区分哪些代码是自动生成的,哪些是由开发者手动编写的。原创 2024-07-10 16:31:54 · 288 阅读 · 1 评论 -
Android Studio 错误:Debugger process finished with exit code 127
注: libncurses有多个版本在Linux系统中,libncurses.so.5 和 libtinfo.so.5 是与终端处理相关的动态链接库。libncurses.so.5是ncurses库的一个版本。ncurses是一个程序库,它提供了在类UNIX系统上构建文本用户界面(TUI)的功能。这个库继承自最初的curses库,并添加了新的功能。ncurses库用于在终端中创建窗口、屏幕定位、字符处理以及屏幕刷新等功能。这些功能对于开发如文本界面游戏、终端用户界面和屏幕绘图程序等应用至关重要。原创 2024-06-25 16:15:34 · 327 阅读 · 6 评论 -
如何使用WinSCP将文件和文件夹远程传输到本地内网Linux系统?
Winscp是一个支持SSH(Secure SHell)的可视化SCP(Secure Copy)文件传输软件,它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件。 可视化操作就是直接把文件从本机拖入,打开文件直接双击即可。软件特性支持协议众多:SSH ,FTP、SFTP、FTPS、SCP。友好的图形操作界面,设置可以在选项界面中更改皮肤。与 Windows 完美集成(拖拽, URL, 快捷方式)内置文本编辑器。原创 2024-05-20 16:25:26 · 901 阅读 · 23 评论 -
Android笔记:FragmentPagerAdapter和FragmentStatePagerAdapter
首先翻译一下官方文档的说明,明白这个两个PagerAdapter的官方定义。原创 2024-05-09 15:11:24 · 334 阅读 · 1 评论 -
Linux如何安装1Panel面板结合内网穿透实现远程管理本地服务器?
1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等下面我们介绍在Linux 本地安装1Panel 并结合cpolar 内网穿透工具实现远程访问1Panel 管理界面。原创 2024-05-06 14:42:57 · 1155 阅读 · 26 评论 -
教你如何一分钟搭建适合IT人员的在线开发工具箱
使用上面的Cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到it-tools界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可到公网进行远程访问音乐播放器了!最后,我们使用固定的公网https地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,可以随时随地进行异地访问it-tools工具箱了!,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称。原创 2024-05-16 15:21:28 · 494 阅读 · 39 评论 -
本地如何部署Paperless-Ngx文档管理服务并实现远程管理内网文件
最后,我们使用固定的公网http地址访问,可以看到同样访问成功,这样一个固定且永久不变的公网地址就设置好了,随时随地都可以远程访问本地paperless-ngx服务,无需公网IP,无需云服务器!然后按提示设置用户名,邮箱,密码,本例设置的用户名为jon,具体可以自己设置,然后按提示输入邮箱,和设置用户名对应的密码,设置后回车提示successful表示成功,下面我们进行访问。,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称。原创 2024-05-09 17:32:11 · 1136 阅读 · 27 评论 -
如何使用Docker本地部署Jupyter+Notebook容器并结合内网穿透实现远程访问
如果有长期远程访问Jupyter Notebook的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定二级子域名地址的方式来远程访问。地址保留成功后,复制生成的公网地址,打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们刚才创建的随机公网地址隧道。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。为了方便演示,我们在上边的操作过程中使用了cpolar生成的http公网地址隧道,其公网地址是随机生成的。原创 2024-02-22 14:02:28 · 2096 阅读 · 30 评论 -
Linux系统Docker如何部署Nextcloud结合内网穿透实现公网访问本地资源?
使用Docker容器可以减少安装和配置Nextcloud的时间成本,软件安装配置好之后,再通过内网穿透技术,就可以让互联网上的设备能够访问家中电脑上的部署的Nextcloud服务,轻松远程管理本地存储的资源。,点击左侧的预留,选择保留二级子域名,地区选择China VIP,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称,这里我填写的是mynext,大家也可以自定义喜欢的名称。为了方便演示,我们在上边的操作过程中使用了cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。原创 2024-04-01 14:53:23 · 1876 阅读 · 38 评论 -
一文教你CasaOS玩客云安装内网穿透实现公网访问本地玩客云主机
简单来说,CasaOS是一个集成了Docker功能的轻NAS系统,完全开源免费,它对系统的占用非常低,非常适合玩客云这类的小主机。因为支持Docker,所以安装很多好玩的应用,让它成为智能家居网关、家庭影音中心或是广告拦截器,刷了这个系统,玩客云除了作为下载机外的其他可玩性也变得更多了。而当你在CasaOS的玩客云中使用docker安装网盘整合工具alist后,还能将某里云,某度云等云盘挂载到它上面,再结合cpolar内网穿透,即使你的本地玩客云没外接硬盘,也可以远程访问挂载的网盘中的文件资源。原创 2024-04-18 14:33:23 · 1346 阅读 · 18 评论 -
CentOS7如何使用Docker部署Wiki.Js知识库并实现公网远程访问?
这样我们就在本地使用Docker搭建了一个wiki的知识库系统,但是目前仅限于本地的访问,如果我们想把创作好的文章内容发给身边的朋友查看,或者需要进行异地访问创作等,接下来我们就可以结合cpolar内网穿透将搭建好的知识库发布至公网进行远程访问。使用上面的Cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到Wiki.js界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可发布到公网进行远程访问!切换至首页,创建主页内容。原创 2024-02-29 14:54:05 · 1522 阅读 · 47 评论 -
怎么在Linux系统下Docker部署Excalidraw白板工具并实现无公网IP远程访问?
点击左侧的预留,选择保留二级子域名,地区选择China VIP,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称,这里我填写的是exdraw,大家也可以自定义喜欢的名称。不过我们目前只能在本地连接刚刚使用docker部署的Excalidraw服务,如果身在异地,想要远程访问在本地部署的Excalidraw容器,但又没有公网ip怎么办呢?为了方便演示,我们在上边的操作过程中使用了cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。原创 2024-03-21 14:22:24 · 1049 阅读 · 41 评论 -
【粉丝福利 | 第5期】如何快速掌握数字化运维方法,构建数字化运维体系?
数字化转型已经成为大势所趋,各行各业正朝着数字化方向转型,利用数字化转型方法论和前沿科学技术实现降本、提质、增效,从而提升竞争力。原创 2024-03-27 14:47:46 · 1458 阅读 · 36 评论 -
Linux如何使用Docker部署Swagger+Editor并实现公网远程管理API文档?
使用上面的cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到我们Swagger Editor界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可发布到公网进行远程访问!最后,我们使用固定的公网地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,随时随地都可以远程访问Swagger Editor界面!,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称。原创 2024-04-23 15:28:31 · 1151 阅读 · 32 评论 -
本地如何配置支付宝模拟支付场景并结合内网穿透实现公网环境调试开发?
在沙箱环境调试支付SDK的时候,往往沙箱环境部署在本地,局限性大,在沙箱环境中有多种支付场景,往往是多人联合开发,本地环境可能无法满足异地联合,所以把本地环境变成公网环境下进行调试开发会更好。本次教程,我们将使用支付宝平台提供的沙箱环境,在本地配置测试模拟支付,并做内网穿透,通过cpolar穿透内网,实现在公网环境下的远程访问,无需公网IP,也无需配置路由器。原创 2024-03-04 14:19:29 · 1474 阅读 · 42 评论 -
Windows系统如何使用Docker部署开源协作知识库AFFiNE并实现远程访问?
本文主要介绍如何在Windows系统使用Docker部署开源协作知识库AFFiNE,并结合cpolar内网穿透工具实现公网环境远程访问本地部署的AFFiNE。AFFiNE 是一个全新的开源项目,旨在克服 Notion 和 Miro 在安全和隐私方面的一些局限性。它的设计目标是帮助用户将会议记录、待办事项、文档中的目标、视频会议白板上的头脑风暴以及客户访谈中获得的反馈信息集中到一个统一的平台上。通过AFFiNE,用户可以更好地存储、集成和管理所有工作流程。原创 2024-04-26 15:04:18 · 645 阅读 · 36 评论 -
一文教会你用群晖NAS配置WebDAV服务结合内网穿透实现公网同步Zotero文献库
Træfɪk 是一个云原生的新型的 HTTP 反向代理、负载均衡软件,能轻易的部署微服务。它支持多种后端 (Docker, Swarm, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB, Rest API, file…) , 可以对配置进行自动化、动态的管理.原创 2024-03-28 14:20:18 · 1429 阅读 · 22 评论 -
如何使用群晖NAS中FTP服务开启与使用固定地址远程上传下载本地文件?
然后打开左侧在线隧道列表,查看我们创建的cpolar 公网TCP地址,这里有两种类型的地址,第一个是客户端连接的公网地址,下面三个是数据端口,27089~27091,这个端口范围需要设置到FTP服务端那边(这里需要注意!隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到FTP公网地址已经更新成为了固定FTP地址和端口,同时三个数据端口也变成了固定的数据端口,下面我们进入群晖FTP设置界面修改掉数据端口。然后就是见证奇迹的时刻,可以看到连接成功了,这样一个固定的FTP公网远程地址就设置好了!原创 2024-02-26 14:25:57 · 2120 阅读 · 40 评论 -
如何在Windows系统安装Node.js环境并制作html页面发布公网远程访问?
Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation(原为 Node.js Foundation,已与 JS Foundation 合并)持有和维护,亦为 Linux 基金会的项目。Node.js 采用 Google 开发的 V8 运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模。这些技术通常用于资料密集的即时应用程序。Node.js 大部分基本模块都用 JavaScri原创 2024-03-14 14:20:28 · 1098 阅读 · 32 评论 -
【粉丝福利 | 第3期】由面试题“Redis是否为单线程”引发的思考
⛳️很多人都遇到过这么一道面试题:Redis是单线程还是多线程?这个问题既简单又复杂。说他简单是因为大多数人都知道Redis是单线程,说复杂是因为这个答案其实并不准确。难道Redis不是单线程?我们启动一个Redis实例,验证一下就知道了。原创 2024-02-23 10:04:28 · 1429 阅读 · 33 评论 -
一文教你如何使用sngrep跟踪分析sip信令
如果收到的是关于参加会议的邀请,被叫方可以根据 Call-ID或者会话描述中的标识确定用户已经加入该会议,并返回成功响应消息。sngrep是一个用于分析SIP信令的工具,它可以捕获和解码SIP信令也是一款专业的sip抓包工具,且可以解析tcpdump抓出来的包。F3打开RTP流的信息,展示了当前rtp流的编码,媒体传输数量,双方端口号,若是正在进行的会话。CANCEL 取消尚未完成的呼叫请求,对于已完成的请求(即已收到最终响应的请求)则没有影响。sip协议的消息主体(报文部分)一般使用的是SDP消息格式。原创 2024-04-02 17:16:58 · 1931 阅读 · 9 评论 -
如何在Linux系统Docker本地部署SimpleMindMap并实现远程访问?
使用上面的Cpolar生成的http公网地址,在任意设备的浏览器进行访问,即可成功看到我们本地部署的思维导图工具界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可发布到公网进行远程访问!另外,这个地址在24小时内会发生随机变化,更适合于临时使用。最后,我们使用固定的公网http地址访问,可以看到同样访问成功,这样一个固定且永久不变的公网地址就设置好了,随时随地都可以远程访问本地思维导图工具进行设计,无需公网IP,无需云服务器!原创 2024-03-07 15:25:33 · 1693 阅读 · 31 评论 -
Ubuntu 如何安装 Beyond Compare?
方式一:wget https://www.scootersoftware.com/bcompare-4.3.7.25118_amd64.deb。此时BCompare文件已被破解,打开软件会提示“Trial Mode Error!”表示成功,输入下面TEAM ZWT生成的密钥即可注册成功。Ubuntu20.04如何安装Beyond Compare 4.3.7。这样能用即几天,下方可以后续配置可以设为长期使用。二、安装相关依赖和bcompare。进入beyondcompare目录。后续可以查看保留应用。原创 2024-03-15 16:59:01 · 3507 阅读 · 6 评论 -
Android笔记: mkdirs失败,不生效怎么办
Manifest已经配置权限,代码中也动态获取权限,mkdirs一直返回false,最后找到原因是path的路径使用的是Environment.getExternalStorageDirectory().getPath(),在compileSdkVersion: 29版本中,该方法标注了@Deprecated,里面已经说明,对于Android Q的手机,应用程序不再可以直接访问此方法返回的路径,所以会一直报错open failed: ENOENT (No such file or directory)原创 2024-04-17 16:20:22 · 1027 阅读 · 2 评论 -
Android笔记:监听侧边音量键
请注意,由于安全性和稳定性的原因,你应该在适当的生命周期内注册和注销广播接收器。通常,你会在Activity的onResume()方法中注册,在onPause()或onDestroy()方法中注销。在Android中,侧边音量键是系统级别的按键,用于调整音量。如果你想要在自己的应用程序中监听这些按键事件,你需要使用BroadcastReceiver来注册系统级的音量按键广播。原创 2024-03-16 18:07:29 · 1127 阅读 · 14 评论 -
Android笔记:getLocationInWindow 和 getLocationOnScreen的区别 以及computeVerticalScrollOffset
getLocationOnScreen:计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标。(可以看到上面判断上拉时多减了一个1,是因为计算过程中有些float和int的转换,多减个1是为了保险起见,最多也就是吃掉view一个像素的高度而已)getLocationInWindow ,计算该视图在它所在的widnow的坐标x,y值,//获取在整个窗口内的绝对坐标。当Offset大于0时,可以继续下拉,当Offset等于0时,不可以。原创 2024-01-18 13:09:39 · 748 阅读 · 3 评论 -
Android笔记:SwipeRefreshLayout 自动刷新
有的观察仔细的朋友可能会发现,现在市面上用SwipeRefreshLayout做下拉刷新的,一般加载的时候都是用的自动加载。不像是传统的下拉刷新框架,会有一个明显的上拉动作。RecyclerView.OnScrollListener()有两个重写方法,一个是onScrolled另一个是onScrollStateChanged我们先来分析一下这两个方法。所以要设置两个viewHolder,一个是正常的内容,另一个是滑动到底端时显示的自定义view。dx是水平滑动时的距离,dy是垂直滑动时的距离。原创 2023-12-14 11:32:19 · 643 阅读 · 2 评论 -
Android笔记:震动实现
Android震动可以通过Vibrator类实现原创 2023-11-15 13:12:49 · 974 阅读 · 4 评论 -
Android笔记:(最全)判断Item在RecyclerView中滑动到顶部或底部
同样是在LayoutManager中,可以通过方法findLastVisibleItemPosition()获取到最后一个可见的Item的position,再通过getItemCount()获取到RecyclerView中的Item总数。如果最后一个可见的Item的position加1等于RecyclerView中的Item总数,则说明已经滑动到了底部。如果返回false,表示已经滑动到顶部或底部。方法1: 比较推荐,和你设置的layoutManager无关。原创 2023-11-14 14:01:02 · 1152 阅读 · 4 评论 -
Android 笔记: 字符串截取操作方法
5、indexOf(String str, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。4、indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。//从第7位开始,截取第一次遇到“.”的字符串。//截取 0-最后一次遇到“.”的字符串。//截取 0-第一次遇到“.”的字符串。//截取“mno”之后的字符。原创 2023-11-08 16:20:12 · 778 阅读 · 2 评论 -
Android笔记:(最全)判断网线是否插入方法
在 AndroidManifest.xml中注册广播。大家有补充的可以放在评论区。原创 2023-11-08 14:54:17 · 412 阅读 · 0 评论 -
2020总结,我与思阳
在低沉了一年的2019年年底,我写总结的时候定下了标题:崛起,崛起这两个字代表了我对来年的期待和决心,今年对我来说最大的改变就是和思阳更加熟络,一起沉浸在音乐的美好世界,享受着美食的过程,在电影里探索未知的世界,远离尘世的喧嚣。2020年只写了14篇文章,文章技术的精度并没有随着数量的减少而提升,在我看来都是一些水文,当然有这种想法是个好事,说明我进步了,接下来会有规划,写一些更有深度的技术博客,帮助更多的人,这是我的初心。原创 2020-12-31 14:52:35 · 1022 阅读 · 2 评论 -
Android音视频——OMX 中 Nodeinstance 列表的管理与节点的操作
OMXCodec对具体的component函数的操作,是通过OMXNodelnstance来实现的,如filIBuffer>emptyBuffer>sendCommand等,它们都是通过OMXCore.h中的宏定义间接调用OMX_Component.h的OMX_COMPONENTTYPE中的相应函数指针来完成的。我们又知道AwesomePlayer类中持有OMX客户端,所以这些从OMX组件通知上来的消息就可以到达AwesomePlayer中。在哪里使用kCallbacks呢?......原创 2022-07-31 18:56:54 · 1801 阅读 · 0 评论 -
2022总结,强风吹拂
2022年得到了之前一直想得到的华为云享专家证书,阿里云开发者证书,CSDN博客专家、腾讯,和一些小礼物等,得到后发现我并没有想象中那么开心,现在没什么可分享的,这些一笔带过吧,说实话没什么门槛,只要想得到,加把劲儿就得到如何下笔写这份总结呢,我本身并不是和擅长做计划与总结的人,很多人用摆烂来形容这一年来的经历,我又何尝不是呢,仔细回想下,本人还是比去年有些进步呢(留在后面说),换个角度想,大家摆烂有什么错呢,也许是对当下不满的环境无声的抵抗。开发技术上的自我提升,约等于无吧,老实讲,我不喜欢工作,不是指原创 2023-01-07 11:46:55 · 1437 阅读 · 46 评论 -
去微软是什么感受?
首先感谢《新程序员》走进名企活动!!!不知有多少和我一样二十出头的人对《程序员》杂志有所耳闻,生于2001 年的《程序员》曾陪伴了无数开发者成长,(那一年我才3岁0.0)如今已停刊许久,看一些经验丰富的开发者说在互联网还不发达的时代,就是《程序员》伴他们成长的,如今由近百位专家参与、经数月打磨后,《新程序员》也已经发布,希望对此有兴趣的大家可以多多了解一下,我本人也是对积累了这么多技术大师金和优秀非常感谢《新程序员》这次举办的走进名企线下交流活动,让我能够走进微软亚洲研究院去参观,学习,感受到微.原创 2021-11-25 22:04:50 · 5821 阅读 · 0 评论 -
新手使用Ubuntu安装Jdk
Ubuntu18.04 安装Jdk1.8环境信息:OS:Ubuntu18.04JDK:1.81.去oracle官网下载jdk2.解压将下载到本地的包解压tar -zxvf jdk-8u171-linux-x64.tar.gz3.移动你可以将文件从下载目录我是 挪到/usr/local下sudo mv jdk1.8.0_171 /usr/local/jdk1.84.环境变量方案一:修改全局配置文件,作用于所有用户:vim /etc/profileexport JAVA_HO原创 2021-05-25 18:31:38 · 670 阅读 · 0 评论 -
【内网穿透】教你一文教你使用自己的域名远程访问内网群晖NAS+6.X
描述”栏位可填入方便自己识别的信息。在保留自定义域名后,会生成一个CNAME值(这个CNAME值是下一步域名解析的关键)。取得CNAME值后,我们转回域名平台,在我们所选的域名右侧,找到“解析”按钮。在新页面点击“解析设置”按钮在转入的页面左上方,点击“添加记录”点击“添加记录”后,就正式进入域名解析设置。我们需要填写的,就是“记录类型”、“主机记录”、“记录值”三项。这几项需要填入的内容分别为“记录类型”选择填入“CNAME”;“主机记录”填入“www”;原创 2023-07-28 10:00:00 · 1379 阅读 · 18 评论 -
为什么有时候在子线程更新UI没报错?
抓住十一月的尾巴,分享一首童年回忆: brave heart看到这个标题,好多人第一时间想到的是什么?感兴趣的不妨跟着下面的代码看看会发生什么?首先我在 onCreate 方法里调用 setText() 方法 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mContext = this Log.e(TAG, "onC原创 2021-11-30 19:58:53 · 5852 阅读 · 0 评论 -
2021总结,欲望反光
日历一张张飞过,只剩下12月31日这一天,今天是2021的最后一天了。。。欲望就是一面镜子从中诚实的反射出每一个人内心深处我们最真实的模样原创 2021-12-31 11:14:24 · 1937 阅读 · 14 评论