#android #memory #process
#Android #память #процесс
Вопрос:
Итак, я посмотрел вокруг и в документах, чтобы точно узнать, как я буду определять отдельный процесс для своего приложения. До сих пор у меня в манифесте
<receiver android:name="edu.sc.test.GeofenceReceiver"
android:exported="false"
android:enabled="true"
android:process=":GeofenceReceiver"
>
</receiver>
Я понимаю, что двоеточие в имени процесса запускает процесс в его собственной памяти, однако у моего приложения по-прежнему возникают те же проблемы, поскольку dalvik, похоже, испытывает нехватку памяти в logcat. Мое приложение выполняет много работы без пользовательского интерфейса в фоновом режиме, но работа без пользовательского интерфейса, похоже, замедляет работу приложения, поэтому, насколько я понимаю, мне нужен процесс, чтобы отделить работу пользовательского интерфейса от фоновой работы. Как мне создать отдельный частный процесс, чтобы память не использовалась?
Комментарии:
1. Не было бы разумнее определить, в чем источник ваших проблем с памятью, и попытаться решить эту проблему? «итак, насколько я понимаю, мне нужен процесс, чтобы отделить работу пользовательского интерфейса от фоновой работы» — обычно нет.
2. @CommonsWare Ну, когда я сказал «не хватает памяти», dalvik постоянно говорит «…. GC_FOR_ALLOC освободил 2048 КБ, освободил 35% 17388K / 26664K, приостановил 26 мс ..» но это не выдает ошибку нехватки памяти, что, насколько я понимаю, означает, что память используется. Может быть, я смотрю не в том месте. Я пытаюсь найти наилучший способ отделить пользовательский интерфейс от фоновой работы без замедления работы моего приложения.
3. «Я пытаюсь найти наилучший способ отделить пользовательский интерфейс от фоновой работы без замедления работы моего приложения» — затем используйте Traceview, чтобы точно выяснить, в чем заключается ваша проблема. Вы также можете рассмотреть возможность использования DDMS ‘allocation tracker, чтобы определить, откуда происходит ваш отток памяти.
4. @CommonsWare Хорошо, спасибо