自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 当jar包中有冲突的依赖时处理方法

本文分享了解决opencc jar包与本地gson库冲突的实用方法。由于无法更新opencc库或通过gradle排除依赖,作者采用直接修改jar包的方案:将jar改为zip格式后用压缩工具删除内部的gson文件夹(com.google.gson)。这种方法避免了重新打包的繁琐操作,但需要注意不同版本gson的包名路径可能不一致。该方法简单有效,为类似jar包冲突问题提供了新思路,特别适用于老旧库的兼容处理。

2025-06-09 09:46:35 193

原创 ThreadUtil 异步执行,线程安全、非阻塞的工具类 kotlin版本

ThreadUtils 是一个用于简化多线程和协程任务处理的工具类。它提供了以下功能: 判断当前线程是否为主线程:通过 isMainThread() 方法实现。 后台任务执行:通过 execute() 方法在 IO 线程池中执行任务。 主线程任务执行:通过 executeMain() 方法在主线程中执行任务。 协程版异步任务执行:executeWithTimeoutAsync() 方法支持异步任务的超时控制,并在主线程中回调成功或错误结果。 示例中,使用 executeWithTimeoutAsync()

2025-05-11 17:44:19 471

原创 ThreadUtil 异步执行,线程安全、非阻塞的工具类

ThreadUtils 是一个线程安全、非阻塞的工具类,支持异步任务执行、超时控制和主线程回调。它通过单例模式实现,内部维护了一个固定大小的线程池(8个线程)和一个主线程执行器。主要功能包括:execute 用于在后台线程执行任务,executeMain 用于在主线程执行任务,isMainThread 用于判断当前是否为主线程。此外,executeWithTimeoutAsync 方法支持异步执行任务并设置超时时间,任务完成后通过回调在主线程处理结果或错误。该工具类适用于需要异步处理且需在主线程更新UI的场

2025-05-11 17:36:09 199

原创 Android studio profiler使用

2、打开profile的home,找到Analysis Memory Usage,点击右下角start profiler task,开始分析内存,等待分析完成,分析过程中页面是卡死状态,正常现象。4、如果不是很确定是哪里的问题,可以把图片放入AI工具帮你分析。1、把怀疑内存泄露的页面都跑一边,然后回到初始页面。3、按照下面步骤查看泄露的类。

2025-05-08 13:41:26 629

原创 检测是否是主应用

【代码】检测是否是主应用。

2025-04-18 17:55:46 106

原创 Android日志分析,常见报错过滤条件

三个过滤条件基本可以覆盖常见的应用崩溃问题。

2025-04-12 18:10:30 108

原创 app切换语言重启应用生效

无论哪种修改语言后需要重启应用生效,可以在当前Activity中监听并重启应用生效。1、切换app内部语言,系统语言不变,不需要系统签名app可以实现的功能。2、切换系统语言,需要系统签名,

2025-03-27 17:48:31 151

原创 gradle-wrapper中地址distributionUrlx下载失败

换了以后就可以很快down下来。

2024-12-30 18:34:37 288

原创 click双击检查,万物皆可用

可以用作双击检查,也可以用做时间间隔检查工具。

2024-04-29 14:56:12 202 1

原创 检查文件是否为图片或者视频

检查文件是否为图片或者视频。

2024-03-26 14:53:56 850

原创 蓝牙通信demo

蓝牙开发demo

2024-02-22 10:28:49 437

原创 查看CPU占用率

【代码】查看CPU占用率。

2023-07-05 16:55:22 329

原创 日志显示工具类

在开发中遇到已经发布到客户现场,但是出现bug,此时无法获取调试日志的问题,使用这个工具类,把日志输出到页面显示,可以协助我们快速排查问题。获取context使用到了Utilcode框架,网上集成的文章很多,百度即可。

2023-03-01 13:48:17 289

原创 倒计时工具类

平时开发中经常遇到需要倒计时执行某个操作的需求,整理了一个倒计时工具类,需要时可以用上,在此记录。

2022-12-02 09:51:50 183

