У меня уже есть база данных SQLite. Я вставил его assets
папка моего проекта. Я прочитал документацию Android. Это сказало, что для всех баз данных в Android, путь data/data/pack_name/database_name
.
Это смутило меня. Я просто поместил его в assets
папка, таким образом, путь data/data/assets/database_name
?
Имя пакета - это не имя проекта, имя пакета - это пространство имен. Из ссылки Энтони.
Не забудьте изменить "YOUR_PACKAGE" на пространство имен пакета вашего приложения (т.е.: com.examplename.myapp) в строке DB_PATH.
Например, из учебника Hello World, имя проекта - HelloAndroid
, но имя пакета - com.example.helloandroid
Если бы у этого приложения была база данных, она хранилась бы по адресу data/data/com.example.helloandroid/database
Чтобы посмотреть, как обстоит дело с другими приложениями, вы можете запустить свой эмулятор. В строке меню у вас есть имя вашего avd (я думаю, это означает Android Virtual Device). На моем это "avdessay:5554"
(В Linux) В командной строке введите:
adb -s emulator-5554 shell
Вы должны заменить 5554 на любой порт, который вы используете.
Если у вас есть командная строка '#', вы можете набрать:
cd data/data
Там вы увидите, что все находится в форме имени пакета.
Больше информации здесь
Можно установить значение expose _ php = Off
в файле php.ini, если не требуется отправлять заголовок X-Powered-By.
PHP сначала компилирует все (включая, какие заголовки имеют какие значения), а затем запускает вывод, а не наоборот.
PHP также обнаруживается с собственными пасхальными яйцами, вы можете прочитать об этой теме здесь: PHP пасхальные яйца
-121--1839498-Упомянутые выше решения будут работать на основы. Я не думаю, что они охватывают многострочные значения. Вот программа awk, которая будет анализировать свойства Java от stdin и производить переменные среды оболочки к stdout:
BEGIN {
FS="=";
print "# BEGIN";
n="";
v="";
c=0; # Not a line continuation.
}
/^\#/ { # The line is a comment. Breaks line continuation.
c=0;
next;
}
/\\$/ && (c==0) && (NF>=2) { # Name value pair with a line continuation...
e=index($0,"=");
n=substr($0,1,e-1);
v=substr($0,e+1,length($0) - e - 1); # Trim off the backslash.
c=1; # Line continuation mode.
next;
}
/^[^\\]+\\$/ && (c==1) { # Line continuation. Accumulate the value.
v= "" v substr($0,1,length($0)-1);
next;
}
((c==1) || (NF>=2)) && !/^[^\\]+\\$/ { # End of line continuation, or a single line name/value pair
if (c==0) { # Single line name/value pair
e=index($0,"=");
n=substr($0,1,e-1);
v=substr($0,e+1,length($0) - e);
} else { # Line continuation mode - last line of the value.
c=0; # Turn off line continuation mode.
v= "" v $0;
}
# Make sure the name is a legal shell variable name
gsub(/[^A-Za-z0-9_]/,"_",n);
# Remove newlines from the value.
gsub(/[\n\r]/,"",v);
print n "=\"" v "\"";
n = "";
v = "";
}
END {
print "# END";
}
Как вы видите, многострочные значения делают вещи более сложными. Чтобы увидеть значения свойств в оболочке, просто исходите из выходных данных:
cat myproperties.properties | awk -f readproperties.awk > temp.sh
source temp.sh
Переменные будут иметь '_' вместо '.', поэтому свойство some.property будет some_property в оболочке.
При наличии файлов свойств ANT с интерполяцией свойств (например, «$ {foo.bar}») рекомендуется использовать Groovy с AntBuilder.
Вот моя вики-страница по этой теме .
-121--1412938- При создании базы данных с помощью классов SQLiteDatabase
или SQLiteOpenHelper
база данных создается в data/data/package _ name/database
.
Доступ к этому ресурсу можно получить с помощью
InputStream myInput = myContext.getAssets().open(your_database_here);
Другие сведения см. в разделе Использование собственной базы данных SQLite в приложениях Android
Имя _ пакета
пути будет именем пакета . Имя пакета находится в первой строке файлов .java
.
В качестве примера, мой класс начинается с этого вверху
package com.forloney.tracker;
Поэтому моя база данных находится в папке data/data/com.forloney.tracker/database
.
Надеюсь, это имеет смысл.
Когда я пытаюсь открыть свою БД, я получаю сообщение «Невозможно открыть файл базы данных». Я предполагаю, что он не нашел БД, а не какую-то другую ошибку программиста. В журнале я вижу следующее, что мне нравится.
sqllite3_open_v2("/data/data/com.isildo.HelloListView/databases/ListsDB" ...
Это настройка
private static String DB_PATH = "/data/data/com.isildo.HelloListView/databases/";
private static String DB_NAME = "ListsDB";
В моих ресурсах проектов в Package Explorer я вижу базу данных ListsDb.
Так что, по крайней мере, я думаю, что все у меня правильно. Я использую пример на [ http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/]
В одном из сообщения здесь, кто-то предлагает предложение по настройке некоторых параметров активов. {нет ответа на публикацию там}
**To get an ASSETS folder into your APK:
In /nbproject/project.properties,
change assets.dir=
to
assets.dir=assets
assets.available=true
In /nbproject/build-impl.xml, there is line in the “if=assets.available” target that reads
that needs to be changed to**
Это то, что нам нужно сделать, и если да, можем ли мы получить немного лучшее направление по требуются изменения. Я не мог найти места для внесения предлагаемых изменений. Я посмотрел настройки проекта и другие вещи.
Ага, я новичок в окружающей среде, так что, возможно, я их просто не найду. Я использую Eclipse в Windows.