Android에 사용되는 SQLite 버전은 무엇입니까?
안드로이드에서 사용되는 SQLite 버전은 무엇입니까?
이유: 스키마 마이그레이션을 어떻게 처리해야 하는지 궁금합니다.최신 SQLite 버전은 "ALTER TABLE" SQL 명령을 지원하므로 데이터를 복사하고, 테이블을 삭제하고, 테이블을 다시 만들고, 데이터를 다시 삽입해야 하는 수고를 덜 수 있습니다.
다음은 이 답변의 주요 포인트인 Android.database를 포함하는 공식 문서에 대한 링크입니다.sqlite 패키지 수준 javadoc
프레임워크 SQLite 버전을 가져오는 Kotlin 코드(팁: 활동에 중단점만 삽입)onCreate()
그리고 이 코드를 사용합니다.Evaluate Expression...
):
val version = android.database.sqlite.SQLiteDatabase.create(null).use {
android.database.DatabaseUtils.stringForQuery(it, "SELECT sqlite_version()", null)
}
"Framework (API ${android.os.Build.VERSION.SDK_INT}) SQLite version: $version".also { println(it) }
에뮬레이터 사용(실제 장치의 SQLite 버전은 적어도 지정된 버전이어야 함):
API 레벨* | 버전 | 이름. | SQLite | 메모들 |
---|---|---|---|---|
34 | 14 | U | 3.39.2 | Android 14 개발자 미리보기 2. 오른쪽 및 전체 외부 조인 |
33 | 13 | T | 3.32.2 | |
32 | 12L | Sv2 | 3.32.2 | |
31 | 12 | S | 3.32.2 | |
30 | 11 | R | 3.28.0 | 창 기능 |
29 | 10 | Q | 3.22.0 | |
28 | 9 | 파이 | 3.22.0 | |
27 | 8.1 | 오레오 | 3.19.4 | 3.19.4 링크가 존재하지 않으므로 3.19.3 및 버전 제어 체크인 참조 |
26 | 8.0 | 오레오 | 3.18.2 | 베타 버전은 3.18.0을 사용했습니다. |
25 | 7.1.1 | 누가트 | 3.9.2 | |
24 | 7.0 | 누가트 | 3.9.2 | |
23 | 6.0 | 마시멜로 | 3.8.10.2 | M Preview 1(SDK 레벨 22) 3.8.10 사용 |
22 | 5.1.1 | 롤리팝 | 3.8.6.1 | 3.8.6.1 링크가 존재하지 않으므로 3.8.6 및 버전 제어 체크인 참조 |
21 | 5.0 | 롤리팝 | 3.8.6 | |
20 | 4.4W.2 | 안드로이드 웨어 | 알 수 없는 | 사용 가능한 에뮬레이터는 없지만 3.7.11 또는 3.8.4.3 중 하나일 수 있습니다. |
19 | 4.4 | 킷캣 | 3.7.11 | |
18 | 4.3 | 젤리빈 | 3.7.11 | |
17 | 4.2 | 젤리빈 | 3.7.11 | |
16** | 4.1 | 젤리빈 | 3.7.11 | |
15 | 4.0.3 | 아이스크림 샌드위치 | 3.7.4 | |
14** | 4.0 | 아이스크림 샌드위치 | 3.7.4 | |
13 | 3.2 | 벌집 | 3.7.4 | |
12 | 3.1 | 벌집 | 3.7.4 | |
11** | 3.0 | 벌집 | 3.7.4 | |
10 | 2.3.3 | 진저브레드 | 3.6.22 | |
9 | 2.3.1 | 진저브레드 | 3.6.22 | |
8** | 2.2 | 프로요 | 3.6.22 | |
7 | 2.1 | 에클레어 | 3.5.9 | |
4 | 1.6 | 도넛 | 3.5.9 | |
3** | 1.5 | 컵케이크 | 3.5.9 |
Android API 수준 링크는 Android.database 위치를 보여줍니다.sqlite 패키지가 변경되었습니다.링크(예: API 수준 17)가 없는 경우 해당 패키지에 대한 변경 사항이 없음을 나타냅니다.
손상된 SDK 링크(여기 참조)
참고: 앱에서 모든 Android 버전에서 동일한 버전의 SQLite를 사용하려면 Requery의 타사 SQLite 지원 라이브러리 또는 SQLCipher(암호화도 원하는 경우)를 사용하는 것이 좋습니다.
설명서에 참조 번호로 3.4.0이 나와 있지만 다음 SQL을 실행하면 훨씬 더 많은 SQLite가 설치되어 있음을 알 수 있습니다.
Cursor cursor = SQLiteDatabase.create(null).rawQuery("select sqlite_version() AS sqlite_version", null);
String sqliteVersion = "";
while(cursor.moveToNext()){
sqliteVersion += cursor.getString(0);
}
이것은 sqlite 버전을 검색하기 위한 빠르고 더러운 코드의 일부일 뿐입니다.예를 들어 안드로이드 2.1이 탑재된 HTC Hero의 경우 3.5.9가 표시됩니다.
Android 2.2가 설치된 Nexus One에서는 3.6.22도 사용할 수 있습니다.
$ adb shell sqlite3 --version
3.5.9
ADP11 1.6 및 2.1 에뮬레이터에서도 동일합니다.
Andorid API 및 지원되는 SQLite 버전에 대한 간략한 개요입니다.
개요는 Mark Carters 답변 링크에서 확인할 수 있습니다.
룸에서 쿼리할 수 있습니다.
sqlite_version()을 선택합니다.
RG
언급URL : https://stackoverflow.com/questions/2421189/version-of-sqlite-used-in-android
'source' 카테고리의 다른 글
Android의 URL 인코딩 (0) | 2023.08.05 |
---|---|
실행 정책을 성공적으로 변경하고 PowerShell 스크립트를 실행하도록 설정하는 방법 (0) | 2023.08.05 |
M1 도커 미리 보기 및 키클로크 'image' 플랫폼(linux/amd64)이 탐지된 호스트 플랫폼(linux/arm64/v8)과 일치하지 않음' 문제 (0) | 2023.08.05 |
안드로이드 구글 지도 java.lang.NoClassDefFoundError: 확인 실패: Log/apache/http/ProtocolVersion (0) | 2023.08.05 |
진자 템플릿의 사전 목록을 통해 반복하는 방법은 무엇입니까? (0) | 2023.08.05 |