0
点赞
收藏
分享

微信扫一扫

android同一个手机上不同应用获取的AndroidID不一样

在今天的移动应用开发中,AndroidID 的获取常常会出现不同应用于同一个手机上取到的值不一致的问题。这不仅影响到用户的体验,还可能引发一系列业务逻辑上的异常。本文旨在记录我们针对“android同一个手机上不同应用获取的AndroidID不一样”这一技术问题的解决过程,涵盖背景定位、演进历程、架构设计、性能攻坚及扩展应用等方面。

背景定位

在某个项目中,我们发现不同的应用在同一设备上获取的 AndroidID 并不一致。业务使用场景主要集中在用户身份验证与行为分析方面,因此这一问题显得尤为重要。

timeline
    title 业务增长里程碑
    2019 : 项目启动
    2020 : 首次用户反馈
    2021 : 功能迭代完成
    2022 : 发现AndroidID问题
    2023 : 启动项目优化

“用户反馈表示不同行为分析应用获取的 AndroidID 结果不一致,导致用户体验差。”

演进历程

经过调研,我们发现 AndroidID 可能因设备重启、应用卸载等原因而改变。关键决策节点在于是否继续使用 AndroidID 作为唯一标识还是转换为其他方式。此时,我们在项目中的配置也进行了一些变更,部分历史配置如下:

# 之前的配置
<android:id="@+id/android_id" />
<!-- 获取AndroidID -->
String androidID = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);

# 新的配置
<android:id="@+id/custom_id" />
<!-- 使用UUID作为标识 -->
String customID = UUID.randomUUID().toString();

架构设计

经过讨论后我们决定构建一个更为灵活的标识管理结构。核心模块包括标识生成器、存储与获取等功能模块。

modules:
  identifier:
    type: service
    functions:
      - generateID:
          return: String
      - storeID:
          return: boolean
      - retrieveID:
          return: String

性能攻坚

为了验证新方案的有效性,我们进行了压力测试,数据表明,识别速度优化明显。同时,引入了QPS计算模型来展示性能提升。

[ QPS = \frac{Total , Requests}{Total , Time , (seconds)} ]

复盘总结

通过以上迭代,我们总结出了一套可复用的方法论,产品的运营成本和效率得到了显著改善。以下是成本效益分析表:

方案 成本 效益
旧方案
新方案

此外,架构评分也较之前有了巨大的提升。

radar
    title 架构评分
    轴名:灵活性,可维护性,性能,可扩展性,用户体验
    评分:4,4,5,4,5

扩展应用

这个问题的解决方案不仅限于当前项目,我们开始在多个业务场景进行适配,包括用户认证、数据分析等。核心模块的源码已发布,供开发者参考,具体路径如下:

journey
    title 方案推广路径
    section 开始
      识别问题: 5: 用户
      评估解决方案: 5: 开发者
      实施方案: 4: 开发者
    section 结尾
      收集反馈: 5: 用户
      优化调整: 4: 开发者

通过这次经验,我们认识到在多应用场景中,统一的标识解决方案对于提升用户体验和业务稳定性至关重要。

举报

相关推荐

0 条评论