- 博客(59)
- 收藏
- 关注
原创 android anr、trace、tombstones三者的区别
ANR、Trace与Tombstone分别对应Android应用的无响应、性能卡顿和Native崩溃三类问题。ANR是主线程阻塞超时的结果,系统生成trace日志定位卡点;Trace记录方法调用与耗时,用于诊断卡顿或优化性能;Tombstone是Native层崩溃的完整现场快照,包含多线程堆栈与内存信息,是分析C/C++崩溃的关键依据。三者触发机制、内容与工具各不相同,但共同构成Android疑难问题排查的核心体系。
2026-09-29 09:59:24
176
原创 Android屏幕卡顿traces.txt拉取查看
通过ADB命令获取应用进程PID(如cn.strong.pm),使用kill -3触发ANR跟踪,生成traces.txt文件。等待2-3秒后,通过adb pull导出日志至本地,可结合adb shell ls /data/anr/确认文件存在,便于分析ANR原因。
2026-09-29 09:38:42
202
原创 AAPT2 构建时,生成的资源字符串池格式(UTF-8)可能会触发某些 Android ROM(尤其是 LineageOS/CyanogenMod 等定制系统)中 ResXMLTree 的缺陷
在 AGP 9.6.1 中,--utf16 和 aaptOptions 已失效,官方已在 AAPT2 内置修复:自动将 AndroidManifest.xml 字符串池编码为 UTF-16,以规避部分设备内存损坏问题。推荐直接使用较新 AGP 版本,无需额外配置。可通过 aapt dump xmltree 验证字符串编码,或在目标设备测试崩溃是否消失。若问题仍存,可考虑降级至含修复的旧版 AGP,但优先推荐依赖官方修复的方案二。
2026-09-20 14:48:34
204
原创 Android 中使用 Protocol Buffers (Protobuf)进TCP通信
本文介绍了在Android中使用Protocol Buffers(Protobuf)进行TCP通信的关键步骤。主要内容包括:1)Protobuf的核心优势:体积小(比JSON小30%-50%)、解析速度快、强类型安全;2)环境搭建:通过Gradle插件配置Protobuf Lite版,避免64K方法数限制;3)定义.proto协议文件及注意事项;4)TCP服务端实现示例,展示连接处理和Protobuf消息编解码流程。该方法适用于对传输效率和性能要求较高的移动端通信场景。
2026-08-12 11:23:23
197
原创 IntelliJ IDEA 2026.2.0.1添加 Kimi Code CLI
本文介绍了Kimi Code CLI在Windows系统上的安装方法以及如何在IntelliJ IDEA中集成该工具。 Kimi Code CLI安装:通过PowerShell执行一键安装命令,自动完成下载、安装和环境变量配置。安装后需重启终端并验证版本号确认安装成功。若命令不可用,需手动添加安装路径到环境变量。 IntelliJ IDEA集成:下载安装IntelliJ IDEA后,在设置中添加自定义智能体,配置Kimi Code CLI的路径并测试连接。 全文提供了详细的步骤说明和截图指引,帮助用户完成安
2026-07-29 15:25:09
639
原创 Android Studio Quali 1 安装后打不开的原因
摘要:Android Studio无法启动通常由进程残留、配置损坏、JDK冲突、权限不足或资源不足导致。常见解决方法包括:终止残留进程(如studio64.exe)、删除配置文件或.lock文件、检查环境变量(JAVA_HOME)、添加杀毒软件白名单、确保足够磁盘空间。若问题持续,可查看日志文件(idea.log)定位具体错误。案例显示,旧版插件冲突可能导致启动失败,需删除旧配置文件重新启动。(149字)
2026-07-09 17:21:53
310
原创 查看Android Studio错误日志
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2026-07-09 16:49:04
239
原创 查看Android应用里面所有组件的位置
2.打开dependencies.txt进行组件搜索查看。4.修改项目build.gradle里面的导包链接。3.统一升级有漏洞问题的组件版本。1.生成组件依赖报告。
2025-12-31 14:00:35
159
原创 Gradle配置bcprov-jdk15on依赖方案
摘要:本文介绍了四种在Gradle项目中配置bcprov-jdk15on依赖的方案:1)直接指定最新稳定版本(推荐),自动管理依赖;2)排除冲突依赖,解决第三方库版本冲突;3)全局版本仲裁,统一管理多模块项目;4)手动下载JAR(不推荐)。前三种方案通过Gradle自动管理依赖,能有效避免版本冲突,其中强制指定版本和全局仲裁方案适用于不同规模项目,而排除冲突方案适用于解决特定库的依赖问题。手动方案需自行管理更新,易导致冲突。
2025-12-30 13:47:23
283
原创 SSLSocket Tcp连续发送信息
文章摘要: 这是一个实现SSL/TLS安全通信的TCP客户端工具类,主要功能包括:1) 建立SSL/TLS 1.2加密连接;2) 实现持续消息发送和接收;3) 提供连接状态管理。核心类SSLClient封装了SSLSocket操作,包含连接建立、消息收发和断开连接功能,并使用了自定义的TrustAllManager(仅限测试环境)。配套的SSLSocketClientHelper类提供了更高级的管理功能,包括定时发送心跳数据、异步消息处理和状态回调接口。
2025-12-03 15:24:07
159
原创 CertificateCreator生成服务器证书server.pfx
2.C#代码,使用Blend for Visual Studio 2022运行。1.创建服务器生成证书地址时,需要先创建Server.pfx空文件。
2025-12-03 14:51:41
229
原创 SSLSocket 服务器端WPF C#测试代码
摘要: 本文展示了一个SSL Socket TCP服务器的WPF界面实现,包含服务器配置、日志显示和客户端管理功能。界面采用网格布局,分为标题栏、主内容区和状态栏。主内容区包含日志显示文本框和控制面板,控制面板提供端口设置、证书配置、服务器启停等功能。代码部分实现了SSL加密通信,使用X509证书进行身份验证,支持多客户端连接管理和消息发送功能。服务器状态通过CancellationTokenSource控制,实时显示连接状态和日志信息。
2025-12-03 14:25:42
369
原创 Android中使用SQLCipher加密GreenDao数据库不成功
本文介绍了使用GreenDao与SQLCipher实现Android数据库加密的步骤:1)添加GreenDao插件和SQLCipher依赖;2)配置GreenDao参数;3)在Application中初始化SQLCipher库;4)通过DevOpenHelper获取加密数据库实例并设置密码。这些配置实现了对Android本地数据库的安全加密存储功能。(148字)
2025-11-11 16:28:34
245
原创 语言切换时广播没有监听到语言变化
本文介绍了Android应用实现语言切换功能的关键代码。通过BroadcastReceiver监听系统配置变化(ACTION_CONFIGURATION_CHANGED),提供了三种获取当前语言设置的方法:1)获取默认locale;2)从配置中获取首选locale;3)从SharedPreferences读取自定义语言设置。同时展示了广播的注册与注销流程,使用IntentFilter进行广播接收器的动态注册,并在适当时机进行注销以避免内存泄漏。该实现可用于应用内多语言切换场景,支持监听语言变化并作出响应。
2025-08-27 17:35:49
194
原创 WPS 将一个PPT里面的图片和文字导入到另一个PPT中
WPS将PPT内容导入另一PPT的方法:操作步骤简单,通过6步即可实现文字和图片的跨文件迁移,并保持原模板格式。
2025-07-28 11:18:07
1823
原创 DataBinding与自定View进行绑定
摘要:这段代码展示了在Android开发中使用DataBindingUtil.inflate()方法进行数据绑定视图的创建。该方法通过LayoutInflater从指定资源ID(R.layout.viewId)中加载布局,并将其与当前视图(this)绑定,true参数表示将生成的视图直接添加到当前视图层级中。
2025-06-05 16:31:28
154
原创 android TextView背景显示不全,出现一闪一闪的缺口
在Android开发中,当使用TextView的background属性设置shape为oval时,可能会出现显示不全或闪烁的缺口问题。这通常与硬件加速有关。解决方法是关闭当前Activity的硬件加速。具体操作是在AndroidManifest.xml文件中找到对应的<activity>标签,并添加android:hardwareAccelerated="false"属性。这样可以有效避免显示异常问题,确保TextView的背景形状正确显示。
2025-05-23 16:13:28
205
原创 bug exposed beyond app through Intent.getData()
对于面向 Android 7.0 的应用,Android 框架执行的 StrictMode API 政策禁止在您的应用外部公开 file:// URI。如果一项包含文件 URI 的 intent 离开您的应用,则应用出现故障,并出现 FileUriExposedException 异常。ini 代码解读复制代码 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);2、对应应用默认缓存根目录:Context.getCacheDir()
2025-02-25 16:23:55
1000
原创 Android 32位和64位版本的Android系统String.getBytes(StandardCharsets.UTF_16)获取的字节顺序有所不同
在32位系统上,默认使用大端字节顺序(Big Endian),而在64位系统上,默认使用小端字节顺序(Little Endian)。这意味着,如果你在一个系统上序列化数据,然后在另一个系统上反序列化,可能会遇到问题,因为它们可能有不同的字节顺序。总结:在处理字符串编码为字节数组时,明确指定字节顺序是一个好的实践,以确保数据在不同平台和系统之间的兼容性。如果数据需要在不同字节序系统之间传输,确保在序列化时使用明确的字节顺序,并在反序列化时正确解析。对于关键数据,可以使用加密确保数据的一致性。
2024-12-12 17:13:06
382
原创 AppCompatAutoCompleteTextView 传入降序数据下拉框不显示
如果返回的是ture数字出现降序将会不显示,降序显示时需手动将其改为false。
2024-09-27 17:24:21
250
原创 TextView添加android:includeFontPadding=“false“属性后“g”字符显示不全
TextView添加android:includeFontPadding="false"属性后“g”字符显示不全。
2024-07-19 16:34:04
733
原创 android如何修改.aar包里面java文件的代码
2.然后通过android studio打开查看.aar文件,找到要修改的类,将其全部拷贝至新建的类中,把报错的参数和却R的引用补齐,保证不报错,运行因为新建的类与要修改的包里面的类会冲突,所以要进行包修改。3.将.aar包拷贝至桌面,将后缀改为.zip后缀,然后鼠标双击直接打开(不要解压)1.在项目中新建一个和.aar中要修改的代码的类一样类名的类(类名包名都一样)7.完成,那个要修改的类已经被我们提出来,想怎么修改就怎么修改。5.找到要修改的类.class,将其删除。
2023-12-21 12:37:44
1307
原创 javaWeb直接用域名访问网站
第一步:将tomcat访问端口号更改为 80,更改后可以通过访问http://www.xxx.com查看是否访问到tomcat的界面。如果为本地测试,在浏览器输入127.0.0.1,即可访问到项目的默认主页,若没有默认主页则可能会出错,可尝试用项目业务路径来测试。shop是你的项目的名字,把你的项目的名字放上面就可以了。不用再通过项目的名字来访问这个项目,直接用域名就可以访问到这个项目。比如我可以直接访问域名:http://www.xxx.com/,最主要配置tomcat的server.xml文件。
2023-04-25 23:38:15
1305
转载 Netty在Android中使用
在初始化时添加:.addLast(new IdleStateHandler(30, 10, 0)) //参数1:代表读套接字超时的时间,例如30秒没收到数据会触发读超时回调;.addLast(new ByteArrayDecoder()) //接收解码方式。.addLast(new ByteArrayEncoder()) //发送编码方式。.addLast(new ByteArrayDecoder()) //接收解码方式。
2023-04-24 15:27:45
957
转载 读写SD卡目录的问题
收藏大佬的,用于自己学习:前言:本文的核心是解决安卓上面读写SD卡目录的问题。众所周知,安卓上面对于应用来说可以读写的有三块区域:1.data/data/包名;2.sdcard/Android/data/包名;3.sdcard目录。前两块区域读写一般是没有什么限制的,可以直接读写。但是第三块区域,因为各个APP都可以申请对这块区域进行读写,所以就会很乱,因此安卓也在不断的加强对这块区域管控的力度。但是我们对SD卡根目录直接读写的需求是一直存在的,所以本文将会记录每个安卓版本对这块权限的变化,
2022-04-25 11:20:20
417
原创 同一台服务器上同时装两个Tomcat且同时运行
1.复制整个tomcat文件改名2.更改server文件中的三个端口号,让其与原文件不一样3.保存启动Tomcat完成,多个也是一样的操作
2022-04-13 17:00:09
1965
原创 设置任意位置和大小的Dialog
public void show(Context context){CommonDialog dialog = new CommonDialog(context);Window window = dialog.getWindow();if (window != null) {View view = LayoutInflater.from(context).inflate(R.layout.dialog, null);dialog.setContentView(view);WindowManage
2022-03-15 16:00:21
243
SSLSocket TCP服务器端WPF C#测试代码
2025-12-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1