- 博客(76)
- 收藏
- 关注
原创 【Android Compose】焦点管理
调用 captureFocus() 方法,并且之后必须要用 freeFocus() 方法将其释放。因为有些布局或组件默认会带有遍历默认顺序,比如 Column 的孩子的默认遍历顺序是从上到下。上面说了可以手动添加焦点引用对象。添加这个请求对象之后,可以使用焦点请求对象手动请求焦点…// 但是我还想让它在输入长度达到 3 之后突出视觉效果,可以尝试捕获焦点…什么是退出:退出可组合区域,比如说焦点离开Colum1,进入Column2。// 比如下面的示例中,首先 TextField 已经获取焦点,
2025-04-26 22:23:04
497
原创 【Android开发技巧】区域注释(Region Comments):随意折叠代码区域
在Android开发中,如果你想在Java或Kotlin文件中编写一个可以折叠的代码块,并且可以自定义标题,可以通过区域注释(RegionComments)来实现。这种方式在IntelliJIDEA和AndroidStudio中被广泛支持。
2025-01-20 15:47:05
240
原创 【uni-app】安卓本地离线打包
2、生成方法一:使用AndroidStudio自带的构建工具创建(本方法比下一种方法更麻烦一点点,所以此处不做过多解释,其实说就是在build中构建)1、首先要明白,Android打包是需要一个签名文件的(本质上就是一个文件),所以如果第一次,我们需要先使用工具生成这个文件。(1)找到和自己HBuilderX版本号对应的下载包下载、解压,然后找到这个。(2)36500(天) 表示这个文件生效时间,表示100年内可用,需要自定义。在data目录下的这个文件中,改成自己的新加的资源包名(也就是AppID)
2025-01-16 18:17:33
1097
1
原创 【Android Compose原创组件】可拖动滚动条的完美实现
我在使用安卓Compose开发自己的【JK管理器】的过程中,很多地方都需要使用滚动条,在Github上也有实现的比较好,但是大多都是基于View(我要的是Compose啊)。在研究Android 官方示例项目中,它里面有一个 Scrollbar 组件,完成度还是比较高(但是还是传统的滚动条),如果想实现固定长度的滚动条,还需要自己实现或者修改。所以以下代码是我参考 NowInAndroid 项目的 Scrollbar 组件修改增强的一个滚动条组件(大部分内容已经魔改)。
2024-11-16 12:46:53
921
5
原创 【Android compose原创组件】在Compose里面实现内容不满一屏也可以触发边界阻尼效果的一种可用方法
在安卓 View 传统命令式开发里面提供了非常多稳定美观体验好的组件,但是目前Compose还未有可用的组件,比如View中可以使用 coordinatorlayout 的滚动效果可以实现局部(即使内容不满一屏也可以触发滚动边界阻尼效果),为了最小成本实现相同的效果,我们可以利用Column的滚动边界为基础间接实现类似效果。
2024-11-16 11:27:24
512
原创 Openlayers10.2.1最新版在安卓Compose中使用的一个例子
这是一个中小公司的面试题:Openlayers 是一个功能完善的地图引擎,能在WEB页面上显示瓦片地图或者矢量地图,官方网址是https://openlayers.org/。1、尝试做一个安卓App,使用Openlayers显示高德或者百度在线地图,能实现基本的平移、缩放、旋转功能。2、App原生界面上有两个输入框,一个输入平行线的数量,默认是10条,另一个输入平行线的间距,默认是10米。3、用户可以在地图上点击设置起点A和终点B,然后把A和B用直线连接显示出来。
2024-11-08 11:54:25
1745
原创 【Android常见开发模式】
Model(模型):负责数据和业务逻辑的处理。View(视图):负责显示数据(用户界面)和接收用户操作。Controller(控制器):充当模型和视图之间的中介,控制用户输入并调用模型和视图进行更新。Model:同MVC,负责数据处理和业务逻辑。View:定义界面元素以及它们之间的交互,但不包含业务逻辑。Presenter:充当View和Model之间的桥梁,处理业务逻辑并更新View。安卓主推Model:负责数据管理和业务逻辑。View:定义用户界面,不包含业务逻辑。
2024-10-20 14:33:12
1196
原创 【gradle开发插件】————官网翻译,版本8.10.1
插件可以来自 Gradle 或 Gradle 社区。但是,当用户想要组织他们的构建逻辑或需要现有插件未提供的特定构建功能时,他们可以开发自己的插件。因此,我们区分三种不同类型的插件:1)核心插件- 来自 Gradle 的插件。术语核心插件是指 Gradle 发行版的一部分插件,例如Java 库插件。它们始终可用。2)社区插件- 来自Gradle 插件门户或公共存储库的插件。术语社区插件是指发布到 Gradle 插件门户(或其他公共存储库)的插件,例如Spotless 插件。3)本地或。
2024-09-20 06:42:36
1621
原创 【Flutter 自定义字体】等宽字体等
textStyle = GoogleFonts.jetBrainsMono(// 使用 google_fonts 提供的字体// 可选fontFamily: 'monospace',// 也可以使用系统提供的等宽字体),但是它本质是提供网络去 下载的,所以以 Android studio 的网络能力,可能下不了(国内),所以往往就需要我们自己去下载配置…
2024-08-06 00:06:41
792
原创 【Android】Apk图标的提取、相同目录下相同包名提取的不同图标apk但是提取结果相同的bug解决
这应该是 Android SDK 自己写 loadIcon 代码的时候也没考虑过的使用情况。可能是包名作为类似 Key 之类的,然后通过包名找到源路径,然后通过源路径获取图标。所以如果获取一次之后,只设置源路径而不修改包名,那么获取的将是旧的源路径对应的图标。然后设置上面两个属性之后,如果设置图标之后,相同包名,但是图标不相同的,就会导致。,也就是说,包名相同图标不同,但是获取到的图标竟然都相同!初步分析,原因应该出现在包名、两个源路径身上。为了解决这个问题,以下是我改良之后的。后续获取的图标都相同。
2024-05-11 21:02:39
1244
原创 【Android Studio】的矢量绘图【pathData】详解
注意:很多人都以为这是画直线的,确实有画直线的功能,但是仅仅靠它却不能实现画直线。也就是说,画直线其实是先画矩形,然后再往矩形里面填充颜色,直线的粗细由矩形的宽决定。这里需要注意的是,小写的L(l)和数字1非常像,所以一定要区分,一般数字1的左上角都是45°的尖角,而字母l最多是平角。最后一个注意点:关于颜色填充的问题,一般而言,都是往一个封闭的图形中填充的。最后一个坐标是指移动起始坐标,也就是开始画的坐标。A/a(坐标1)——0/旋转角度——0/1—— 0/1 ——(1,0)大写绝对,小写相对。
2024-03-06 01:16:19
1885
原创 【Flutter/Android】新建项目,打开android 目录,报错红色以及开启 MultiDex 配置
单独打开 Flutter 项目下的 android 项目即可。也就是说,你要一部分原生代码开发,你就需要自己把 android 项目单独出去做(其实就相当于android 项目引用 Flutter的dart部分)。也就是说,在 Flutter 项目里打开 android 目录是没啥意义的,你要配置 安卓端,就自己单独打开 android 目录。所以爆红是很正常的(只要不报错)
2024-02-27 00:03:35
1709
原创 【Flutter/Android】运行到安卓手机上一直卡在 Running Gradle task ‘assembleDebug‘... 的终极解决办法
Gradle 是安卓的构建工具,必须要先下载对应版本才能使用。而新手遇到的最大问题其实就是Android Studio 里面下载实在太慢了!!!而且非常容易下载不成功,导致Flutter项目无法运行到手机上(运行到浏览器web是没问题的)。所以本方法是手动下载到本地计算机磁盘上,然后,让 Android Studio 从磁盘上下载(相当于本地服务器)。一方面你自己下载的速度快的离谱,另一方面 Android Studio 从本地磁盘上下载也快的离谱。两者一结合,快到起飞!
2024-02-25 05:26:17
2870
原创 【Android-Compose】Material3 新版下拉刷新 PullRefresh
与其使用提供的可组合 PullRefreshIndicator,您可以创建您自己的旧的如前所述,您也可以提供自己的自定义指示器内容。我们会为指示器内容槽提供一个 SwipeRefreshState,其中包含对刷新手势做出反应所需的信息。
2024-02-05 22:52:51
3405
原创 【Android-Compose】手势检测实现按下、单击、双击、长按事件,以及避免频繁单击事件的简单方法
安卓compose、手势检测实现单击双击、按下、长按,以及规避频繁单击事件
2024-02-04 01:47:35
1240
原创 【Android Studio 启动出错】
Android Studio版本:2022.3.1出错前操作:大概意思就是:Java异常——地址已经被使用:绑定。然后指向一个jbr目录。估计是昨晚没关项目就直接关机,导致某些数据无法恢复。以后还是习惯先关项目再关机啊。
2024-01-30 15:48:18
956
原创 【uniapp-bug】clientDB的错误提示: SYS_ERR request:fail at common/appInit.js:43 08:49:24.630 Error: request
估计是系统代理的原因。
2023-04-15 09:12:44
369
原创 【uniapp-临时联表查询】SYNTAX_ERROR, 未找到主表与副表之间的关联关系,注意使用临时表联表查询时只会使用过滤后的字段进行联表
联表查询时,必须前后呼应。另外,要改改显示字段:(schema2code生成代码,要记得所有有关的页面都要去改改。
2023-03-23 11:46:56
1402
原创 【uniapp-Android离线打包错误】打包时未添加push、oauth模块...
尤其是下面的push声明。官网上放在了一个不起眼的位置,导致有些同学看不见。
2023-02-23 10:25:55
2810
1
原创 【PS】PS扣印章|改颜色方法
最后导入word或者文档,自己对着原来的A4纸上的大小和电脑上纸张大小(我的电脑纸张大小为138%-140%的时候,和现实中的A4纸一样大小)进行调整即可。按住Alt键,鼠标放大,自己涂细节,这个过程要是有耐心,可以涂细致一点。最后记得把其他图层隐藏掉,保存成png。魔棒工具,目的就是为了选中我们想要的部分。
2023-02-22 12:44:06
12470
原创 【Android玩机】跟大家聊聊面具Magisk的使用(安装、隐藏)
白名单的意思:除了被特地允许的几个可以不遵守,其他所有应用都遵守该规则,也就是说,所有安装的任何应用都不会检测到面具和Root,除非你亲自特别的进行允许。好处很明显:只有你允许的几个应用可以检测申请和使用root,其他应用都检测不到,也就无法使用root,所以这是一种比较彻底的隐藏方式,非常推荐小白使用!由于这种机制,所以你在授权root的时候,需要关闭Shamiko模块,重启让你的应用能检测到root,授权后再勾选shamiko模块,重启生效。好处很明显:修改方便,只需要配置排除列表即可,不需要重启。
2023-02-22 11:26:01
47492
2
原创 【AndroidStudio】org.gradle.api.plugins.UnknownPluginException: Plugin [id: ‘com.android.application‘
Android Studio 构建项目时出错,Gradle构建失败。。。
2023-02-02 09:03:03
11186
原创 【安卓逆向】如何简单快速去除云注入(另附MT论坛某佬的方法对比)
1 需求因为最近使用的虚拟机突然不能用了,被人云注入强制弹窗,如下图:(这一看就是云注入了)2 大佬的方法如图(MT大佬分享的,感兴趣的朋友可以去大佬主页看看他其他文章):3 总结大佬方法的核心步骤(1)获取Application类路径这是第一步,也是非常关键的一步。根据大佬的描述,我们可以用两种方法去获取(因为它本身是加密的)1 通过MT的注入日志log来打印出来。此方法我没试成功,应该是因为我不会注入日志导致的。所以此方法我不做进一步探讨。2 通过分析smali代码,找到云注入的代
2022-11-29 11:16:07
17291
12
原创 【安卓手机】如何解决wifi被拉黑,连不上WiFi
需求分析当事人小明,受害者小红。小明他经常使用邻居家小红的wifi打游戏,时不时还下载一些大文件。某一天小红发现自己家的wifi突然变得很慢,于是小红在浏览器中输入192.168.1.1进去自己家的wifi后台管理中查看,发现了有一个陌生的设备正在连接她家的路由器。这她能忍?直接在后台把小明的设备限速/拉黑。然后小明突然断网了,然后发现自己怎么都连不上小红家的wifi了。于是小明找我求助,希望我能帮他不动声色的给这个问题解决了。问题分析其实手机上有一个东西叫做WLAN MAC地址,而小红同学
2022-10-21 21:18:43
8705
原创 【Ubuntu-大数据】spark安装配置
然后按下退出键ESC,然后是shift+冒号健输入一个英文冒号,他就会在最下面生成一个冒号。(4)赋予该文件相关权限(lpp2是你的hadoop名字,可以在设置的【用户】中查看)(8)直接使用它bin下面的这个命令来运行试试:(运行它自带的实例,检查是否安装成功)(1)解压压缩包到之前Hadoop安装的目录:本地计算机-usr-local。这里采用3台机器(节点)作为实例来演示如何搭建Spark集群,细心的你会发现,其实就是加了一个hadoop的路径,按i进入插入模式,插入完成,
2022-10-05 18:14:59
2952
原创 【Linux-Ubuntu】apt-get update软件更新的时候经常出错
然后选择手动替换,或者命令替换,一般你直接复制原来的.list文件,保存到别的地方一份即可。将电脑连接的WIFI改成手机热点连接。全选、覆盖粘贴、保存即可。
2022-10-05 16:04:06
4347
原创 【Ubuntu+大数据】Linux中大数据开发(Hadoop、MySQL、Idea、jdk、Hive)
提示:在虚拟机里其实不建议一个虚拟机设置第二个用户来进行大数据开发,因为如果系统一崩,其他用户也用不了了,所以还是建议自己新开一个系统来独立进行大数据开发。#将所有数据库的所有表的所有权限赋给hive用户,后面的hive是配置hive-site.xml中配置的连接密码。用户之间是相互独立的,就像不同的分身系统一样,创建新用户方便我们独立进行开发工作。(1)、首先当然是百度idea,然后进入官网,下载社区版(这就不用我多说了吧)然后重启虚拟机,选择我们的新创建的用户,进入新用户(就像一个新的系统一样)
2022-10-05 15:47:20
2323
原创 【安卓逆向】cannot connect to daemon at tcp:5037: cannot connect to 127.0.0.1:5037: 由于目标计算机积极拒绝,无法连接。 (100
cannot connect to daemon at tcp:5037: cannot connect to 127.0.0.1:5037: 由于目标计算机积极拒绝,无法连接。 (10061)
2022-10-02 14:35:51
6737
原创 【安卓逆向】ida进行.so文件反编译分析时,导入jni.h文件导致的错误解决办法
ida导入jni.h文件是报错:jni.h,39: Can't open include file 'stdio.h'等
2022-09-22 20:00:08
2894
1
原创 【微信小程序】wx.cloud.uploadFile上传云存储失败 报-503002
报错内容:报错提示是:权限莫得。然而我的原因是:wx.cloud.init();//这样写就报错解决办法:wx.cloud.init({ env: 'ev***9-2*****o**ka****9'})//指定初始化环境,上传成功!
2022-05-23 15:32:01
1211
原创 【wx小程序】扩展组件recycle-view的使用
一、components文件夹中,加入对应的组件包二、页面配置1、json:“usingComponents”: {}"recycle-view": "/components/miniprogram-recycle-view/recycle-view","recycle-item": "/components/miniprogram-recycle-view/recycle-item"2、js:// 必须使用相对路径表示,否则会报错const createRecycleContext = r
2022-05-10 11:38:39
3129
1
原创 【微信小程序】flex布局使用记录
测试代码:1、xml:<view class="A"> <view class="AA">AA</view> <view class="AB">AB</view> <view class="AC">AC</view></view>2、wxss:.A{/**/ display: flex;/*默认排成一行*/ /*flex-direction: column;/*排列方向:row
2022-04-22 11:48:15
1028
原创 【Wx小程序】安装nvm、npm、node.js的探索记录
1-引言:在微信小程序开发过程中,我们经常需要使用到扩展能力的相关组件。根据官网的文档描述,又必须按照npm。(1)小程序文档:但是,根据上图所示走下去,却惊喜的发现其实我们电脑并没有nmp这个命令程序。那怎么办?傻瓜,当然是需要先去下载安装这个程序才能使用啦。但是去哪下载安装又是一个新的问题。 但是,我们这里可以选择weui组件库,然后看看这个库对应的文档有没有使用npm。不负众望,我们看到了一个npm的链接。想必这个就是官网了。点进去。好家伙,这个才是官网链接:2-npm官网:如果你
2022-03-31 11:29:33
2074
原创 【安卓】使用AS(Android Studio)生成app的签名
1、安卓项目的包名是它的唯一标识。所以同一台手机上安装两个包名一样的app,新的就会覆盖旧的。但是包名一样的app太多了,所以必须加以区别。所以就加了一个要求:作为产品发布的app必须签名,签名,就是加一些要求。2、签名的作用:发布者身份:app完整性:3、AS签名:给一个示例大家参考:注:创建过的数字签名,可以给多个app使用!(下次就不要创新新的啦!)...
2021-12-08 08:36:31
1601
原创 【Android studio】开始简单使用指南
这里写目录:1、下载安装问题:2、新建项目(project)3、熟悉项目结构4、熟悉安卓应用的结构:(1)一个界面就是一个Activity类来管理(2)界面文件xml(3)看官网教程、视频教程进行操作(4)结合官网等教程,分析安卓几个模板的代码:(5)一个Activity带多个Fragment:1、下载安装问题:除了【是否发送信息给谷歌】的选项,不要发送(当然,你选上也没关系),其他都是下一步就完了2、新建项目(project)点击加号新建就行了。这时我们会选择一个模板作为开发的辅助起点,看上哪个就
2021-11-21 10:56:40
6592
6
原创 【Linux】Ubuntu中Jdk下载、安装、配置环境变量
目录:一、下载二、安装三、环境变量一、下载百度搜索 jdk进入甲骨文官网这里我们直接下载最新版本jdk17因为我们是Ubuntu系统,所以需要下载deb版本:打开文件夹,在Download(下载)中找到刚刚下载的文件,然后右键(触控板右键为两只手指同时敲击),然后Rename(重命名),然后ctrl+A全选,然后CTRL+c复制,以备后用。二、安装打开我们的Terminal(终端),先cd到Downloads目录:然后就可以执行.deb文件的安装命令:sudo dpkg -i
2021-10-29 15:54:14
2216
3
原创 【Linux】Ubuntu系统中安装Rust时Command ‘curl’ not found解决方法记录
如图,运行Rust安装命令的时候,提示curl命令找不到。然后复制运行箭头所指的命令即可安装该命令:然后再次运行Rust安装命令即可:
2021-10-13 23:21:01
1632
原创 【数据结构】第二章线性表
注明:参考书籍——《数据结构(C语言版)》严蔚敏 吴伟民第二章目录:1、`线性表` 类型:1、线性表 类型:举例:1、字母表(a,b,c,d,…,z)2、排名表(s1,s2,…sn)线性表的数据特征:同类数据、存在相对的位置关系空表:一个元素也没有的线性表。注意,不是长度为0,而是元素个数为0,比如房间没有住人,而不是没有房间。抽象(Abstract)数据(Data)类型(Type):ADT表示1、数据对象集合:D={}2、数据关系集合:R1={}3、基本操作函数:
2021-09-18 09:03:27
570
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人