- 博客(44)
- 收藏
- 关注
原创 Gradle 复合构建:宿主项目直接依赖 SDK 源码模块的配置实践
通过 homework-sdk-source.gradle 与 settings.gradle 的组合,宿主项目可以在源码依赖与 Maven 依赖之间灵活切换,既保留日常联调的开发效率,又保证 CI 环境的稳定一致。整个方案对现有构建逻辑侵入小,回退成本低,适合多工程协作场景下推广使用。
2026-10-21 18:16:16
258
原创 Android的ANR分析
2、如果查找到了这些关键字日志,可以直接看系统日志的not responding关键字后面的日志分析,或者在设备的/data/anr/anr目录下有Trace文件生成,可能就出现anr,通过Trace文件堆栈调用进行分析,也可把Trace文件丢给大模型分析。1、可以用Notepad++软件打开安卓设备的系统所有日志,然后输入这些关键字查找:not responding|unresponsive|Input dispatching timed out|/data/anr/anr。
2026-06-25 11:52:25
242
原创 AS编译项目慢问题,原因是加载google外网资源网络及慢
在电脑路径hosts文件加入一下ip配置:C:\Windows\System32\drivers\etc\hosts。下载google资源ip配置。
2026-06-16 17:41:36
245
原创 tcpdump抓包工具安装和使用
3、打开PowerShell命令窗口输入执行开始抓包:adb shell "su 0 sh -c '/data/local/tmp/td -i any -s 0 -w /sdcard/capture.pcap &'"2、修改td这个tcpdump文件权限:执行adb shell 然后执行chmod 755 /data/local/tmp/td。1、把tcpdump推到设备中:adb push E:\工具\tcpdump /data/local/tmp/td。
2026-06-04 09:50:17
389
原创 Android16系统内容全屏,状态栏和导航栏透明
controller.isAppearanceLightStatusBars = true // 状态栏图标深色(适配浅色背景)controller.isAppearanceLightNavigationBars = true // 导航栏图标深色。* 安卓16系统页面内容全屏设置,设置透明状态栏 + 透明导航栏。// 设置系统栏行为:通过滑动可以临时显示系统栏。// 设置导航栏对比度,保持手势横杆可见。// 设置状态栏颜色为半透明。// 允许系统栏半透明显示。// 设置导航栏颜色为透明。
2026-04-06 10:31:18
136
原创 Android Studio里,SDK Manager显示不全问题
可以看这个文章:https://blog.youkuaiyun.com/elvia7/article/details/131915377。在sdk manager里面,进入sdk update sites,点击右侧的“+”,输入一个镜像 地址。2、在多个地点Ping服务器,网站测速 - 站长工具 输入dl.google.com,进行ping检测。问题描述】:在SDK Manager里面,只显示自己已经安装的SDK版本,不显示其他未安装版本。【前提】:有VPN,开了全局,依然不行。一键获取完整项目代码。
2026-03-13 18:15:39
229
原创 as强制过滤指定依赖版本库,解决该依赖不同版本冲突
configurations.all { resolutionStrategy { eachDependency { details -> if (details.requested.group == 'com.eebbk.askhomework.content') { if (details.requested.name == 'module_character' || details.r
2025-10-25 18:08:43
237
原创 mat内存泄漏分析工具使用
4、注意需要把Android studio导出的hprof文件,通过adb hprof-conv memory-20250422T092758.hprof mat-memory-20250422T092758.hprof转出的新hprof文件才能在mat工具打开。1、首先在线上下载mat,如下的MemoryAnalyzer-1.16.1.20250109-win32.win32.x86_64.zip解压后的文件夹是mat。2、点击MemoryAnalyzer.exe就会打开工具。
2025-08-29 18:26:57
411
原创 Strict Mode使用
Strict Mode 是 Android 提供的一种开发工具,用于帮助开发者发现应用程序中潜在的性能问题或不良行为。.detectDiskWrites() // 检测主线程上的磁盘写操作。.detectDiskReads() // 检测主线程上的磁盘读操作。.detectNetwork() // 检测主线程上的网络操作。主线程磁盘访问:在主线程上进行文件读写操作。耗时操作:在主线程上执行长时间运行的任务。内存泄漏:检测未释放的大对象或资源。网络请求:在主线程上执行网络请求。
2025-04-25 09:17:33
372
原创 git报错send-pack: unexpected disconnect while reading sideband packet
1048576000这里的单位是Byte, 也就是1G。
2024-11-06 00:59:52
831
1
原创 临时开启设备的root权限
adb remount (设备升级版本后第一次执行此命令会执行失败,如果执行失败,会在下面提示执行adb disable-verity,那就执行adb disable-verity,之后执行adb reboot重启,重启完后重新第4步开始操作)设备开启 开发者模式 并 开启USB debugging。adb connect 设备ip。
2024-04-10 15:35:47
1318
原创 Android的adb局域网连接
1、首先执行adb shell setprop persist.internet_adb_enable 1,打开网络调试。一般以上三步应该可以连接成功,如果连接不成功,可以先插上usb与安卓设备连接,重新执行以上三步骤。
2024-03-08 15:25:44
1084
原创 JNI NewGlobalRef called with pending exception java.lang.UnsatisfiedLinkError
在项目当中如果引用到第三方sdk或者jni调用,如出现以上异常原因,有可能运行当中没找到指定类或者方法,可以检查项目是否启动混淆,把一些类或者类中的方法、成员移除掉了,可以尝试保留指定类或者类中的方法或者成员。
2023-08-03 15:06:48
1341
原创 Android使用adb和PackageInstaller两种方式安装apk
PackageInstaller安装方式。简单实现的一个案例,直接上代码。
2023-07-05 17:10:32
3025
1
原创 Android无障碍服务器使用
accessibilityEventTypes:响应的事件类型(单击、长按、滑动、通知等)accessibilityFeedbackType:回显给用户的方式(例如:配置TTS引擎,实现发音)accessibilityFlags:很关键,你的应用程序需要获取哪些信息。4、最后步可以在继承Application类中调用,这个方法是打开无障碍服务,这样可以在自己实现的AccessibilityService类中监听系统按键事件、或者其他应用界面信息和状态等。2、清单文件中需要加入以下权限和service定义。
2023-07-05 16:52:21
1355
原创 as使用Git指令远程或者本地创库代码合并
如果在as已经打开一个fork指定分支的项目,想合并所fork的主创库指定分支,如果在gitlab中请求合并出现冲突,会显示一个merge locally按钮,点击改按钮弹出一下弹窗:可以在as的Terminal按照上图的git指令操作:步骤1。获取并检出此合并请求的分支git fetch "https://gitlab.xxxxx/xxxx/app-android.git" maingit checkout -b "xxxx/android-main" FETCH_HEAD步骤2。查
2022-02-18 10:29:07
1884
原创 Android集成sentry坑
sentry官网网址:Android | Sentry Documentation集成sentry的时候可能遇到这个异常: java.io.IOException: Cleartext HTTP traffic to XXX not permitted因为从Android 6.0开始引入了对Https的推荐支持,与以往不同,Android P的系统上面默认所有Http的请求都被阻止了。解决的办法简单来说可以通过在AnroidManifest.xml中的application显示设置:<..
2022-01-17 15:16:58
2802
原创 如果使用git克隆远程创库,pull提示Can‘t update master has no tracked branch
如果pull操作时,使用git命令:git branch --set-upstream-to masterorigin/master,如果还提示提示master->fatal: branch ‘master’ does not exist。则输入以下指令:git pull origin master --allow-unrelated-histories
2021-12-16 09:56:12
943
原创 android使用aspectjx踩的坑
1、在根目录的build.gradle中加入:classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.10'2、如果使用了kotlin代码需要在项目的app的build.gradle中的头部加入:apply plugin: 'kotlin-android'apply plugin: 'kotlin-android-extensions'apply plugin: 'kotlin-kapt'3、在..
2021-12-14 11:42:43
3643
原创 andorid什么时候会销毁
第一种是正常的销毁,比如用户按下Back按钮或者是activity自己调用了finish()方法; 另一种是由于activity处于stopped状态,并且它长期未被使用,或者前台的activity需要更多的资源,这些情况下系统就会关闭后台的进程,以恢复一些内存...
2021-11-02 15:29:30
304
原创 Andorid依赖包冲突文件解决
1、过滤多个相同的文件 packagingOptions { //重复依赖了这个包,但无法找到在哪里,先这样处理,表示 使用第一个 pickFirst 'org/apache/poi/ss/formula/function/functionMetadata.txt' pickFirst 'font_metrics.properties' pickFirst 'org/apache/poi/ss/formula/function/fun.
2021-10-22 09:56:27
1149
原创 Android使用切片编程库后,同时依赖kotlin写sdk,可能出现编译项目不同问题。
进入app的build.gradle文件中,可以尝试在头部的apply plugin: 'com.android.application'行代码下面加入以下代码,这个问题也是在刚好下班时遇到,正好是项目赶着提测,由三人小组加班寻找解决方案,最后才找到这个解决方案,加油。aspectjx { exclude "**/module-info.class" exclude "META-INF.versions.9.module-info" exclude "META-INF/versi.
2021-09-23 11:32:25
406
原创 Andorid中的dex文件使用dex2jar工具反编译
dex2jar 的安装(以 Windows 为例)dex2jar的下载地址: https://sourceforge.net/projects/dex2jar/ 将下载的 dex2jar-2.0.zip 压缩文件直接解压到任意文件夹下。 将 dex2jar-2.0 文件夹的路径配置到 PATH 环境变量中去。 在命令行窗口输入 d2j-dex2jar 命令按回车键后,打印如下图信息,表示安装成功。 输入 d2j-dex2jar 命令.pngdex2jar 反编译
2021-09-04 14:51:58
1093
原创 Android的事件分发机制
1. 基础认知1.1 事件分发的对象是谁?答:点击事件(Touch事件)定义当用户触摸屏幕时(View 或 ViewGroup派生的控件),将产生点击事件(Touch事件)Touch事件的相关细节(发生触摸的位置、时间等)被封装成MotionEvent对象事件类型(4种)事件类型 具体动作MotionEvent.ACTION_DOWN 按下View(所有事件的开始)MotionEvent.ACTION_UP 抬起View(与DOWN对应)MotionEvent.AC...
2021-09-04 14:46:01
174
原创 Android的性能优化
Android性能优化主要有四个方面:1、稳定(内存溢出、崩溃)2、流畅(卡顿)3、耗损(耗电、流量、网络)4、安装包(APK瘦身)
2021-09-04 14:45:11
574
原创 远程主机强迫关闭了一个现有的连接
在win10电脑中,按快捷键win+R,打开cmd,然后输入netstat -aon | findstr "5037",找到占用5037端口的pid,然后再任务管理器中找到这些pid,结束掉这些pid进程就可以。
2021-08-19 11:39:37
1487
原创 组件化
什么是组件化组件化就是由多个mudule组成的应用,达到代码和资源的隔离,每个模块都可以独立运行或者打包调试能力。1、各个组件专注与自身功能的实现,模块中代码高度聚合,只负责一项任务,也就是常说的单一责任原则;2、各业务研发可以互不干扰。提升协作效率;3、业务组件可进行拔插,灵活多变;4、业务组件之间将不再直接引用和依赖,各个业务模块组件更加独立、降低耦合;5、加快编译速度,提高开发效率;组件化架构图设计模块介绍1、App壳:负责管理各个业务组件和打包APK,没.
2021-05-24 23:38:29
287
原创 Android的四种启动模式
前言Android的Activity的启动启动模式在面试也是常常被问到的,本人面试几家公司都有问到,比如面试管问:当在应用中的ActivityA跳转到ActivityB,然后按下home键跳到桌面,这时当点击应用图标回跳到应用,当前应用显示的是哪个Activity?面试管问这样的问题可能是考你关于Activity的启动模式的了解,其实面试管想知道四种启动模式分别会产生什么结果。首先举例一个特殊的启动模式,如如果ActivityB的启动模式是singleInstance,回到应用当前展现的视图是Activ
2021-05-19 23:28:40
388
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