原创 Android studio 一直在代码检查导致卡顿

在开发过程中经常出现studio卡顿,电脑也卡的不行,可以尝试关闭代码审查。

2022-10-26 09:36:42 851

原创 MediaPlayer简单使用

MediaPlayer是Android中的一个多媒体播放类,其提供的API能满足简单的大部分音视频的播放需求。MediaPlayer是使用Surface进行视频的展示的。MediaPlayer只支持mp4、avi、3gp格式的视频,支持格式相对单一。MediaPlayer可以播放网络视频,支持的网络视频的协议为:Http协议和RTSP协议两种。

2022-09-29 09:34:32 3404

原创 安卓应用抓取系统日志

因为大部分安卓固件存在一个日志缓冲区限制,当日志过多超出最大限制就不会再打印日志。所以需要在开发者模式找到日志缓冲区大小,调到最大测试。使用时可以做到抓取,同时也存在一个问题。

2022-09-26 14:19:18 1002

原创 Gradle配置阿里云仓库

配置阿里云仓库

2022-09-23 11:29:30 3370

原创 videoview声音焦点被抢占

最近遇到一个异屏双显,一个屏幕上使用videoview播放视频,另外一个屏幕使用投屏,投屏的声音被抢占,导致投屏无声音,试了几个框架,不理想,预置自己改了一份源码。直接修改videoview源码,去掉了系统依赖,可以在任何项目中运行。

2022-09-21 18:52:58 660

原创 byte和十六进制数据转换

十六进制和byte数据转换

2022-08-08 21:11:06 434

原创 十六进制数据格式化

十六进制数据格式化为string

2022-07-25 16:12:51 725

原创 NFC消息在非Activity监听实现

安卓系统NFC开发,实现在任何位置接收NFC刷卡信息

2022-07-25 09:45:07 854 4

原创 原生Camera预览分辨率自定义修改

修改原生camera预览分辨率

2022-07-25 09:26:17 1972

原创 libserial_port.so免费下载,包含所有库版本

开发串口读取项目,遇到在arm64板子上运行找不到native方法依赖废话不多说,先上链接链接:https://pan.baidu.com/s/1aE0xjR6GBmlUICsyhQDajg?pwd=jxqa提取码:jxqa里面包含下面所有版本的so库原代码位置:GitHub - cepr/android-serialport-api: Accessing serial ports for Android下载下来因为代码太旧了,改造一番,转成studio项目公司代码加密所以我.

2022-05-19 14:19:24 2676 1

转载 linux shell 写串口,[小技巧] shell 下查看串口是否工作正常-爱代码爱编程

Skip to content爱代码爱编程代码编织梦想category:Linux ShellPosted on2021-05-09在 Linux 下调试串口,是个麻烦的事情,尤其是嵌入式环境,很多时候要借助另一台设备来进行调试。这里琢磨出一种可行的串口调试方法,可以简单的查看串口是否在正确工作。1. 短接 tx 和 rx,让串口自发自收 (DB9 插头上的 2 和 3 脚,不管有没有交叉;反正交叉了也只是 2 和 3 换了个位置,不影响本测试)2. 使用 "cat /dev..

2022-05-07 09:47:40 807

原创 自定义竖向Seekbar

import android.animation.Animator;import android.animation.ValueAnimator;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;impo...

2021-12-25 13:44:57 1647

原创 LeakCanary2.5版本使用

LeakCanary的Android Studio集成一、 在build.gradle中添加LeakCanary的依赖包,截止目前leakcanary的最新版本是2.5.0: //内存检测 debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.5'注意这个版本不需要在Application中初始化.!!!注意这个版本不需要在Application中初始化.!!!注意这个版本不需要在Applicat

2021-12-20 10:54:22 564

原创 Gradle获取当前编译的Flavor

