У меня тоже третья модель, и я куда менее разделяю Вашу восторженность). Взять хотя бы этот G-сенсор, который, должен сохранять ровную съемку, даже при полном повороте камеры. У меня он работает только в режиме фото, а в режиме видео нет, хотя заявленное поведение должно быть прямо противоположным. И судя по всему, проблема не только у меня. Крепления так себе, сколько я не закручивал ту пластиковую гайку, после нескольких прыжков со сноубордом, камера скашивалась и начинала снимать либо ноги либо лес. Липучка, на которой держалась камера на шлеме, отвалилась на второй день, прямо во время спуска. Камеру в паудере не потерял только чудом, выдержал страховочный шнурок. Ну, и в довершение всего, будучи андроид программистом, должен констатировать, что их приложение, это просто дерьмо мамонта какое-то, сейчас копаю их бинарный протокол, может дойдут руки написать свой клиент. Общее впечатление двойственное, пользоваться можно, но ребятам еще пилить и пилить.
Православие считает выбор между добром и злом — индивидуальным и естественным правом человека.
Fixed: «Выбор между православием и злом».
А если выбрал неправильное добро, то смола, котел, олово в глотку и трезубец в сфинктер?! Богатый выбор, господа, спешите успеть!)
Поэтому, если вы публикуете в интернете что угодно [...] Избавьте человека от необходимости регистрироваться на youtube, форуме, живом журнале, твиттере чтобы просто написать вам.
Профиль пользователя: Павел Жовнер, Google+: +PavelZhovner.
Вы предлагаете человеку зарегистрироваться в G+ или просить инвайт на хабр? И где телефон и email?
Среднее для классического quicksort. Для тюнингованного quicksort, который я привел, n*log(n) — worst-case expected-time bound. Поправьте, если ошибаюсь.
Прошу пардону! Действительно, забыл что выставил don't keep activities для другого проекта. В таком случае я разделяю Ваше недоумение по поводу onDestroy. Без галочки процесс молча умирает даже не пискнув.
Nexus S, Android 4.1.2. Поведение следующее: onDestroy A вызывается стабильно на каждом переходе A→B. onDestroy A вызывается стабильно при A → Home. Процесс при этом не обязательно умирает. Если подзагрузить систему и дождаться смерти процесса, то при перезапуске сохраняется activity stack, приложение помнит последнее запущенное активити.
Что касается до Force stop, то он ожидаемо убивает процесс и обнуляет activity stack. Лог Force finishing activity ActivityRecord для каждого активити как-бы намекает, что запись удалена и информация о последнем запущенном activity утеряна.
Как результат, предсказуемое поведение и остается только догадываться почему у нас отличается второй сценарий, где у Вас не вызывается onDestroy. Не стоит также забывать, что «Это Андроид, детка!» и прихоти всяких «оптимизаторов» от сторонних производителей всегда будут вносить свои коррективы.
я удаляю все объекты сразу после их использования, а в нужные моменты вызываю Garbage Collector вручную
Бох ты мой, доколе все будут пытаться «оптимизировать» JVM в плену еще не утихшей радости от удачной компиляции HelloWorld.java.
Для справки:
• Pre-Gingerbread GC:
– Stop-the-world
– Full heap collection
– Pause times often > 100ms
• Gingerbread and beyond:
– Concurrent (mostly)
– Partial collections
– Pause times usually < 5ms
Ну давайте, нагибайте все устройства < Android 2.3 (благо их не много осталось), а на остальных плодите потоки, «ускоряйте» андроид и мешайте Dalvik'y делать свою работу. В зависимости от версии андроид и модели устройства, под каждое приложение отведен максимально допустимый объем памяти. Выделяется он динамически, по мере растущих запросов приложения. Так вот, эта память имеет свойство только раширяться, пока не упрется в OutOfMemory error и не умеет сжиматься(shrink) обратно. Т.е. после ручного вызова GC, поделиться освобожденной памятью с другими приложениями все равно не получится и сэкономится аж целый шиш. Фактически, это даже не связано с андроид, это просто bad practice в мире java, eсли только у вас нет каких-то явных проблем с памятью.
You must be fun at parties)
Полностью соглаен. Не поймите привратно, я отдаю себе отчет, в чем главный посыл этой новости. Я тут пытаюсь шутить вообще-то, не топчите малину!
Три топика про закрытие сайта по продаже наркотиков за 15 минут. Общество определенно озадачено проблемой, а я определенно что-то упускаю в этой жизни!
IDEA предоставляет концепт расширений (<extensions>) и точек расширения (<extensionPoint>), которые позволяют взаимодействовать с другими плагинами и ядром IDEA. Т.е. интегрироваться можно, если в андроид плагин заложена для этого основа в виде точек расширения. Известные мне точки расширения андроид плагина:
Практически как и по всему, что касается разработки плагинов, по ним полностью отсутствует какая бы то ни была документация.
Беглый анализ показал, что ничего сверхестественного там не происходит, нет никакого магического hidden API на котором общаются андроид плагин и SDK. Просто из Android SDK дергаются доступные всем утилиты (adb, aapt, dexdump...) с нужными ключами. Где-то прописанный package был бы очень кстати, но вот название девайса я бы точно нигде не искал. Уж больно непостоянная информация, не вижу причин, по которым они бы ее где-то хранили.
Кстати, если бы не первое предложение, я бы решил, что пост вы не читали). Вариант с обменом ключей в статье указан первым в параграфе «Решения». Даже в этом случае плагин — хорошее подспорье, т.к., кроме прочего, позволяет удалять одновременно.
Нет, офис покупать не надо, иначе как бы это… хрен бы кто пользовался CloudOn!). У них лицензионное соглашение с Microsoft, все легально. С другой стороны, проект в стадии монетизации, есть платные подписки, которые добавят Вам несколько новых фич. Базовый функционал при этом остается бесплатным.
Fixed: «Выбор между православием и злом».
А если выбрал неправильное добро, то смола, котел, олово в глотку и трезубец в сфинктер?! Богатый выбор, господа, спешите успеть!)
Профиль пользователя: Павел Жовнер, Google+: +PavelZhovner.
Вы предлагаете человеку зарегистрироваться в G+ или просить инвайт на хабр? И где телефон и email?
n*log(n)
.n*log(n)
— worst-case expected-time bound. Поправьте, если ошибаюсь.O(n*log(n))
ожидаемое время.onDestroy A вызывается стабильно на каждом переходе A→B.
onDestroy A вызывается стабильно при A → Home. Процесс при этом не обязательно умирает. Если подзагрузить систему и дождаться смерти процесса, то при перезапуске сохраняется activity stack, приложение помнит последнее запущенное активити.
Что касается до Force stop, то он ожидаемо убивает процесс и обнуляет activity stack. Лог Force finishing activity ActivityRecord для каждого активити как-бы намекает, что запись удалена и информация о последнем запущенном activity утеряна.
Как результат, предсказуемое поведение и остается только догадываться почему у нас отличается второй сценарий, где у Вас не вызывается onDestroy. Не стоит также забывать, что «Это Андроид, детка!» и прихоти всяких «оптимизаторов» от сторонних производителей всегда будут вносить свои коррективы.
Как у вас вообще это скомпилировалось?
UPD: Снято. Ответили выше.
Бох ты мой, доколе все будут пытаться «оптимизировать» JVM в плену еще не утихшей радости от удачной компиляции HelloWorld.java.
Для справки:
• Pre-Gingerbread GC:
– Stop-the-world
– Full heap collection
– Pause times often > 100ms
• Gingerbread and beyond:
– Concurrent (mostly)
– Partial collections
– Pause times usually < 5ms
Ну давайте, нагибайте все устройства < Android 2.3 (благо их не много осталось), а на остальных плодите потоки, «ускоряйте» андроид и мешайте Dalvik'y делать свою работу. В зависимости от версии андроид и модели устройства, под каждое приложение отведен максимально допустимый объем памяти. Выделяется он динамически, по мере растущих запросов приложения. Так вот, эта память имеет свойство только раширяться, пока не упрется в OutOfMemory error и не умеет сжиматься(shrink) обратно. Т.е. после ручного вызова GC, поделиться освобожденной памятью с другими приложениями все равно не получится и сэкономится аж целый шиш. Фактически, это даже не связано с андроид, это просто bad practice в мире java, eсли только у вас нет каких-то явных проблем с памятью.
Ну наконец-то! Глядишь, если не лениться, через месяц буду знакомым аппендициты за пиво вырезать!
Полностью соглаен. Не поймите привратно, я отдаю себе отчет, в чем главный посыл этой новости. Я тут пытаюсь шутить вообще-то, не топчите малину!
<extensions>
) и точек расширения (<extensionPoint>
), которые позволяют взаимодействовать с другими плагинами и ядром IDEA. Т.е. интегрироваться можно, если в андроид плагин заложена для этого основа в виде точек расширения. Известные мне точки расширения андроид плагина:Практически как и по всему, что касается разработки плагинов, по ним полностью отсутствует какая бы то ни была документация.
Беглый анализ показал, что ничего сверхестественного там не происходит, нет никакого магического hidden API на котором общаются андроид плагин и SDK. Просто из Android SDK дергаются доступные всем утилиты (adb, aapt, dexdump...) с нужными ключами. Где-то прописанный package был бы очень кстати, но вот название девайса я бы точно нигде не искал. Уж больно непостоянная информация, не вижу причин, по которым они бы ее где-то хранили.
Кстати, если бы не первое предложение, я бы решил, что пост вы не читали). Вариант с обменом ключей в статье указан первым в параграфе «Решения». Даже в этом случае плагин — хорошее подспорье, т.к., кроме прочего, позволяет удалять одновременно.