В настоящее время нет никакого способа предварительно создать базу данных SQLite для поставки с apk. Лучшее, которое можно сделать, является сохранением соответствующий SQL как ресурс и выполняет их из приложения. Да, это приводит к дублированию данных (та же информация существует как resrouce и как база данных), но прямо сейчас нет никакого другого пути. Единственным фактором смягчения является apk файл, сжат. Мой опыт является сжатиями 908 КБ меньше чем к 268 КБ.
поток ниже имеет лучшее обсуждение/решение, которое я нашел с хорошим примером кода.
http://groups.google.com/group/android-developers/msg/9f455ae93a1cf152
я сохранил свой оператор CREATE как строковый ресурс, который будет считан с Context.getString (), и выполнил его с SQLiteDatabse.execSQL ().
я хранил данные для своих вставок в res/raw/inserts.sql (я создал sql файл, 7000 + строки). Используя технику из ссылки выше я ввел цикл, считайте файл линию за линией и concactenated данные на "INSERT INTO tbl ЗНАЧЕНИЕ", и сделал другой SQLiteDatabase.execSQL (). Никакой смысл в сохранении 7 000 "INSERT INTO tbl НЕ ОЦЕНИВАЕТ "s, когда они могут просто быть concactenated на.
требуется приблизительно двадцать секунд на эмуляторе, я не знаю, сколько времени это взяло бы реальный телефон, но это только происходит однажды, когда пользователь сначала запускает приложение.
Вы в основном запрашиваете минидамп пользовательского процесса. Библиотека Windows Debug Helper имеет для этого готовую функцию MiniDumpWriteDump
.
Существует грубый контроль над количеством деталей, содержащихся в мини-дампе, с помощью параметра MINIDUMP_TYPE
, переданного в функцию. Самый простой, MiniDumpNormal
, захватывает только стек вызовов каждого потока в процессе. Объем памяти становится все более детализированным с другими типами мини-дампа.
Вы также можете точно контролировать объем информации, которая будет записана в мини-дамп, предоставив обратный вызов функции MiniDumpWriteDump
и в обратном вызове установив флаги в структуре MINIDUMP_CALLBACK_OUTPUT
.
На самом деле это не ответ «как это программировать», но я только что нашел ваш вопрос, когда искал инструмент, который мог бы это сделать , когда я столкнулся с PMDump:
http://ntsecurity.nu/toolbox/pmdump/
Он чрезвычайно прост и прост в использовании и создает правильные дампы (я только что пробовал это с некоторыми программами).