source

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

ittop 2023. 8. 5. 11:02
반응형

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 버전에 대한 간략한 개요입니다.

enter image description here

개요는 Mark Carters 답변 링크에서 확인할 수 있습니다.

룸에서 쿼리할 수 있습니다.

sqlite_version()을 선택합니다.

RG

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

반응형