亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android 區(qū)別真機(jī)和模擬器的幾種方法

 更新時(shí)間:2016年07月13日 16:13:02   投稿:lqh  
本文主要介紹 Android 區(qū)別真機(jī)和模擬器,這里整理了幾種方式來(lái)辨別 真機(jī)和模擬器.希望能對(duì)有需要的小伙伴有所幫助

現(xiàn)在的模擬器的功能太強(qiáng)大,從藍(lán)牙,傳感器等配件到IMEI,Mac,以及手機(jī)硬件信息什么都可以模擬

為了防止用戶利用模擬器模仿真機(jī)進(jìn)行刷單,刷流量等惡意操作。

需要獲取設(shè)備返回的一些信息來(lái)鑒別設(shè)備的真?zhèn)巍?/strong>

下面是整理的模擬器和真機(jī)的區(qū)別

雖然大部分都可以模仿,偽造,但是如果綜合所有維度來(lái)監(jiān)控,應(yīng)該不存在太大問(wèn)題。

一,native方式。

通過(guò)c代碼讀取設(shè)備中的配置和硬件相關(guān)信息。

1,diskstats

獲取閃存的分區(qū)狀態(tài)信息。

int fd = open(“/proc/diskstats”, O_RDONLY);

bytes = read(fd, buf, bytes);

區(qū)別:真機(jī)下都有mmcblk0分區(qū),但是模擬器沒有分區(qū)信息。

2,mac地址。

通過(guò)socket和ioctl讀取mac地址。

sockfd = socket(AF_INET, SOCK_DGRAM, 0);

ioctl(sockfd, SIOCGIFCONF, (char*)&ifc);

ioctl(sockfd, SIOCGIFADDR, &ifr[i])

ioctl(sockfd, SIOCGIFHWADDR, (char*)&ifr[i])

區(qū)別:真機(jī)可以獲取wlan0的ip和mac地址,模擬器只能獲取eth0的ip和mac地址;

3,有用的prop信息。

__system_property_get(key, buf);

區(qū)別: 模擬器沒有ro.boot.serialno和ro.serialno屬性,真機(jī)中為機(jī)器序列號(hào)。

模擬器 ro.hardware屬性為goldfish,真機(jī)為各自的型號(hào)。

4,cpu信息。

int fd = open(“/proc/cpuinfo”, O_RDONLY);

bytes = read(fd, buf, bytes);

區(qū)別:模擬器中cpuinfo的硬件為Goldfish。

5,drivers

int fd = open(“/proc/tty/drivers”, O_RDONLY);

區(qū)別:模擬器中包含goldfish的驅(qū)動(dòng)

6,模擬器特有文件。

int fd = open(“/dev/socket/qemud”, O_RDONLY);

int fd = open(“/dev/qemu_pipe”, O_RDONLY);

區(qū)別:模擬器專有的文件,真機(jī)中沒有。

二,傳統(tǒng)的方式:

通過(guò)Java層的代碼獲取,可以有以下方式:

1,IMEI和IMSI

IMEI  移動(dòng)設(shè)備國(guó)際身份碼。

IMSI  IMSI國(guó)際移動(dòng)用戶識(shí)別碼,儲(chǔ)存在SIM卡中

final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);

String imei = tm.getDeviceId();

String imsi = tm.getSubscriberId();

設(shè)備1:354273055927169 / null(無(wú)卡)

設(shè)備2:862966024243759 / 460011040618938

模擬器:000000000000000 / 310260000000000

2,Serial序列號(hào)

String serial = android.os.Build.SERIAL;

設(shè)備1:4df78680771b117b

設(shè)備2:OBAI5HDQZPDIRCQG

模擬器:unknown

3,android_id

String android_id = Secure.getString(getContentResolver(), Secure.ANDROID_ID);

 設(shè)備和模擬器都有,16位。

4,Mac地址

WifiManager wifimanage=(WifiManager)getSystemService(Context.WIFI_SERVICE); WifiInfo wifiinfo= wifimanage.getConnectionInfo();

設(shè)備1:88:32:9b:1e:49:20

設(shè)備2:f8:a4:5f:fd:56:17

模擬器:null

以上就是對(duì)Android 區(qū)別真機(jī)和模擬器 方法的整理和對(duì)比,有需要的朋友可以參考一下.

相關(guān)文章

  • 你該知道的Gradle配置知識(shí)總結(jié)

    你該知道的Gradle配置知識(shí)總結(jié)

    這篇文章主要給大家介紹了關(guān)于Gradle配置的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考學(xué)習(xí),下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • Android自定義View之酷炫數(shù)字圓環(huán)

    Android自定義View之酷炫數(shù)字圓環(huán)

    這篇文章主要為大家詳細(xì)介紹了Android自定義View之酷炫數(shù)字圓環(huán),實(shí)現(xiàn)效果很酷,,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Android貝塞爾曲線初步學(xué)習(xí)第二課 仿QQ未讀消息氣泡拖拽黏連效果

    Android貝塞爾曲線初步學(xué)習(xí)第二課 仿QQ未讀消息氣泡拖拽黏連效果

    這篇文章主要為大家詳細(xì)介紹了Android貝塞爾曲線初步學(xué)習(xí)的第二課,仿QQ未讀消息氣泡拖拽黏連效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Android的進(jìn)度條控件描述

    Android的進(jìn)度條控件描述

    這篇文章主要介紹了android的幾種進(jìn)度條控件描述的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-01-01
  • Android使用xml自定義圖片實(shí)例詳解

    Android使用xml自定義圖片實(shí)例詳解

    這篇文章主要介紹了 Android使用xml自定義圖片實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • docker網(wǎng)絡(luò)配置過(guò)程詳解介紹

    docker網(wǎng)絡(luò)配置過(guò)程詳解介紹

    大家好,本篇文章主要講的是docker網(wǎng)絡(luò)配置過(guò)程詳解介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Android Touch事件分發(fā)過(guò)程詳解

    Android Touch事件分發(fā)過(guò)程詳解

    這篇文章主要介紹了Android Touch事件分發(fā)過(guò)程,詳細(xì)描述了Android Touch事件的主要處理流程,有助于深入理解Android程序設(shè)計(jì),需要的朋友可以參考下
    2014-09-09
  • Android Studio4.0導(dǎo)入OpenCv4.3.0的方法步驟

    Android Studio4.0導(dǎo)入OpenCv4.3.0的方法步驟

    這篇文章主要介紹了Android Studio4.0導(dǎo)入OpenCv4.3.0的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Android自定義桌面功能代碼實(shí)現(xiàn)

    Android自定義桌面功能代碼實(shí)現(xiàn)

    android自定義桌面其實(shí)很簡(jiǎn)單,看一個(gè)例子就明白了
    2013-11-11
  • Templates實(shí)戰(zhàn)之更優(yōu)雅實(shí)現(xiàn)自定義View構(gòu)造方法詳解

    Templates實(shí)戰(zhàn)之更優(yōu)雅實(shí)現(xiàn)自定義View構(gòu)造方法詳解

    本篇文章介紹如何利用Android Studio提供的Live Templates更優(yōu)雅實(shí)現(xiàn)自定義View的構(gòu)造方法,說(shuō)句人話就是:簡(jiǎn)化自定義View構(gòu)造參數(shù)模板代碼的編寫,實(shí)現(xiàn)自動(dòng)生成,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09

最新評(píng)論