IMEI
International Mobile Equipment Identity의 약자로, '국제 모바일 기기 식별번호(휴대전화뿐만 아니라 각종 IoT 모듈을 비롯해 셀룰러 통신을 하는 모든 기기에 부여되므로 휴대전화 식별번호라고 하면 의미가 축소된다.)'를 뜻한다. 셀룰러 통신이 가능한 기기의 주민등록번호, 차대번호와 같은 역할이라 보면 된다.

제조사가 단말기를 제작할 때 부여하는 15자리 숫자로 된 번호이다. 단말기 제조사와 모델, 일련번호 등의 정보를 포함하고 있다. 듀얼 SIM이 탑재된 단말기의 경우 각각 SIM 슬롯마다 서로 다른 IMEI가 2개 부여된다.

Android ID
 
먼저 Android Id는 기기를 처음 boot할때 무작위로 생성되는 64비트숫자이며 기기 수명동안 유지된다. 

따라서 공장 초기화를 하지않는 이상 변경되지 않는 값이다.

그래서 Android id를  디바이스를 구분하는 고유번호로 사용할 수 있는데 공장 초기화를 하지 않았는데도 

Android Id가 변경되는 케이스가 있다.

Android 8.0 (api level 26, oreo) 에서 약간 변경사항이 있는데 

Android_id값이 원래는 공장초기화 시에만 변경되었다면 이제는 앱의 서명키가 바뀌어도 변경된다.

배포되어 있는 앱의 서명키가 바뀔 일은 희박하지만 debug.apk와  release.apk의 android_Id는 달라진다는 것이다.

하지만 사용자가 debug.apk에 접근하는 일은 없으니 걱정하지 않아도 될것 같다.!

DEVICE ID
 
device Id는 기기의 고유 식별자이다. 해당 값은 기기를 식별하는데 사용할 수 있지만

앱에서 해당 값에 접근하려면 READ_PRIVILEGED_PHONE_STATE 권한이 필요하다.

구글 정책에서 사용자의 하드웨어 ID에 접근하는 것은 권장하지 않는 것 같다..!