- 博客(144)
- 资源 (5)
- 收藏
- 关注
转载 Pb文件过大,导致打不开
后来上网查了一下,发现是IDEA对能关联的文件大小做了限制,主要是为了保护内存,默认值为2500kb或者5000kb,对于一般的java文件也够用了,只是这里我用protocbuf生成的java文件过大,所以要对它这个默认的值进行修改。这使得我的代码其他地方无法对它进行调用,所以程序一运行,调用到它的地方就会报错,(因为我的这个代码是用protobuffer协议自动生成的java文件,比较大,大概有5M多)。最近在做一个项目的时候,出现了一个很奇怪的问题,我的java文件前面出现了一个奇怪的蓝色j,
2026-01-26 14:24:23
8
原创 android切换语言
首先需要在在中通过添加来声明你的应用支持RTL。👉它,也。1️⃣ 没有会发生什么?或默认没写(默认就是false写了会发生什么?
2025-12-30 11:02:31
235
原创 isAutoMirrored的使用
有些人这样使用发现没有用其实autoMirrored是给drawble使用的,不是给ImageView使用的,ImageView中都没有autoMirrored方法,所以要想使图片镜像。两种方式:2.自定义imagview,代码设置autoMirrored
2025-11-25 16:30:56
217
原创 WebSocket请求
协议:http://https://ws://wss://ftp://file://✅ 一、引入依赖✅ 二、定义 WebSocket 监听器✅ 三、创建并连接 WebSocket。
2025-07-24 19:33:59
502
原创 什么情况会导致栈溢出
因为从子线程切到主线程其实是相当于发送了一个message到主线程的消息池了,如果子线程无限制地调用一个主线程中耗时 1 秒的方法,会导致主线程消息队列严重阻塞、调用栈堆积,最终引发。加入一个连接一个socket,这个socket不停的收到消息,但是主线程的处理速度很慢会在成栈溢出吗?本质原因是主线程被同步阻塞,无法及时消费消息队列中的任务。这种情况才是真正的栈溢出。每次递归调用一个方法,它在。,栈帧就一个个堆上去,超过线程最大栈空间就。❌ 用递归、同步调用搞主线程“死循环”那什么情况会导致栈溢出呢?
2025-07-04 15:45:14
172
原创 flow的操作符号
方法去除重复方式场景举例过滤连续相同的值基础类型、data class根据字段值过滤对象只按id去重(自定义)全局唯一去重不管是否连续,都过滤重复distinctUntilChanged是提供新值和旧值给你自己比较的问:flow是一个冷流,也没有存储,他怎么判断这个发送的值是否和上次的相同。
2025-05-21 10:48:19
306
原创 Kotlin一些迷惑的语法
和如何写法是一样的,因为编译成java的时候,参数中是带有当前的对象的。疑惑点:为什么传入的方法是无参数的,但是为什么调用的时候传入值?
2025-05-20 13:57:04
505
原创 kotlin-协程(什么是一个协程)
可以也行,但不是全部,job只是管理了协程流程相关的功能,比如开启结束等,但是像协程的名字等是没有的。CoroutineScope是信息最多的,包含可以获取协程的调度器,job等,以及调用launch 和 async去启动一个新的协程,而。job.join() //当前的协程阻塞,等待job的协程结束后,再执行当前协程的代码。// ,的时候得使用job.start方法才会启动协程,才会调用block的代码。job.children //子协程的job对象。job.parent //父协程的job对象。
2025-05-12 09:42:08
376
原创 Flow原理
因为我们是使用flow方法返回的SafeFlow对象去调用的,所以我们看下SafeFlow的collect方法。SafeFlow是继承AbstractFlow的类,所以我们看这个类就行。接下来我们分析下collect方法。可以看见是一个方法,返回的是一个SafeFlow对象,然后把我们传入。再接着查看collectSafely方法,发现调用到了我们传入的闭包。SafeFlow的collectSafely方法才行。我们先看创建flow的方法。然后,这个对象提供一个方法。的传入到了这个对象中。
2025-04-28 23:28:35
690
原创 Retrofit的使用步骤
7. 配置 OkHttp 拦截器(可选),设置拦截器是通过设置自定义的。4. 创建 Retrofit 实例。5. 创建 API Service。如果需要日志输出,可以添加。3. 定义 API 接口。
2025-04-01 15:49:35
386
原创 Android studio无法查看源码
想要查看 sdk的源码的时候,发现没有办法查看,发现的是一个 class文件,而不是java文件。1、检查对应版本SDK API Sources是否下载。如果没有下载,下载下就可以。
2025-03-20 13:55:46
459
原创 android 快速定位当前页面
(3)查看当前栈顶的Activity的Fragment :adb shell dumpsys activity your.package.name。查看当前栈顶的Activity :adb shell dumpsys activity |查看帮助:adb shell dumpsys activity -h。
2025-02-21 16:51:26
919
原创 Gradle JDK 和项目JDK的区别
有什么区别呢?当你在build.gradle文件中设置sourceCompatibility和targetCompatibility为JavaVersion.VERSION_1_8时,你告诉编译器,你的Java源代码是按照Java 8的语法和特性来编写的,并且你希望编译出来的字节码是与Java 8兼容的。这就意味着你的应用可以在运行Java 8或更高版本的JVM上运行。
2025-02-17 14:51:57
339
原创 android 网络安全配置
允许明文流量:即允许通过 HTTP 协议进行网络通信(不加密)。信任的证书源:信任 Android 系统自带的证书以及用户自己安装的证书。
2025-02-14 18:11:42
1464
原创 android 的抓包工具
https://www.charlesproxy.com/latest-release/download.do charles
2025-02-14 10:21:49
692
原创 android的gradle
的一部分,它们的作用是让项目可以使用 Gradle 而无需提前在系统中安装 Gradle。这里有个gradlew很有用,因为这个可以在窗口中运行gradlew脚本。./gradlew -v ---查看当前的gradle版本信息。
2025-01-26 16:59:19
722
原创 Android的签名
是指通过哈希函数对任意长度的数据(二进制数据源)进行处理后生成的固定长度的输出值(哈希值)。消息摘要的主要目的是确保数据的完整性,即用来验证数据在传输或存储过程中是否被篡改。.JKS 是 Java KeyStore 的缩写,是 Java 平台下的一种密钥存储格式,里面存有公钥和私钥。还有android的打包流程。
2025-01-26 16:27:36
384
原创 android 的aab包
AAB (Android App Bundle) 是 Google 推出的新一代 Android 应用发布格式,用于取代传统的 APK 格式。AAB 的全称是 Android App Bundle,扩展名为 ,它并不是直接可以安装的文件,而是用于上传到 Google Play 的发布包。1. AAB 的核心特性动态交付 (Dynamic Delivery):更小的下载包:3. AAB 的工作原理当你上传 文件到 Google Play 后,Google Play 会对其进行处理:分拆资源和代码:动态生成适
2025-01-26 11:14:36
2479
原创 android studio生成jsk
文件(Java KeyStore)是 Android 开发中用于签名 APK 的密钥库文件。它包含用于签名的私钥和公钥,并保护其不被未授权使用。如何查看jks的信息呢?窗口中输入命令,前提是配置好java的环境变量。keytool -list -v -keystore 你的jks路径。红色的名字是自己写的,记得加后缀,标识的都是必须项。或者Android studio生成。keytool是jdk的工具。
2025-01-24 11:10:45
1163
原创 BuildConfig
Gradle 插件 7.0.0 开始,出于性能优化的考虑,默认情况下不再自动生成 BuildConfig 类。这是为了加快构建速度,特别是在大型项目中。所以如果我们需要主动生成。编译完buildConfig就会生成对应的信息。类,有几种方法可以重新启用它。如果需要配置一些信息。
2025-01-22 15:05:55
414
原创 The maximum compatible Gradle JVM version is 17.
这句话 “The maximum compatible Gradle JVM version is 17” 表明在你的项目构建环境中,Gradle 所能兼容的最高 Java 虚拟机(JVM)版本是 17。Gradle 本身是用 Java 和 Kotlin 编写的构建工具,它运行在 JVM 上。编写构建脚本,Gradle 都需要一个 JVM 来解析和执行这些脚本。(传统的 Gradle 构建脚本语言)还是。gradle的编译为什么会用到java呢?这个时候修改下本地的jdk版本就行。
2025-01-22 10:41:40
1889
原创 You need to use a Theme.AppCompat theme (or descendant) with this activity.
说明你的 Activity 正在使用需要支持库主题(如。)的组件,但你没有为它指定基于。
2025-01-21 19:12:53
2582
原创 getResources().getDimension引起的问题
getDimension()会自动把数值解析成xp单位,因为view的宽高本来接受的就是xp,所以不会变化,但是 setTextSize接受的单位默认是sp。相当于getDimension()把sp转成xp,会放大,setTextSize又会将转换后的值变成xp,又放大了。想着应该没问题吧,结果动态代设置的字体比xml中设置的大很多,而宽高确没变化。
2024-07-05 17:59:59
349
原创 Dialog的知识点
Dialog仅在在第一次启动时候会执行onCreate()方法(之后无论该Dialog执行Dismiss(),cancel(),stop(),Dialog都不会再执行onCreate()方法)。原文链接:https://blog.csdn.net/qizewei123/article/details/78232752。cancel() 是在点击BACK按钮或者Dialog外部时触发,然后依次执行onDismiss() 和 stop()。再次点击显示按钮,然后执行Dialog.dismiss() 方法。
2024-07-04 16:02:11
444
原创 android的surface
Surface 是Android系统中真正的画布,Activity上的所有UI都是在Surface 上完成绘制的,每一个Surface 对象都在SurfaceFlinger中有对应的图层(Layer),SurfaceFlinger 负责把这些Layer按需混合处理后输出到Frame Buffer中,再由Display设备(屏幕或显示器)把Frame Buffer里的数据呈现到屏幕上。在ViewRootImpl调用view的draw方法之前创建的。canvas怎么来的,canvas是由surface创建的。
2024-06-19 18:32:32
580
原创 HarmonyOS-5(style样式)
假如你要用textview的一些特有属性得用,这个有一个区别就是 @Extend装饰器只能用于全局的方法,不能用于组件内方法。但是style装饰器封装的属性只能是公共的属性。
2024-04-17 16:54:50
311
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