IT

안드로이드에서 사용되는 SQLite 버전?

lottoking 2020. 3. 28. 10:46
반응형

안드로이드에서 사용되는 SQLite 버전?


Android에서 사용되는 SQLite 버전은 무엇입니까?

이유 : 스키마 마이그레이션을 처리하는 방법이 궁금합니다. 최신 SQLite 버전은 "ALTER TABLE"SQL 명령을 지원하므로 데이터를 복사하고 테이블을 삭제하고 테이블을 다시 작성하고 데이터를 다시 삽입하지 않아도됩니다.


2016 년 10 월 업데이트 : 다음은이 답변의 주요 사항을 포함하는 업데이트 된 공식 문서에 대한 링크입니다. android.database.sqlite 패키지 레벨 javadoc

에뮬레이터 사용 ( adb shell sqlite3 --version) :

업데이트 : SDK 29 (에뮬레이터 개정 8) 이후 adb shell 명령은 다음을 제공합니다.

/system/bin/sh: sqlite3: inaccessible or not found

어떤 아이디어가 있습니까?

업데이트 : 죄송합니다, 오래된 (SDK 18 이하) 패키지 수준 API 차이가 작동을 멈췄습니다 : https://issuetracker.google.com/issues/37048579

SQLite 3.22.0 :

  • 29 -10.0-Q (SDK 관리자 수요일 수정 8)
  • 28 -9.0-P

SQLite 3.19.4 (어떤 이유로 3.19.4가 sqlite 릴리스 정보에 존재하지 않습니다! 대신 버전 제어 체크인에 연결) :

  • 27 -8.1.0-O MR1

SQLite 3.18.2 :

  • 26-8.0.0-O (참고 : O 베타 버전 3.18.0 사용 )

SQLite 3.9.2 :

  • 25-7.1.1-N MR1
  • 24 -7.0-N (참고 : 미리보기는 동일한 버전을 사용했습니다)

SQLite 3.8.10.2 :

  • 23-6.0-M (참고 : M Preview 1 (SDK 레벨 22) 사용 3.8.10 )

SQLite 3.8.6.1 (SQLite 링크는 3.8.6.1이 어떤 이유로 존재하지 않기 때문에 3.8.6 용입니다) :

  • 22-5.1.1- 롤리팝

SQLite 3.8.6 :

  • 롤리팝 21-5.0

SQLite (알 수 없음) :

  • 20-4.4W.2-Android Wear (에뮬레이터는 없지만 3.7.11 또는 3.8.4.3)

SQLite 3.7.11 :

  • 19-4.4- 킷캣
  • 젤리 빈 18-4.3
  • 17-4.2- 젤리 빈
  • 16 -4.1- 젤리 빈

SQLite 3.7.4 :

  • 15-4.0.3 아이스크림 크림 샌드위치
  • 14 -4.0- 아이스크림 샌드위치
  • 13-3.2- 허니컴
  • 12-3.1- 허니 콤
  • 11 -3.0- 허니컴

SQLite 3.6.22 :

  • 10-2.3.3- 진저 브레드
  • 9-2.3.1- 진저 브레드
  • 8

    -2.2- 프로 요

SQLite 3.5.9 :

  • 7-2.1- 에클 레어
  • 4-1.6- 도넛
  • 3 -1.5- 컵 케이크

참고 : Android SDK 레벨 링크는 android.database.sqlite 패키지가 변경된 위치를 보여줍니다 . 링크가없는 경우 (예 : SDK 레벨 17) 해당 패키지가 변경되지 않았 음을 나타냅니다.

참고 : 몇 가지 이상 현상이 있습니다 (전체 목록은 아님).

SQLite 3.7.13 (3.7.11 대신) :

  • LG 옵티머스 L70 MS323 LGMS323 | KOT49I.MS32310b (19-4.4-KitKat)
  • LG 옵티머스 G E975 LG-E975 | JZO54K (16-4.1- 젤리 빈)
  • LG G2 D802 LG-D802 | JDQ39B (17-4.2- 젤리 빈)