利用编辑task来获取因为在切到需要的flavor后编辑,开始命令如下Executing tasks: [:app:assembleOkviewRelease] in project xxxx编写获取方法:def variantName() { def split = getGradle().getStartParameter().getTaskRequests().toString().split(":"); if (split.length > 2){

2021-12-15 11:19:50 4567

原创 Android 设置动态壁纸没有确认按钮处理方式

使用反射设置壁纸,// wallpaperManager.setWallpaperComponent(new ComponentName(context.getPackageName(), name));如果需要设置壁纸跟随移动需要设置// wallpaperManager.setWallpaperOffsetSteps(0.5f, 0.0f);// wallpaperManager.setWallpaperOffsets(windowToken, 0......

2021-12-14 20:42:21 1883

原创 Jni native java.lang.UnsatisfiedLinkError:No implementation found for boolean com.xxx.xxx.jni.init()

项目中使用到so库,编译apk出来安装运行正常,但是直接run运行报错,提示找不到native方法的实现,确认了几次没发现有什么问题,so包确实存在在log中看到一个关键信息运行报错时是在找64位的文件夹,而项目中使用的是32位的so包,问题出在这里,在gradle中添加如下代码解决:...

2021-12-09 17:14:45 2348

原创 线程池ThreadExecutors

import android.os.Handler;import android.os.Looper;import android.support.annotation.NonNull;import android.util.Log;import java.util.concurrent.Executor;import java.util.concurrent.ExecutorService;import java.util.concurrent.LinkedBlockingQueue;i.

2021-09-13 21:28:11 667

转载 Retrofit+OKHttp忽略https证书验证

记录这个的原因,是因为很多时候,因为后台配置的证书不正确导致APP访问不到服务器数据,导致影响自身的开发进度。没几行代码,逻辑也清晰,所以下面就直接贴出工具类吧:package com.xbh.whiteboard.qrcode;import java.security.SecureRandom;import java.security.cert.X509Certificate;import javax.net.ssl.HostnameVerifier;import javax.net.s

2021-08-03 14:26:21 2193 2

原创 Android通过命令行,修改该系统语言

首先要root用户 进入data/system/user/0/ 找到文件settings_system.xml busybox vidata/system/user/0/settings_system.xml 进入修改模式 搜索local,修改system_locales,和defaultValue两个地方的value值,在最前面添加你需要显示的语言 android资源文件夹的写法规则: 语言缩写-国家地区缩写 语言缩写ku-IQ ku是库尔德语,IQ是伊朗的简称 修改完...

2021-08-03 09:48:42 2584

原创 Android适配阿拉伯语、波斯语语系

有一种情况,wrap_content不生效,布局还是显示成了match_parent此时需要在父布局设置android:layoutDirection="ltr"

2021-07-29 14:00:38 894

原创 implementation、api、compileOnly区别详解

2021-07-28 17:47:00 349

原创 Android词条国际化,xml2xls,词条提取

废话不多说,直接上工具链接:https://pan.baidu.com/s/141Yzzay7BUMWB9-BubZGZQ提取码:vvzd使用方法: 1、把xml转成xls, 把xmltoxls.exe放在安卓项目根目录,双击运行,会出现一个命令行窗口显示正在转换,稍等一会儿,在根目录下生成一个strings.xls文件,里面就包含了项目中所有词条 2、xls2xml.exe,同理,把这个运行文件和翻译好的strings...

2021-07-19 14:31:51 783

原创 view加阴影,探究多种实现方式

原文链接:https://mp.weixin.qq.com/s/y1-KUHdIm10R5EvF1OwGZA整理鸿洋神的一篇文章到脑图

2021-07-16 14:03:44 266

原创 安卓事件分发

2021-07-08 10:27:46 143

原创 linux top命令VIRT,RES,SHR,DATA的含义

linux top命令VIRT,RES,SHR,DATA的含义VIRT:virtual memory usage 虚拟内存1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量RES:resident memory usage 常驻内存1、进程当前使用的内存大小,但不包括swap out2、包含其他进程的共享3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反4、关

2021-05-21 15:26:13 1366 1

原创 git打tag步骤

2018-05-31 09:33:20 912

空空如也

空空如也

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

TA关注的人

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