[转] 浅谈移动端设备标识码:DeviceID、IMEI、IDFA、UDID和UUID

【心路历程】
最近刚好在思考工作中统计数据所用的标识码产生的数据误差到底有多大,借此机会几番搜索资料+请教大神,整理出此文。

因为自己是产品经理,所以出发点是整理知识点、理解个大概、知道什么不能用、什么标识是靠谱的,并不研究太深入。毕竟非专业开发,有时候若了解知识点太深入,反倒会更困惑(关联知识点太多)。即使研究清楚了,工作中碰到和自己研究相悖的情况,也不好丢个文档告诉开发应该怎么做(除非很熟,但次数多了也伤感情)。

此外,不同公司、不同开发可能对同一个词的释义/实现方式有略微不同,但基本上是这样。
欢迎大家指正~

【先说结论】
UDID是移动端相对最靠谱的设备标识码,不论Android或iOS。

【名词释义】

  • Device ID:设备ID。
  • IMEI:International Mobile Equipment Identity,国际移动设备身份码的缩写。是由15位数字组成的“电子串号”,它与每台手机一一对应,每个IMEI在世界上都是唯一的。
  • IDFA:Identifier For Advertising,iOS独有的广告标识符。
  • UDID:Unique Device Identifier,唯一设备标识码。
  • UUID:Universally Unique Identifier,通用唯一识别码。目前最广泛应用的UUID,是微软公司的全局唯一标识符GUID。其目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。

【再说过程】
名词释义是不是看得一脸懵逼?莫慌,下图介绍了各个设备标识码的区别,以及目前的情况。

点击图片查看清晰大图

Android设备标识码

  1. device ID。
    又叫设备ID。可以用系统提供的TelephonyManager服务来获取,具有唯一性。其中又包括IMEI和MEID/ESN。
  2. IMEI:GSM设备返回的,并且是写在主板上的,重装APP不会改变IMEI。Android 6.0以上系统需要用户授予read_phone_state权限,如果用户拒绝就无法获得。
  3. mac地址:硬件标识符,包括WiFi mac地址和蓝牙mac地址。Android 6.0之后被禁止,若获取则会被判定为有害应用。
  4. MEID/ESN:CDMA设备返回的,一般不使用。
  5. UDID:用来标示设备的唯一性。获取UUID后,写入.so文件生成UDID。即使APP重装,值也不变,除非root手机(普通用户做不到)
  6. UUID:APP重装后会改变。

iOS设备标识码

  1. device ID。
  2. IMEI:iOS 5 之后被禁止。写在主板上,重装APP不会改变。
  3. IDFA:于iOS 6 时面世,可以监控广告效果,同时保证用户设备不被APP追踪的折中方案。可能发生变化,如系统重置、在设置里还原广告标识符。用户可以在设置里打开“限制广告跟踪”。
  4. mac地址:硬件标识符,包括WiFi mac地址和蓝牙mac地址。iOS 7 之后被禁止(同时禁止的还有OpenUDID)。
  5. UDID:用来标示设备的唯一性 。iOS 6 之后被禁止获取系统原生的UDID,但可以通过uuid,写入到钥匙串中,从而获得自定义的UDID(非系统原生),即使用户重装APP,只要每次都取这个钥匙串返回,就是不变的。
  6. UUID:APP重装后会改变。

【总结】
若想用于数据统计,使用UDID是最靠谱的。

作者:FlaminEcho
链接:https://www.jianshu.com/p/38f4d1a4763b
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文地址:https://www.cnblogs.com/chris-oil/p/12290191.html

时间: 2024-10-11 06:08:56

[转] 浅谈移动端设备标识码:DeviceID、IMEI、IDFA、UDID和UUID的相关文章

浅谈移动端的自适应问题——响应式、rem/em、利用Js动态实现移动端自适应

随着3G的普及,越来越多的人使用手机上网.移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?本篇文章将讲述自适应网页设计的概念和方法,使网页开发人员维护同一个网页代码,即可使网站在多种设备上具有更好的阅读体验.本文详细介绍了自适应网页的实现方法,希望能给迷惑的你带来帮助. 一. 在HTML的头部加入meta标签 在HTML的头部,也就是head标签中增加meta标签,告诉浏览器网页宽度等于设备屏幕宽度,且不进行缩放,

浅谈移动端开发页面

