- 博客(1360)
- 资源 (28)
- 收藏
- 关注
原创 Kotlin Daemon 简介
是 Kotlin 编译器的一个后台进程,旨在提高编译性能。它通过保持编译环境的状态来减少每次编译所需的启动时间,从而加快增量编译的速度。
2025-08-04 09:55:37
444
原创 【无标题】
执行生成的 crash.log的内容如下所示:08-01 02:26:57.634 22845 22885 D ANCHOR_DETAIL: | 缁撴潫鏃跺埢 : 175401521763408-01 02:26:57.644 22845 22845 D ANCHOR_DETAIL: All anchors were released锛?
2025-08-01 11:39:25
861
原创 Android 15的16kb设备适配,项目之前使用的是realm数据库(但是2024年9月就不更新了),如果改为谷歌官方的room数据库,那么旧app的realm数据库的本地数据如何迁移到room数
Android 15的16kb设备适配,项目之前使用的是realm数据库(但是2024年9月就不更新了),如果改为谷歌官方的room数据库,那么旧app的realm数据库的本地数据如何迁移到room数据库中,realm数据库是有自己的.realm存储文件deepseek回答:针对 Android 15 的 16KB 内存页适配及 Realm 到 Room 的数据库迁移,以下是专业迁移方案:数据结构差异性能敏感点阶段 2:数据迁移期(关键步骤)迁移流程图:具体实现:阶段 3:完全切换期在 中启用
2025-07-31 15:40:19
247
原创 ELF 文件 简介
deepseek回答:ELF(Executable and Linkable Format)是类 UNIX 系统(如 Linux、Android)中可执行文件、共享库、目标文件的核心格式标准。
2025-07-31 14:55:49
411
原创 Realm数据库的对象图存储 简介
│ iOS │ Objective-C/Swift │ 与CoreData无缝集成 │。│ 平台 │ 实现方式 │ 特性 │。• 延迟加载(Lazy Loading)与预加载(Eager Loading)可选。• 零拷贝数据访问(平均提升3倍读取速度)• 监控文件大小(推荐阈值:150MB)• 原子性写入(通过COW技术实现)• 控制对象层级深度(建议≤5层)• 适时冻结(freeze)对象。
2025-07-31 14:54:32
395
原创 realm数据库和sqlite数据库的区别
维度RealmSQLite适用场景高性能应用、实时同步需求、跨平台项目轻量级应用、系统内置兼容场景开发效率⭐⭐⭐⭐ (对象化操作)⭐⭐ (需手动处理SQL)扩展能力⭐⭐⭐⭐ (原生高级功能)⭐⭐ (依赖第三方库)资源占用⭐⭐ (体积较大)⭐⭐⭐⭐ (轻量)💡决策建议:追求开发效率与实时性能选Realm;需严格控制包体积或深度定制存储逻辑则考虑SQLite/Room。引用链接:1.1、Realm数据库介绍 - Lili的日常生活2.
2025-07-31 10:54:02
764
原创 realm数据库RealmObject的作用
数据结构允许开发者定义数据模型的结构,包括属性和数据类型。例如,可以通过继承来创建用户、产品等实体类。是 Realm 数据库中不可或缺的一部分,提供了高效、简洁的数据模型定义和操作方式,适合移动应用开发。
2025-07-31 10:17:46
225
原创 适配Android 15 的16kb page size如果自己编译依赖的第三方库,会不会有未知的问题?
适配Android 15 的16kb page size如果自己编译依赖的第三方库,会不会有未知的问题?
2025-07-30 16:40:53
235
原创 如果项目中引入的so库有问题,适配Android 15的16kb内存页设备的时候是不是要在运行时使用到so库的功能时才会报错?
如果项目中引入的so库有问题,适配Android 15的16kb内存页设备的时候是不是要在运行时使用到so库的功能时才会报错?
2025-07-30 14:26:17
936
原创 为什么谷歌官方提供的16 KB ELF 对齐脚本验证so库的 ELF 段正确对齐,但是运行时却崩溃
可以看到此时的 apk 对齐也是没有问题的,所以此时的运行问题可能更多在于 C++ 代码里的 mmap 或者 sysconf 等代码存在问题,例如写死了 4096 等硬编码。官方提供了一个 16 KB ELF 对齐脚本来验证共享库的 ELF 段是否正确对齐,如下脚本针对 GSYVideoPlayer 里的动态库进行校验后,输出却是比较意外。可以看到此时动态库是 ALIGNED 的,并且是 2**16 ,也就是 armv68a 的动态库此时的 ELF 对齐。
2025-07-30 11:24:34
294
原创 7月30日,微信官网最新版在Android 15系统16KB page size设备上崩溃
看报错log,是没有适配Android 15系统的16KB page size的原因。
2025-07-30 10:48:24
101
原创 验证设备是否使用 16 KB 环境:adb shell getconf PAGE_SIZE
【代码】验证设备是否使用 16 KB 环境:adb shell getconf PAGE_SIZE。
2025-07-29 17:02:12
100
原创 Android15适配问题汇总
https://developer.android.com/guide/practices/page-sizes?hl=zh-cn#cmakehttps://github.com/realm/realm-java/issues/7894https://jira.mongodb.org/browse/RJAVA-1264https://jira.mongodb.org/browse/RKOTLIN-1105
2025-07-29 16:36:41
102
原创 Realm数据库为什么这么火?
deepseek回答:Realm数据库自2014年发布以来持续受到开发者青睐,其火爆现象可从以下五个维度解析:• 对象驱动模型:直接操作持久化对象(如),消除ORM转换层• 响应式数据绑定:内置Live Object机制,实现UI自动更新(示例代码见下方)三、全栈同步生态构建功能模块技术实现性能指标设备间实时同步基于Operational Transform算法延迟<200ms云端数据湖MongoDB Atlas无缝集成支持PB级数据存储离线优先策略差分同步
2025-07-29 14:16:34
403
原创 dependencies {classpath “io.realm:realm-gradle-plugin } 这种通过引入插件的方式就能自动引入realm数据库
使用 Realm 插件的方式可以简化项目的依赖管理,减少手动配置的麻烦。确保在项目中正确配置插件后,Realm 数据库将会自动可用。
2025-07-29 10:12:16
191
原创 目前市面上有Android 16KB的手机吗
目前市面上还没有使用 16KB 页面大小的 Android 生产设备,但 Android 15 可以在 4KB 和 16KB 页面大小之间切换。在将页面大小从 4KB 改为 16KB 的过程中,Google发现系统性能提升了 5%~10%,但代价是内存使用量增加了约 9%。Google已在Android 15 中调整了 16KB 页面大小的兼容性,Google提供的所有操作系统二进制文件现在都是以 16KB 对齐,EROFS 和 F2FS 等文件系统也已准备好使用 16KB 页面大小。
2025-07-28 18:32:20
406
原创 mmkv适配了Android15的16kb page size的版本
mmkv适配了Android15的16kb page size的版本:在这里插入图片描述。
2025-07-28 15:38:40
139
原创 Android项目运行时报错 UnsatisfiedLinkError 是什么错误
19.[【错误记录】Android 应用配置第三方 so 动态库 ( /data/app/comxxx==/base.apk/lib/arm64-v8a]couldn‘t find “libx.so“ ) - 阿里云开发者社区](https://developer.aliyun.com/article/865411)
2025-07-28 11:46:15
351
原创 Android项目如果项目中使用的so库都是第三方的aar包里才有so库,那么Android studio是不是可以不用安装ndk?
是的,如果项目中使用的.so库完全来自第三方aar包(即库文件已预编译并包含在aar中),那么Android Studio无需安装NDK。Android项目如果项目中使用的so库全都是第三方的aar包里才有so库,那么Android studio是不是可以不用安装ndk?注意:如果项目后续需要修改或编译原生代码,则必须安装NDK;否则仅使用预编译库时,NDK并非必需。
2025-07-28 11:36:36
410
原创 Android 15设备默认还是4kb内存页吧,需要手动去设置里面切换为16kb才是进入16kb内存页的模式?
Android 15设备的默认内存页大小仍为4KB,用户或开发者需手动在系统设置(如开发者选项)中切换才能启用16KB模式。这一设计旨在为OEM和应用开发者提供过渡准备时间,避免强制升级导致兼容性问题、。Google Play已要求自2025年11月1日起,所有面向Android 15及以上设备的新应用和更新必须支持16KB页面大小,否则可能无法在兼容设备上正常运行、、。Android 15设备默认还是4kb内存页吧,需要手动去设置里面切换为16kb才是进入16kb内存页的模式?
2025-07-28 11:34:38
402
原创 Android studio的模拟器选择Android 15.0(16KB PAGE SIZE)镜像,运行时报错: java.lang.UnsatisfiedLinkError
该错误是由于Android 15的16KB内存页特性导致动态库(提交详细日志获取支持。
2025-07-28 11:18:12
809
原创 Android studio的模拟器如何启用 16 KB内存页
深度思考完成 用时61秒首先,用户的问题是:“Android studio的模拟器如何启用 16 KB内存页”,这是关于在Android Studio的模拟器中启用16KB内存页大小的配置。我需要从搜索结果中提取相关信息。搜索结果提供了关于Android适配16KB页面大小的信息,以及如何在设备上启用它。关键搜索结果:1:关于Android Studio配置的内容,提到了自定义VM选项和属性文件,但主要是关于性能优化,没有直接提到16KB内存页。
2025-07-28 10:44:39
560
原创 kotlin-gradle-plugin作用
deepseek回答: 是专为 Gradle 构建系统设计的官方插件,其核心作用是简化 Kotlin 项目在 Gradle 中的集成与构建流程。其主要功能和应用价值如下:引用链接:1.找不到kotlin-gradle-plugin - 腾讯云2.Kotlin版Gradle插件开发 - 优快云博客3.使用Kotlin构建Gradle插件的模板:kotlin-gradle-plugin-template - 优快云博客4.Android Gradle Plugin - 掘金开发者社区5.在ko
2025-07-28 10:44:24
710
原创 android应用适配Android15需要升级kotlin-gradle-plugin吗
Android Studio 工具(如 AGP Upgrade Assistant)可简化此迁移过程,但需测试 UI、权限和存储功能是否存在回归问题。,以兼容 Android Gradle 插件 (AGP) 和 Gradle 工具的更新要求。是的,适配 Android 15 通常需要升级。
2025-07-28 10:44:07
559
原创 Android 的16 KB内存页设备需要硬件支持吗,还是只需要手机升级到Android15系统就可以
Android 的16 KB内存页设备需要硬件支持吗,还是只需要手机升级到Android15系统就可以?deepseek回答:思考 3 秒思考过程好的,用户现在问的是Android的16 KB内存页设备是否需要硬件支持,还是只需要升级到Android 15系统就可以。这个问题需要结合Android系统的内存管理机制来回答。首先,内存页的大小通常是由硬件架构决定的,比如ARM的处理器可能支持不同的页大小。Android系统虽然可以在软件层面进行配置,但底层硬件的支持是必须的。
2025-07-25 18:07:49
961
原创 【无标题】
是不是即使项目本身没有so库,但项目依赖的aar文件中有so库时也会起到过滤so库的作用?deepseek回答:思考 3 秒思考过程好的,我现在需要回答用户关于Gradle NDK配置的问题。用户的问题是,当在build.gradle中配置了ndk的abiFilters,即使项目本身没有so库,但依赖的aar中包含so库时,这个配置是否仍然会过滤so库。首先,我需要回忆一下Android构建过程中NDK和ABI过滤的工作原理。
2025-07-25 17:55:38
579
原创 Android 15中的16KB大页有何优势?
指标提升幅度影响场景系统性能5%-10%整体运行效率应用启动时间平均3.16%高频应用体验相机冷启动最高6.60%拍摄响应速度功耗降低平均4.56%设备续航注:开发者需通过和NDK 28+适配原生代码,避免硬编码4KB内存操作。引用链接:1.Android 15 硬核升级:16KB 页面大小成刚需,性能、续航双提升背后的适配要点 - 强哥叨逼叨2.针对16 KB 页面大小进行优化 | Android Open Source Project - Android3.
2025-07-25 17:48:05
694
原创 Android系统中的4KB内存页简介
当物理内存不足时,系统将不活跃的4KB内存页交换到磁盘(如Swap分区或zRAM),释放物理内存供急需的进程使用。例如图片浏览应用滑动时,后台图片数据页会被换出。应用程序访问内存时,系统将虚拟地址按4KB页框映射到物理内存或磁盘空间,实现进程间的内存隔离和安全访问。应用申请内存时,系统按4KB粒度分配物理页帧。即使应用仅需少量内存(如1KB),仍会占用整页。,单次内存操作效率更高,减少缺页中断,提升性能并降低功耗。但4KB页仍在兼容旧设备中发挥作用。申请大堆内存,但需权衡GC效率。
2025-07-25 17:44:03
887
原创 compileSdkVersion和targetSdkVersion可以不一样的版本吗
【代码】compileSdkVersion和targetSdkVersion可以不一样的版本吗。
2025-07-25 15:41:17
882
原创 谷歌官网app适配Android 15的官方指南
deepseek回答:谷歌官网提供了完整的 Android 15 应用适配官方指南,涵盖兼容性测试工具、API迁移规范及商店审核要求,核心内容如下:访问 Android 15 开发者网站目标API要求隐私与安全变更引用链接:1.Android-适配-03-Android15(35)适配 - 掘金开发者社区2.Android出海实战:Android15适配保姆级教程! - 掘金开发者社区3.获取Android 15 | Android Developers - Android4.Other Pla
2025-07-25 14:57:56
696
原创 android app适配Android 15可以在Android studio自带的模拟器上进行吗,还是说必须在真机上进行
deepseek回答:Android App适配Android 15,无需强制依赖真机测试。
2025-07-25 14:41:25
463
原创 Android Studio 自带的官方模拟器,ABI这一列是x86_64,xABI这一列是arm64-v8a
Android Studio 自带的官方模拟器(Android Emulator)选择镜像时页面如上图,ABI这一列是x86_64,xABI这一列是arm64-v8a,区别是啥。xABI列显示arm64-v8a:表示目标设备的ABI(应用二进制接口)为arm64-v8a,这是基于ARM架构的64位版本,广泛用于智能手机和平板等设备。ABI列显示x86_64:表示当前选择的镜像支持x86_64架构,这种架构常用于Intel和AMD的处理器,适合在PC上模拟Android应用。
2025-07-25 11:37:20
392
原创 Android studio自带的Android模拟器都是x86架构的吗,需要把arm架构的app翻译成x86指令?
架构支持ARM 应用兼容方案性能表现官方模拟器主要提供x86/x86_64镜像通过Houdini 动态翻译ARM 指令x86 镜像性能接近原生,ARM 翻译后损耗显著ARM 镜像可选但较少使用直接运行 ARM 应用无需翻译性能较差,仅建议特殊场景使用因此,开发者应优先选择 x86 镜像,仅在遇到翻译兼容性问题时才考虑 ARM 镜像或其他解决方案。引用链接:1.在x86 架构的 Windows 电脑上安卓模拟器和虚拟机运行的Windows系统存在的核心区别?- 红客科技2.
2025-07-25 11:26:23
723
原创 so库是编译成的二进制文件?
deepseek回答:so库是被编译成的二进制文件,并针对特定的应用程序二进制接口(ABI)进行优化,以确保在不同硬件架构上兼容运行12。以下是关键细节:📦 so库的编译本质二进制文件形式:so库(动态链接库)本质是预编译代码的二进制集合,通过编译器(如Android NDK)将C/C++源码转换为可直接执行的机器码文件(.so格式)2。例如:编译后的.so文件包含特定指令集架构(如ARM或x86)的二进制指令。这种形式避免了源码重复编译,可直接被程序调用执行4。ABI的核心作用:A
2025-07-25 11:09:48
792
原创 目前市面上arm64-v8a、armeabi-v7a设备的市占率有多少?为什么x86架构的手机越来越少?
deepseek回答:当前全球范围内,,远超其他架构版本。
2025-07-25 10:47:06
1013
1
原创 app的ndk配置,在build.gradle文件中只需要配置arm架构的cpu就可以了吗,不需要x86?
架构类型必要性适用场景arm64-v8a✅ 必需主流 64 位手机(性能最优)✅ 建议兼容旧款 32 位 ARM 设备x86️ 可选Android 模拟器调试x86_64mips❌ 无需市场份额极低,新设备已弃用。
2025-07-25 10:29:24
1022
原创 ndk { setAbiFilters([‘armeabi-v7a‘, “arm64-v8a“]) }
deepseek回答:好的,我现在需要解释build.gradle中这段ndk配置代码的含义。首先,用户提供的代码片段是:ndk {我的第一步是理解每个部分的作用。ndk块在Android构建文件中用于配置Native Development Kit相关的设置,这通常涉及本地代码(如C/C++)的编译和打包。接下来,setAbiFilters方法的作用是过滤ABI(应用二进制接口)。
2025-07-25 10:17:44
754
A Kafka-based Ordering Service for Fabric
2019-01-11
WindowManagerService相关类图.eddx
2020-03-20
WindowManagerService相关类图.eddx
2020-03-19
Binder.rar
2020-03-19
WindowManagerService相关类图.eddx
2020-03-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人