SQLite 3.7.6.3 ( 3.6.22 대신) :

  • LG Optimus Sol E730 / myTouch E739 / myTouch Q C800 (10-2.3.3- 진저 브레드, GRJ22)
  • LG Optimus Vu F100S / F100L (10-2.3.3- 진저 브레드, RK39F)
  • LG 옵티머스 LTE TAG F120K / F120L (10-2.3.3- 진저 브레드, GRK39F)
  • LG 옵티머스 LTE L-01D (10-2.3.3- 진저 브레드, GRJ90)
  • LG 옵티머스 넷 P690b (10-2.3.3- 진저 브레드, 진저 브레드)
  • LG Prada KU5400 (10-2.3.3- 진저 브레드, GWK74)
  • LG Prada P940 (10-2.3.3- 진저 브레드, GWK74)
  • LG LU6200 / SU640 (10-2.3.3- 진저 브레드, GRJ90)

SQLite 3.7.5 ( 3.7 대신 4) :

  • 삼성 갤럭시 노트 (15-GT-N7000 | IML74K.ZSLPF)
  • 삼성 Galaxy SII (15-SC-02C | IML74K.OMMP4 및 GT-I9100 | IML74K.DXLP7)
  • 삼성 Galaxy S Duos (15-GT-S7562 | IMM76I.S7562XXBMD6)
  • 삼성 Galaxy Tab 7.7 (15-GT-P6810 | IMM76D.ZSLP8)

SQLite 3.7.0.1 ( 3.6.22 대신) :

  • LG Esteem MS910 (10-2.3.3- 진저 브레드, GSE-_v.05)
  • AndroTab (8-2.2- 프로 요, 1.0.7100.0385)
  • GPLUS MUSN M500 (8-2.2-Froyo, FRG83G)

SQLite 3.6.23.1 (3.5.9 대신) :

  • Motorola Backflip MB300 (7-2.1-Eclair, ERD79)
  • Garmin-Asus nüvifone A10 / A50 / Garminfone (7-2.1-Eclair, ERE27)

참고 : SQLite 버전을 가져 오는 adb 명령은 에뮬레이터 및 sqlite3을 사용할 수있는 장치에서만 작동합니다 : https://stackoverflow.com/a/3645800/444761

다른 장치에 대해서는 Juri의 답변을 참조하십시오 .

Android 이슈 트래커에 이슈 # 58909추가했습니다 . 이를 지원하려면 별표를 표시하십시오.

참고 : 모든 Android 버전에서 앱이 동일한 버전의 SQLite를 사용하도록하려면 이 타사 SQLite 지원 라이브러리 사용을 고려하십시오 .


설명서에서 3.4.0을 참조 번호로 제공하지만 다음 SQL을 실행하면 훨씬 많은 SQlite가 설치되어 있음을 알 수 있습니다.

Cursor cursor = SQLiteDatabase.openOrCreateDatabase(":memory:", null).rawQuery("select sqlite_version() AS sqlite_version", null);
String sqliteVersion = "";
while(cursor.moveToNext()){
   sqliteVersion += cursor.getString(0);
}

이것은 sqlite 버전을 검색하는 빠르고 더러운 코드입니다. 예를 들어 Android 2.1을 사용하는 HTC Hero의 경우 3.5.9 입니다.

Android 2.2를 사용하는 Nexus One에서는 3.6.22 도 얻 습니다 .


$ adb shell
$ sqlite3 --version
sqlite3 --version
3.5.9

ADP1 1.6 및 2.1 에뮬레이터에서 동일합니다.


Andorid API 및 지원되는 SQLite 버전에 대한 간단한 개요

여기에 이미지 설명을 입력하십시오

개요는 Mark Carters answer의 링크에서 제공됩니다.

참고 URL : https://stackoverflow.com/questions/2421189/version-of-sqlite-used-in-android

반응형