Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Difference From 40f79eca30e59f72
To 985ad0e6f280e048
2017-05-03
| | |
18:18 |
|
(check-in: e8a9b149f7 user: dan tags: trunk)
|
2017-05-02
| | |
19:54 |
|
(check-in: 40f79eca30 user: dan tags: trunk)
|
2017-05-01
| | |
15:14 |
|
(check-in: efde9e0e44 user: pjw tags: trunk)
|
2017-04-29
| | |
09:24 |
|
(check-in: 985ad0e6f2 user: dan tags: trunk)
|
2017-04-27
| | |
18:00 |
|
(check-in: 7275688aed user: dan tags: trunk)
|
| | |
Changes to gradle.properties.
︙ | | |
13
14
15
16
17
18
19
|
13
14
15
16
17
18
19
20
|
+
|
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
android.useDeprecatedNdk true
|
Changes to sqlite3/build.gradle.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
+
+
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
-
-
-
|
apply plugin: 'com.android.library'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
publishNonDefault true
defaultConfig {
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
}
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
configurations {
debug
release
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
debuggable true
jniDebuggable true
externalNativeBuild {
ndk {
// Building with NDK_DEBUG=1 for mips crashes the compiler in ndk 14.
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', 'mips64' // 'mips'
}
ndkBuild {
arguments "NDK_DEBUG:=1"
abiFilters "armeabi-v7a", "armeabi", "x86"
}
}
}
}
//sourceSets.main.jni.srcDirs = [] //disable automatic ndk-build call
externalNativeBuild {
ndkBuild {
path 'src/main/jni/Android.mk'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile 'com.android.support:support-annotations:24.0.0'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
testCompile 'junit:junit:4.12'
}
|
Deleted sqlite3/src/androidTest/java/org/sqlite/database/SeeTest1.java.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
|
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
|
package org.sqlite.database;
import android.content.Context;
import android.database.Cursor;
import android.os.AsyncTask;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.sqlite.database.sqlite.SQLiteDatabase;
import org.sqlite.database.sqlite.SQLiteOpenHelper;
import java.io.File;
import static org.junit.Assert.*;
class MyHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "mydb.db";
public MyHelper(Context ctx){
super(ctx, ctx.getDatabasePath(DATABASE_NAME).getAbsolutePath(), null, 1);
}
public void onConfigure(SQLiteDatabase db){
db.execSQL("PRAGMA key = 'secret'");
db.enableWriteAheadLogging();
final Cursor pragmaCursor = db.rawQuery("PRAGMA journal_mode = WAL", null);
pragmaCursor.moveToFirst();
pragmaCursor.close();
}
public void onCreate(SQLiteDatabase db){
db.execSQL("CREATE TABLE t1(x)");
}
public void onUpgrade(SQLiteDatabase db, int iOld, int iNew){
}
}
/**
* Created by dan on 5/3/17.
*/
@RunWith(AndroidJUnit4.class)
public class SeeTest1 {
private Context mContext;
@Before
public void setup() throws Exception {
System.loadLibrary("sqliteX");
mContext = InstrumentationRegistry.getTargetContext();
// delete any existing database
File databaseFile = mContext.getDatabasePath(MyHelper.DATABASE_NAME);
databaseFile.mkdirs();
if (databaseFile.exists()) {
databaseFile.delete();
}
}
@Test
public void testAndroidDefaultWalMode() throws Exception {
// create database
final MyHelper helper = new MyHelper(mContext);
helper.getWritableDatabase();
// verify that WAL journal mode is set
final Cursor pragmaCursor = helper.getWritableDatabase().rawQuery("PRAGMA journal_mode", null);
pragmaCursor.moveToFirst();
Assert.assertEquals(pragmaCursor.getString(pragmaCursor.getColumnIndex("journal_mode")), "wal");
pragmaCursor.close();
// start long running transaction
AsyncTask.execute(new Runnable() {
@Override
public void run() {
helper.getWritableDatabase().beginTransactionNonExclusive();
// simulate long insert
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
helper.getWritableDatabase().setTransactionSuccessful();
helper.getWritableDatabase().endTransaction();
}
});
// wait a short time until the long transaction starts
Thread.sleep(300);
long startTime = System.currentTimeMillis();
//try to read something from the database while the slow transaction is running
helper.getWritableDatabase().execSQL("SELECT * FROM t1");
//verify that the operation didn't wait until the 3000ms long operation finished
if (System.currentTimeMillis() - startTime > 3000) {
throw new Exception("WAL mode isn't working corectly - read operation was blocked");
}
}
}
|
Changes to sqlite3/src/main/jni/sqlite/Android.mk.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-
-
|
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
# If using SEE, uncomment the following:
# LOCAL_CFLAGS += -DSQLITE_HAS_CODEC
#Define HAVE_USLEEP, otherwise ALL sleep() calls take at least 1000ms
LOCAL_CFLAGS += -DHAVE_USLEEP=1
# Enable SQLite extensions.
LOCAL_CFLAGS += -DSQLITE_ENABLE_FTS5
LOCAL_CFLAGS += -DSQLITE_ENABLE_RTREE
LOCAL_CFLAGS += -DSQLITE_ENABLE_JSON1
LOCAL_CFLAGS += -DSQLITE_ENABLE_FTS3
|
︙ | | |