Я могу загрузить дб SQLite на/sdcard и получить доступ к нему из моего приложения для Android?

Этот ответ должен сообщить о проверке, выполненной с принятым ответом. Я выполнил тест с закрытым диапазоном для большого вектора отсортированного случайного целого числа, и, к моему удивлению, основной метод (low < = num & amp; num < = high) фактически быстрее, чем принятый ответ выше! Тест проводился на HP Pavilion g6 (AMD A6-3400APU с оперативной памятью 6 ГБ. Вот основной код, использованный для тестирования:

int num = rand();  // num to compare in consecutive ranges.
chrono::time_point<chrono::system_clock> start, end;
auto start = chrono::system_clock::now();

int inBetween1{ 0 };
for (int i = 1; i < MaxNum; ++i)
{
    if (randVec[i - 1] <= num && num <= randVec[i])
        ++inBetween1;
}
auto end = chrono::system_clock::now();
chrono::duration<double> elapsed_s1 = end - start;

по сравнению со следующим, который является принятым ответом выше:

int inBetween2{ 0 };
for (int i = 1; i < MaxNum; ++i)
{
    if (static_cast<unsigned>(num - randVec[i - 1]) <= (randVec[i] - randVec[i - 1]))
        ++inBetween2;
}

Обратите внимание, что randVec является отсортированным вектором. Для любого размера MaxNum первый метод превосходит второй на моей машине!

32
задан kzyapkov 28 June 2009 в 16:22
поделиться

1 ответ

Конечно, можно. Документы немного противоречат этому, поскольку они также говорят, что никаких ограничений нет. Я думаю, они должны сказать, что относительные пути к указанному выше местоположению и dbs там являются частными. Вот код, который вам нужен:

File dbfile = new File("/sdcard/mydb.sqlite" ); 
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
System.out.println("Its open? "  + db.isOpen());
44
ответ дан 27 November 2019 в 20:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: