技术分享

Choreographer 应用卡顿发生时提示 Choreographer Skipped 484 frames! The application may be doing too much work on its main thread. Displayed 新界面打开耗时 ActivityManager: Displayed smart.p0000/com.pmpd.interactivity...

发布 0 条评论

1、ClickableSpan与TextView点击冲突 在我们使用ClickableSpan的时候,需要配合MovementMethod才能实现,不过往往会导致整个TextView的点击事件都被拦截 movementMethod = LinkMovementMethod.getInstance() 解决方案,不使用LinkMove...

发布 0 条评论

Apk打包流程 手动打包apk 打包环境Windows电脑,不过命令应该都是一致的,需要提前把\SDK\build-tools\33.0.1添加到环境变量,或者下面的命名直接使用全路径 1、切换到项目根目录 cd ManualBuildApk 2、编译资源文件 aapt2 compile...

发布 0 条评论

调用NotificationChannel.setSound()方法来设置/修改通知声音无效 先看下API注释 /** * Sets the sound that should be played for notifications posted to this channel and its * audio attributes. Notification channels with ...

发布 0 条评论

前言 AccessibilityService是一种辅助服务,大谷歌开发出来的初衷原本是为了方便身体不便的用户更好的使用Android系统,比如为视力不好的用户朗读屏幕上面的文字等,在2013年之前,使用这个的开发者还是很少的,到了2013年被国人发现...

发布 0 条评论

使用协程封装异步操作 private suspend fun showDialog(context: Activity): Boolean { return suspendCoroutine { val builder = AlertDialog.Builder(context) builder.setTitle("问题:") b...

发布 0 条评论

简介 在每一个使用 git 进行版本管理的仓库,都有一个目录 .git/hooks,包含 commit 各个阶段 Hooks 的脚本。这些 Hooks 在 git 操作 commit、push、merge 等得时候,可以做前置或者后置的操作。Git 支持的常用钩子见下表,更多请查看...

发布 0 条评论

前言 native的异常不同于Java异常,往往堆栈是一堆的地址,如下所示 本文主要介绍如何通过一系列的工具去还原native异常堆栈。 获取崩溃日志 分析Native Crash最直接的方式是查看logcat日志,一般情况下,只要APP没有自己实现信号捕...

发布 0 条评论