【心路歷程】
最近剛好在思考工作中統(tǒng)計(jì)數(shù)據(jù)所用的標(biāo)識(shí)碼產(chǎn)生的數(shù)據(jù)誤差到底有多大,借此機(jī)會(huì)幾番搜索資料+請(qǐng)教大神善涨,整理出此文窒盐。
因?yàn)樽约菏钱a(chǎn)品經(jīng)理,所以出發(fā)點(diǎn)是整理知識(shí)點(diǎn)躯概、理解個(gè)大概登钥、知道什么不能用畔师、什么標(biāo)識(shí)是靠譜的娶靡,并不研究太深入。畢竟非專業(yè)開發(fā)看锉,有時(shí)候若了解知識(shí)點(diǎn)太深入姿锭,反倒會(huì)更困惑(關(guān)聯(lián)知識(shí)點(diǎn)太多)。即使研究清楚了伯铣,工作中碰到和自己研究相悖的情況呻此,也不好丟個(gè)文檔告訴開發(fā)應(yīng)該怎么做(除非很熟,但次數(shù)多了也傷感情)腔寡。
此外焚鲜,不同公司、不同開發(fā)可能對(duì)同一個(gè)詞的釋義/實(shí)現(xiàn)方式有略微不同放前,但基本上是這樣忿磅。
歡迎大家指正~
【先說結(jié)論】
UDID是移動(dòng)端相對(duì)最靠譜的設(shè)備標(biāo)識(shí)碼,不論Android或iOS凭语。
【名詞釋義】
- Device ID:設(shè)備ID葱她。
- IMEI:International Mobile Equipment Identity,國際移動(dòng)設(shè)備身份碼的縮寫似扔。是由15位數(shù)字組成的“電子串號(hào)”吨些,它與每臺(tái)手機(jī)一一對(duì)應(yīng),每個(gè)IMEI在世界上都是唯一的炒辉。
- IDFA:Identifier For Advertising豪墅,iOS獨(dú)有的廣告標(biāo)識(shí)符。
- UDID:Unique Device Identifier黔寇,唯一設(shè)備標(biāo)識(shí)碼但校。
- UUID:Universally Unique Identifier,通用唯一識(shí)別碼啡氢。目前最廣泛應(yīng)用的UUID状囱,是微軟公司的全局唯一標(biāo)識(shí)符GUID术裸。其目的是讓分布式系統(tǒng)中的所有元素,都能有唯一的辨識(shí)信息亭枷,而不需要通過中央控制端來做辨識(shí)信息的指定袭艺。
【再說過程】
名詞釋義是不是看得一臉懵逼?莫慌叨粘,下圖介紹了各個(gè)設(shè)備標(biāo)識(shí)碼的區(qū)別猾编,以及目前的情況。
Android設(shè)備標(biāo)識(shí)碼
- device ID升敲。
又叫設(shè)備ID答倡。可以用系統(tǒng)提供的TelephonyManager服務(wù)來獲取驴党,具有唯一性瘪撇。其中又包括IMEI和MEID/ESN。 - IMEI:GSM設(shè)備返回的港庄,并且是寫在主板上的倔既,重裝APP不會(huì)改變IMEI。Android 6.0以上系統(tǒng)需要用戶授予read_phone_state權(quán)限鹏氧,如果用戶拒絕就無法獲得渤涌。
- mac地址:硬件標(biāo)識(shí)符,包括WiFi mac地址和藍(lán)牙m(xù)ac地址把还。Android 6.0之后被禁止实蓬,若獲取則會(huì)被判定為有害應(yīng)用。
- MEID/ESN:CDMA設(shè)備返回的吊履,一般不使用安皱。
- UDID:用來標(biāo)示設(shè)備的唯一性。獲取UUID后率翅,寫入.so文件生成UDID练俐。即使APP重裝,值也不變冕臭,除非root手機(jī)(普通用戶做不到)
- UUID:APP重裝后會(huì)改變腺晾。
iOS設(shè)備標(biāo)識(shí)碼
- device ID。
- IMEI:iOS 5 之后被禁止辜贵。寫在主板上悯蝉,重裝APP不會(huì)改變。
- IDFA:于iOS 6 時(shí)面世托慨,可以監(jiān)控廣告效果鼻由,同時(shí)保證用戶設(shè)備不被APP追蹤的折中方案。可能發(fā)生變化蕉世,如系統(tǒng)重置蔼紧、在設(shè)置里還原廣告標(biāo)識(shí)符。用戶可以在設(shè)置里打開“限制廣告跟蹤”狠轻。
- mac地址:硬件標(biāo)識(shí)符奸例,包括WiFi mac地址和藍(lán)牙m(xù)ac地址。iOS 7 之后被禁止(同時(shí)禁止的還有OpenUDID)向楼。
- UDID:用來標(biāo)示設(shè)備的唯一性 查吊。iOS 6 之后被禁止獲取系統(tǒng)原生的UDID,但可以通過uuid湖蜕,寫入到鑰匙串中逻卖,從而獲得自定義的UDID(非系統(tǒng)原生),即使用戶重裝APP昭抒,只要每次都取這個(gè)鑰匙串返回评也,就是不變的。
- UUID:APP重裝后會(huì)改變戈鲁。
【總結(jié)】
若想用于數(shù)據(jù)統(tǒng)計(jì)仇参,使用UDID是最靠譜的嘹叫。