Android项目接入Rust

背景

本次讨论在已有的安卓项目工程中配置rust的方法,同时记录一下踩坑过程,首先本地pc端配置好rust的开发环境,配置rust的过程就默认你会了。

阅读更多

解决 Compose Layout Inspector 不能用

错误信息

当你辛苦写完一个页面,打开Layout Inspector 发现不能使用

1
2
3
Could not download androidx.compose.ui:ui:1.5.0-alphao1 from maven.google.com.
Check the internet connection. For offline repositories (not common)
please specify -Dappinspection.use.dev.jar=true as a custom VM property.
阅读更多

JsonObject.optLong 导致的Bug

问题背景

业务场景存在一个JSB,FE同学传了个JSON到端上,端上测试的时候都是正确的,有天调试Server反馈说id值找不到,端上id值回传错了,开始排查代码。
发现Jsb传输过来的Json都是String to String的格式, 类似这样

阅读更多

App Debug 主线程,出现ANR后被系统Kill

痛点

笔者手上有个Reamle GT,日常开发工作中,是不是会debug,断点在主线程里面,基本被kill,没办法调试代码,自动重启给开发带来很大困扰,实在受不了,着手解决。

阅读更多

Android开发工具推荐

自己在平时工作中发现的一些不错的工具,记录下,方便在切换外部环境的时候,快速找回持续更新

阅读更多

快速点击StartActivity引发的误会

问题来源





在A 跳到 B ,再跳到C的过程中,一定条件下发送广播,需要把B关掉,达到的效果就是 C直接返回A。


但是现在出现一个Bug就是C返回的时候,还是B。当时没有打印onCreate的日志,只发现B在前面finish了,居然又在后面onResume了,这显然违反科学。当时想就算B启动了多个,B也都在onCreate的时候注册了广播,都应该可以收到广播的。后面怀疑是手滑不小心点击了2次,或是系统突然响应过慢,点击了多次,造成创建了多个实例,所以我直接通过for循环快速模拟这种情况。

阅读更多

JNI为什么要调用AttachCurrentThread?

我们写JNI的时候,通常要通过 如果需要反调java层的代码,是需要通过jvm->AttachCurrentThread 将当前线程注册到虚拟机中,为什么一定要调用这个方法呢?我们追一下这个方法里面到底做了什么?

阅读更多