之前介绍一篇文章是:响应式web实战总结 已经介绍了一些知识点,这里就不多介绍了:我们这边来了解下如何使用媒体查询写不同的css样式:针对响应式web设计开发,使用媒体查询来适应不同的手机屏幕样式开发时,我们需要写不同的样式,为此我们来分享下我个人开发响应式web页面的经验:针对目前手机的独立像素有320,360,384,400,还有iphone6+是414的独立像素,因此我们只需要针对目前这几种匹配即可:如下: 针对手机独立像素是360 ~399等屏幕的宽度 /* * 但是边距 字体大小等还是

浅谈 MISC杂项设备

在虚拟机的 Ubuntu 系统上,如下图所示,使用命令"cat /proc/misc",可以查看到 PC 机 Ubuntu 系统的杂项设备. 启动开发板,在超级终端中输入命令"cat /proc/misc"也可以查看对应的杂项设备. 前面介绍过主设备号只有 256 个,设备又非常多,所以引入了子设备号. 其中杂项设备的主设备号是 10,在任何 Linux 系统中它都是固定的. 一般将 Linux 驱动分为字符设备.块设备.网络设备,但是这个分类不能包含所有的设备,

浅谈移动端rem的用法

一 什么是rem? “font size of the root element 这是w3c的定义 也就是说是相对于根节点(html节点)的字体大小的单位. 目前主流的浏览器基本都支持rem这个单位,大部份的默认字体单位是16px. 图片摘自 http://caniuse.mojijs.com/Home/Html/item/key/rem/index.html  二 简单应用. 既然确定在各个主流浏览器都能食用的话,我们就放心大胆在移动端进行开发了. 举个例子说明 html{ font-size

浅谈移动端中的视口(viewport)

在 PC 端,视口指的是浏览器的可视区域,其宽度和浏览器窗口的宽度保持一致.在 CSS 标准文档中,视口也被称为初始包含块,它是所有 CSS 百分比宽度推算的根源,给 CSS 布局限制了一个最大宽度. 而移动端则较为复杂,它涉及到三个视口:布局视口(Layout Viewport).视觉视口(Visual Viewport)和理想视口(Ideal Viewport). 本文主要讨论移动端中的视口. 1. 基本概念 1.1 两种像素 像素是计算机屏幕中显示特定颜色的最小区域.屏幕中的像素越多,同一

浅谈移动端布局问题

移动端推广速度快,效果好,越来越多的企业,商家开始重视移动站的建设和移动页面(h5)的制作.随着移动页面的玩法越来越多,对前端技术的要求也会越来越高.选择合适的布局,是写好移动页面的第一步.今天我们就来谈谈移动端的布局问题.为什么移动端布局如此混乱?这是由多方的原因造成的. css这套技术系统本身十分混乱,基本上可以说毫无规律可言,依赖于技术人员的熟练程度而不是逻辑更多一些:2.css历经了多个时代的升级,每一次升级之后,新的技术标准和旧的基本上没有任何关联.比如:table布局,div+css

开园子啦(浅谈移动端以及h5的发展)

一.前言 一直以来都梦想着写几篇博客,忙于工作一直也没有抽出时间来写一下.看看大熊君.小v君等都在努力写博客,我这个不太善于言表的少年,也是在忍不住了.否则会被人家拉下更远.先简单介绍一下自己,目前我是一个前端工程师,就职于某化妆品电商,其实大家一猜就知道是哪个公司啦.就是股票跌得比较严重的公司,所以领导的火气多比较大.公司一直以来也比较忙,各种活动接踵而至,可就苦了我们这帮程序猿.废话不说,先聊聊打算写博客的内容.也希望大家关注.给我提多多意见,一起成长.一起学习. 二.关注的博客 目前比较关

浅谈iOS7 AVFoundation 二维码扫描

iOS7,AVFoundation中现在已经内置支持一维和二维码的扫瞄,iOS6及之前的想要扫瞄二维码,还是需要添加第三方库ZXing和ZBar.ZBar生成二维码:http://blog.csdn.net/cafei111/article/details/8924297先添加AVFoundation.framework#import <AVFoundation/AVFoundation.h>@interface QRcodeViewController :UIViewController&l

浅谈企业网络安全设备之数据安全防护篇

此贴介绍的设备,均为数据安全防护类产品,与之前网络安全防护设备侧重点不同,之前侧重点在于整体的网络,而此贴所以介绍的安全设备更侧重数据安全. (1) 网闸      定义:全称安全隔离网闸.安全隔离网闸是一种由带有多种控制功能专用硬件在电路上切断网络之间的链路层连接,并能够在网络间进行安全适度的应用数据交换的网络安全设备 功能:主要是在两个网络之间做隔离并需要数据交换,网闸是具有中国特色的产品. 部署方式:两套网络之间 防火一般在两套网络之间做逻辑隔离,而网闸符合相关要求,可以做物理隔离,阻断网