장비가 안드로이드의 시뮬레이터인지 어떻게 판단할 수 있는지 알려주세요?
Android/OS/build 를 받은 경우 : -> 브랜드의 가치는' 범용' 이다. 즉 시뮬레이터에서 실행된다는 뜻이다.
Android.os.Build.MODEL: 휴대 전화의 모델 및 장치 이름을 가져옵니다.
안드로이드/OS/빌드를 찾으면 -> 모델이 "SDK" 인 경우 시뮬레이터에서 실행됩니다.
코드 예:
1 상수 문자열 v0, "전화"
2
3 invoke-virtual {p0, v0}, lcom/XXX/loadingactivity; -> Get system service (ljava/lang/string; ) ljava/lang/object;
사
5 결과 오브젝트 이동 v0
여섯;육
7 v0 확인, land roid/telephony/telephony manager;
여덟;팔
9 invoke-virtual {v0}, land roid/telephony/telephony manager; -> Getsubscriberid () ljava/lang/string;
10
1 1 sget-object v0, land roid/OS/build; -> 브랜드: ljava/lang/string;
12
13 invoke-virtual {v0}, ljava/lang/string; -> Tolowercase () ljava/lang/string;
14
15 결과 객체 이동 v0
16
17 상수 문자열 v 1, "일반"
18
19 invoke-virtual {v0, v 1}, ljava/lang/string; -> 인덱스 of (ljava/lang/string; ) 나
20
2 1 이동 결과 v0
22
23 상수/16 v0,-1
24
25 if-eq v0, v2,: cond_0
26
27 sget-object v0, land roid/OS/build; -> 모델: ljava/lang/string;
28
29 invoke-virtual {v0}, ljava/lang/string; -> Tolowercase () ljava/lang/string;
30
3 1 결과 오브젝트 이동 v0
32
33 상수 문자열 v 1, "SDK"
34
35 invoke-virtual {v0, v 1}, ljava/lang/string; -> 인덱스 of (ljava/lang/string; ) 나
36
37 이동 결과 v0
38
39 if-eq v0, v2,: cond_0
40
4 1 invoke-virtual {p0}, Lcom/xxx/LoadingActivity. -> 완료 () v
마흔 두 개
43 :cond_0
44 iget-object v0, P0, lcom/XXX/loading activity; -> B: landroid/content/sharedpreferences;
45
46 invoke-interface {v0}, land roid/content/sharedpreferences; -> Edit () landroid/content/sharedpreferences $ editor;
다음 정보를 사용하여 시뮬레이터에서 실행할지 여부를 결정할 수 있습니다.
시뮬레이터가 출력한 정보
1c: \ users \ Dell > Adb 쉘 getprop
2
3 [ro.kernel.qemu]:[ 1]
4 [로 하드웨어]: [금붕어]
5[ro. build. tags]:[ 테스트 키]
6 [ro.product.model]:[sdk]
7[ro. product. brand]:[ 일반]
8 [ro.product.name]:[sdk]
9[ro. product. device]:[ 일반]
10 [ro.product.board]:[]
1 1[ 제조업체]: [알 수 없음]
12 [ro.board.platform]: []
13[ro. build. product]:[ 일반]
14 [ro.build.fingerprint]: [일반/SDK/일반: 2.3.1/