Как создать двоичный/шестнадцатеричный дамп памяти другого процесса?

В настоящее время нет никакого способа предварительно создать базу данных 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 на.

требуется приблизительно двадцать секунд на эмуляторе, я не знаю, сколько времени это взяло бы реальный телефон, но это только происходит однажды, когда пользователь сначала запускает приложение.

5
задан KevenK 18 August 2009 в 22:35
поделиться

2 ответа

Вы в основном запрашиваете минидамп пользовательского процесса. Библиотека Windows Debug Helper имеет для этого готовую функцию MiniDumpWriteDump .

Существует грубый контроль над количеством деталей, содержащихся в мини-дампе, с помощью параметра MINIDUMP_TYPE , переданного в функцию. Самый простой, MiniDumpNormal , захватывает только стек вызовов каждого потока в процессе. Объем памяти становится все более детализированным с другими типами мини-дампа.

Вы также можете точно контролировать объем информации, которая будет записана в мини-дамп, предоставив обратный вызов функции MiniDumpWriteDump и в обратном вызове установив флаги в структуре MINIDUMP_CALLBACK_OUTPUT .

3
ответ дан 15 December 2019 в 01:07
поделиться

На самом деле это не ответ «как это программировать», но я только что нашел ваш вопрос, когда искал инструмент, который мог бы это сделать , когда я столкнулся с PMDump:

http://ntsecurity.nu/toolbox/pmdump/

Он чрезвычайно прост и прост в использовании и создает правильные дампы (я только что пробовал это с некоторыми программами).

1
ответ дан 15 December 2019 в 01:07
поделиться
Другие вопросы по тегам:

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