안드로이드에서 사용되는 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 :
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 :
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- 젤리 빈)
- 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)
- 삼성 갤럭시 노트 (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)
- 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
'IT' 카테고리의 다른 글
앱이 백그라운드에서 돌아올 때 viewWillAppear가 호출되지 않는 이유는 무엇입니까? (0) | 2020.03.28 |
---|---|
Internet Explorer에서 jQuery Ajax 요청이 캐싱되는 것을 방지하는 방법은 무엇입니까? (0) | 2020.03.28 |
모든 테이블에 대한 현재 AUTO_INCREMENT 값을 가져옵니다. (0) | 2020.03.28 |
Git 리모컨에서 가져올 때 원격 변경 사항을 사용하여 충돌 해결 (0) | 2020.03.28 |
자식 요소를 가리킬 때 HTML5 드래그 리브가 시작되었습니다. (0) | 2020.03.28 |