知识科普:数据管理各种数据类型是什么意思?

文章正文
发布时间:2018-01-23 02:23

移动互联网应用中,数据管理非常重要,那么首先需要了解数据管理的一些基本概念!

IDFA:是苹果IOS6开始新增的广告标识符,英文全称是Identifier for Advertising,用于给开发者追踪广告效果用的,可以理解为iPhone用户的临时身份证,同一个设备上的应用获取的IDFA是相同的,可通过设置更换,IOS10开始提供禁止广告追踪功能,用户勾选这个功能后,应用程序将无法读取设备的IDFA;是目前苹果生态的主要标识,但也有可能造成同一用户的重复计算;由于idfa会出现取不到的情况,故绝不可以作为业务分析的主id,来识别用户

UDID:全称是Unique Device Identifier,顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和数字组成。在很多需要限制一台设备一个账号的应用中经常会用到。在iOS5中可以获取到设备的UDID,后来被苹果禁止了;

UUID:英文全称是Universally Unique Identifier,中文意思是通用唯一识别码。它是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。这样,每个人都可以建立不与其它人冲突的 UUID。在此情况下,就不需考虑数据库建立时的名称重复问题。苹果公司建议使用UUID为应用生成唯一标识字符串;

MAC Address:用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节(48位)。其中,前三个字节是由IEEE的注册管理机构 RA负责给不同厂家分配的代码(高位24位),也称为“编制上唯一的标识符” (Organizationally Unique Identifier),后三个字节(低位24位)由各厂家自行指派给生产的适配器接口,称为扩展标识符(唯一性)。MAC地址在网络上用来区分设备的唯一性,接入网络的设备都有一个MAC地址,他们肯定都是不同的,是唯一的。一部iPhone上可能有多个MAC地址,包括WIFI的、SIM的等,但是iTouch和iPad上就有一个WIFI的,因此只需获取WIFI的MAC地址就好了,也就是en0的地址。

MAC地址就如同我们身份证上的身份证号码,具有全球唯一性。这样就可以非常好的标识设备唯一性,类似苹果设备的UDID号,通常的用途有:1)用于一些统计与分析目的,利用用户的操作习惯和数据更好的规划产品;

2)作为用户ID来唯一识别用户,可以用游客身份使用app又能在服务器端保存相应的信息,省去用户名、密码等注册过程。

使用Mac地址生成设备的唯一标识主要分三种:

1、直接使用“MAC Address”

2、使用“MD5(MAC Address)”

3、使用“MD5(Mac Address+bundle_id)”获得“机器+应用”的唯一标识(bundle_id是应用的唯一标识)在iOS7之后,如果请求Mac地址都会返回一个固定值

#import <AdSupport/AdSupport.h> NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];

IDFV:英文全称是identifierForVendor,

ndor标示符,适用于对内:例如分析用户在应用内的行为等。

是给Vendor标识用户用的,每个设备在所属同一个Vender的应用里,都有相同的值。其中的Vender是指应用提供商,但准确点说,是通过BundleID的DNS反转的前两部分进行匹配,如果相同就是同一个Vender,例如对于com.somecompany.appone,com.somecompany.apptwo这两个BundleID来说,就属于同一个Vender,共享同一个idfv的值。和idfa不同的是,idfv的值是一定能取到的,所以非常适合于作为内部用户行为分析的主id,来标识用户,替代OpenUDID。

注意:如果用户将属于此Vender的所有App卸载,则idfv的值会被重置,即再重装此Vender的App,idfv的值和之前不同。

代码:NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString]

OPEN UDID:

每台iOS设备的OpenUDID是通过第一个带有OpenUDID SDK包的App生成,如果你完全删除全部带有OpenUDID SDK包的App(比如恢复系统等),那么OpenUDID会重新生成,而且和之前的值会不同,相当于新设备;

优点是没有用到MAC地址;不同设备能够获取各自唯一的识别码,保证了唯一性,可以用于以往UDID的相关用途;从代码分析OpenUDID的获取,识别码获取方便并且保存谨慎。缺点是当将设备上所有使用了OpenUDID方案的应用程序删除,且设备关机重启,xcode彻底清除并重启,重装应用程序去获取OpenUDID,此时OpenUDID变化,与之前不一样了,所有OpenUDID应用卸载后,由UIPasteboard保存的数据即被清除,重装故会重新获取新的OpenUDID。

那么当因为用户干预或者恶意程序,致使UIPasteboard数据清除,从而导致OpenUDID被删除,重装也会获取新的OpenUDID。

OpenUDID生成唯一识别码的代码:

unsigned char result[16];

constcharchar *cStr = [[[NSProcessInfo processInfo] globallyUniqueString] UTF8String];

CC_MD5( cStr, strlen(cStr), result );

_openUDID = [NSString stringWithFormat:

@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%08x"

result[0], result[1], result[2], result[3],

result[4], result[5], result[6], result[7],

result[8], result[9], result[10], result[11],

result[12], result[13], result[14], result[15],

arc4random % 4294967295

IMEI:(International Mobile Equipment Identity)是国际移动设备识别码的缩写。俗称“手机串号”、“手机串码”、“手机序列号”,用于在GSM移动网络中识别每一部独立的手机,相当于手机的身份证号码。IMEI码适用于GSM和WCDMA制式的移动电话和铱星卫星电话,而CDMA手机采用MEID码,与IMEI码有所区别。全球每部通过正规渠道销售的GSM手机均有唯一的IMEI码。IMEI码由GSMA协会统一规划,并授权各地区组织进行分配,在中国由工业和信息化部电信终端测试技术协会(TAF)负责国内手机的入网认证,其他分配机构包括英国BABT、美国CTIA等

MEI由15位数字组成:

1、前6位数(TAC,Type Approval Code)是"型号核准号码",一般代表机型。

2、接着的2位数(FAC,Final Assembly Code)是"最后装配号",一般代表产地。

3、之后的6位数(SNR)是"串号",一般代表生产顺序号。

4、最后1位数(SP)通常是"0",为检验码,目前暂备用。

IMEI码具有唯一性,贴在手机背面的标志上,并且读写于手机内存中。它也是该手机在厂家的"档案"和"身份证号"

MD5:数据加密方法

文章评论
—— 标签 ——
首页
评论
分享
Top