今日bug:map.put()

代码:

在这里插入图片描述结果:
上面的代码正常,下面attributeData的value值为null

结论:
map的put()方法的返回值为oldValue(oldValue可能为null)

补充:
java.util.HashSet#add 利用map.put()来使用
在这里插入图片描述

tips:
Map.getOrDefault()方法没有值则返回默认值(第二个参数)
Map.computeIfAbsent()方法没有值则返回默认值(第二个参数),同时塞入map中

bug产生原因:
忽略了put的value值是计算出来的返回值。就像无参构造一样。
无参构造表面上并无返回值,这是java的一种约定,但是new 类名()创建对象的时候会返回一个地址值。实际上java自身默认有处理构造方法的返回值

07-21 15:54:11.676343 1951 2035 I ActivityManager: Start proc 6831:com.android.chrome:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:1/u0ai0 for {com.android.chrome/org.chromium.content.app.SandboxedProcessService0:1} 07-21 15:54:11.676418 1951 2035 W ActivityManager: Slow operation: 285ms so far, now at startProcess: starting to update pids map 07-21 15:54:11.676506 1951 2035 I ActivityManager: mPidMap put ProcessRecord{57d5460 6831:com.android.chrome:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:1/u0a156i-9000} 07-21 15:54:11.676717 1951 2035 W ActivityManager: Slow operation: 285ms so far, now at startProcess: done updating pids map 07-21 15:54:11.711796 6831 6831 D ActivityThread: new ActivityThread and attach 07-21 15:54:11.725678 6831 6831 D ActivityThread: attachApplication 07-21 15:54:11.733462 1951 1997 D ActivityTaskManagerServiceExtImpl: preBindApplication record is null 07-21 15:54:11.740205 6831 6839 D ActivityThread: bindApplication:com.android.chrome:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:1 07-21 15:54:11.748626 6831 6831 D ActivityThread: handle BIND_APPLICATION 07-21 15:54:11.786799 6831 6831 E OplusCustomizePackageManager: mIOplusCustomizePackageManagerService is null 07-21 15:54:11.788128 6831 6831 E OplusCustomizePackageManager: mIOplusCustomizePackageManagerService is null 07-21 15:54:11.789478 6831 6831 E OplusCustomizePackageManager: isOplusCertificatePackage Errorjava.lang.NullPointerException: Attempt to invoke interface method 'boolean android.os.customize.IOplusCustomizePackageManagerService.isOplusCertificatePackage(java.lang.String)' on a null object reference 07-21 15:54:11.824288 6831 6831 D ResourcesManagerExtImpl: applyConfigurationToAppResourcesLocked app.getDisplayId() return callback.displayId:-1 07-21 15:54:11.873694 6831 6831 D ActivityThread: finishAttachApplication
最新发布
07-22
你提供的这段日志属于 **Android 系统运行时日志**,具体是 **系统在启动某个应用组件(这里是 Chrome 浏览器的沙盒进程)时的 ActivityManager 和 ActivityThread 的日志输出**。 --- ### 🧩 日志内容解析 #### ✅ 1. `ActivityManager` 日志 ``` Start proc 6831:com.android.chrome:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:1/u0a156i-9000 for ... ``` - 表示系统正在启动一个新的进程,PID 为 `6831`。 - 启动的是 Chrome 浏览器的一个沙盒进程(用于渲染网页内容)。 - `u0a156i-9000` 表示应用的用户 ID 和实例标识。 ``` Slow operation: 285ms so far, now at startProcess: starting to update pids map ``` - 表示启动进程的操作耗时较长(285ms),系统正在更新 PID 映射表。 - 这是性能监控的一部分,用于检测系统卡顿。 ``` mPidMap put ProcessRecord{...} ``` - 表示系统已将新进程信息加入 `mPidMap`,即进程记录表。 #### ✅ 2. `ActivityThread` 日志 ``` new ActivityThread and attach attachApplication bindApplication handle BIND_APPLICATION finishAttachApplication ``` - 这些是应用进程启动后,主线程(`ActivityThread`)初始化并绑定应用上下文的过程。 - `bindApplication` 是系统将应用信息(如 ApplicationInfo、ClassLoader 等)传递给应用进程的关键步骤。 #### ⚠️ 3. `OplusCustomizePackageManager` 错误 ``` E OplusCustomizePackageManager: mIOplusCustomizePackageManagerService is null E OplusCustomizePackageManager: isOplusCertificatePackage Errorjava.lang.NullPointerException: ... ``` - 这是 **OPLUS 定制 ROM** 中的包管理服务相关错误。 - 表示系统尝试调用一个接口 `IOplusCustomizePackageManagerService`,但该接口为 `null`,导致空指针异常。 - 可能原因: - OPLUS 定制服务未正确初始化。 - 应用签名验证失败或服务未加载。 - **是否严重**:如果是偶发且应用能正常运行,可暂时忽略;若频繁出现,可能导致应用行为异常。 --- ### 📌 日志在系统流程中的位置 这段日志出现在: ``` SystemServer 启动 ↓ PackageManagerService、ActivityManagerService 初始化 ↓ 用户点击启动 Chrome ↓ AMS(ActivityManagerService)请求启动沙盒进程 ↓ Zygote fork 新进程 ↓ 【你提供的日志】 ``` --- ### 🛠️ 排查建议 1. **检查 Chrome 是否正常运行**: - 如果浏览器能正常打开网页,说明这个错误是偶发的,可以忽略。 2. **查看完整日志上下文**: ```bash logcat -d > full_logcat.log grep -A 20 "OplusCustomizePackageManager" full_logcat.log ``` 3. **确认 OPLUS 服务是否正常加载**: - 可尝试重启设备或更新系统。 4. **检查是否是 ROM Bug**: - 如果是刷机 ROM,可能是 ROM 本身的问题。 --- ### ✅ 总结 | 模块 | 日志类型 | 是否关键 | |------|----------|----------| | `ActivityManager` | 应用启动流程日志 | 是 | | `ActivityThread` | 应用进程初始化 | 是 | | `OplusCustomizePackageManager` | OPLUS 定制服务错误 | 可能影响特定功能 | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值