
Igor
28.07.2016
14:48:18
recycle как раз сбрасывает этот счетчик
но никто, абсолютно никто, не мешает на самим вызвать метод уменьшающий счетчик
можно хоть 2 гига памяти съесть битмапами и с точки зрения memory limits быть белыми и пушистым

Alexander
28.07.2016
14:49:50
если это так просто, зачем ты юзаешь геморой с OutOfMemory который не стабильный по определению?

Google

Igor
28.07.2016
14:50:56
потому что черная магия с ByteBuffer.allocateDirect() - не очень хороша :)

ROMAN
28.07.2016
14:50:59

Igor
28.07.2016
14:51:17
ну я искать не планирую, просто почитайте про ByteBuffer.allocateDirect()
и иже с ним

Alexey
28.07.2016
14:53:04
кстати, у битмапы всё выделяется в нативном коде? почему тогда она джава хип ест?

Igor
28.07.2016
14:53:17
потому что ByteBuffer.allocateDirect() :)
посмотрите на код Bitmap.create

Alexey
28.07.2016
14:53:26
ну байты под пиксели

Igor
28.07.2016
14:53:34
байты под пиксели живут в нативной куче

Alexey
28.07.2016
14:53:47
а allocateDirect что делает?
в джава кучу что ли помещает?

Igor
28.07.2016
14:54:14
не помещает
а отжирает у джава кучи

Google

Igor
28.07.2016
14:54:26
хотя по факту лежит это в нативной куче

Alexey
28.07.2016
14:54:33
а зачем это?

Igor
28.07.2016
14:54:48
а как же тогда лимитировать использование памяти?! :)

Alexey
28.07.2016
14:54:51
т.е. он имитирует что забрал у джава хипа память?

Igor
28.07.2016
14:54:55
именно

Alexey
28.07.2016
14:55:00
вот какой негодяй

Igor
28.07.2016
14:55:08
мегакостыль однако :)
а на самом деле Bitmap память не жрет - всего лишь указатель на нативный битмап

Alexey
28.07.2016
14:55:27
кстати
у fresco есть какой-то хак, чтобы не тратить память приложения на картинки, а хранить их в ash mem

Igor
28.07.2016
14:56:05
нее...ну можно JNI и вперед... :)
хоть все там хранить :)

Alexey
28.07.2016
14:56:26
а как потом в джаву передавать?
ну т.е. в нативе хранить эти байты, а как картинку из них делать, создавать Bitmap?

Igor
28.07.2016
14:56:52
примерно также как гланды вырезают нетрадиционным способом :)
я так далеко не заходил, к счастью :)

Alexey
28.07.2016
14:57:13
я не в курсе как это делают традиционным((

Igor
28.07.2016
14:57:14
я вообще айосер :)

Alexey
28.07.2016
14:57:24
оу

Igor
28.07.2016
14:57:26
но нетрадиционный один - через жопу :)

Google

Alexey
28.07.2016
14:58:27
а там никак нельзя отнаследовать битмап и убрать вызов allocateDirect?

Igor
28.07.2016
14:58:35
я не знаю :)

Alexey
28.07.2016
14:58:41
такие хаки не катят интересно...
наверно приватное там че

Igor
28.07.2016
14:59:03
в любом случае bitmap сам по себе - это хорошо, но он обычно нужен ЗАЧЕМ ТО
в канвас там его нарендерить или еще чего
и тут волей неволей придется работать с Bitmap'ом

Alexey
28.07.2016
14:59:51
ну да, канвас умеет рендерить битмапы, я хз как там хранить в нативном байты и потом их рендерить канвасом хмм.

Igor
28.07.2016
14:59:54
проще всего заюзать хак со сбросом "виртуально аллоциорванной памятью в джава куче"
думаю что никак
потому что drawBitmap кучаешь Bitmap... и дальше уже лезет в нативную кучу за данными известным ему способом
можете исходники посмотреть как там происходит - у меня желания нет :)

Alexey
28.07.2016
15:00:51
ну я примерно и так представляю

Igor
28.07.2016
15:01:08
я смотрел, но сразу захотел это развидеть
я пытался понять как recycle работает

Alexey
28.07.2016
15:01:16
телеграмм работает кстати с нативными байтами
именно чтобы не байтбуферы не юзать
слушал в подкасте разраб телеграмма говорил

Victor
28.07.2016
15:17:06

Alexey
28.07.2016
15:17:54

Google

Andrey
28.07.2016
15:32:49
код телеграма открыт, можно посмотреть как там реализовано

Victor
28.07.2016
15:43:44
что это?
это из protobuf https://github.com/google/protobuf

Alexey
28.07.2016
15:44:52
аа ну так бы и сказал

Victor
28.07.2016
15:44:52

Alexey
28.07.2016
15:45:06
а то ты написал protobyte и я не подумал может ты опечатался

Victor
28.07.2016
15:47:45
не знал что ответить)

Максим
28.07.2016
16:02:58
Привет
AdMob и Firebase теперь связаны
?
Раньше этого не было, насколько я помню

Alexey
28.07.2016
16:20:20
Да теперь так

Максим
28.07.2016
16:24:06
А зачем? Какая связь,

Anastasiya
28.07.2016
16:24:30

ROMAN
28.07.2016
17:32:02
Кто то собрался ОutOfMemory ловить
Экспериментально установил что ThreadPoolExecutor. Позволяет отловить outofmamory поток падает а приложение нет)) не могу найти объяснение этому

Oleg
28.07.2016
17:35:42
Потому что падает не главный поток, и отрываются ссылки, которые из него доступны; поэтому их сможет почистить сборщик.

Максим
28.07.2016
18:05:31
Кто-нибудь связывал AdMob с Firebase?

ROMAN
28.07.2016
18:12:00

Oleg
28.07.2016
18:13:26

ROMAN
28.07.2016
18:14:44

Oleg
28.07.2016
19:01:12
ну да, вроде так. эксперименты ставить некогда, извини; но в общем случае любой Throwable гасит соответствующий Future

Google

Глеб
29.07.2016
02:07:59
Сап! Кто-нибудь шаблоны в AndroidStudio делал? Если пользователь вводит в ${Name} имя SomeFragment, то могу ли я внутри шаблона как-нибудь это обработать — например, отбросить Fragment или свести к нижнему регистру?
Уже нагуглил — ура, там внутри можно что угодно делать

Denis
29.07.2016
06:45:39
Подскажите есть ли готовый фреймворк, набор стилей для андроида по типу бутстрапа ?
Или материал дизайн это и есть фреймворк

ROMAN
29.07.2016
07:01:43
compile 'com.android.support:design:23.2.1'
В градл нужно добавить это и есть материал дизайн.

tirips
29.07.2016
07:08:08
+
библиотека != материал дизайн

ROMAN
29.07.2016
07:10:01

tirips
29.07.2016
07:10:11
О чем я и говорю)

ROMAN
29.07.2016
07:15:41
Кто знает либу или что-то для анализа. Которая могла бы сформировать отчёт сколько времена выполнялся каждый метод в проекте, чтобы найти узкие места и оптимизировать.?

Alexey
29.07.2016
07:16:12
MAT
в AS вообще свой профайлер неплохой, если умеешь им пользоваться

ROMAN
29.07.2016
07:20:41

Nick
29.07.2016
08:33:27
Ребята, всем привет) я из школы loftschool, у нас есть курс loftschool.com/course/android и мы ищем еще одного преподавателя уверенного в java и android. Удаленная работа, которую можно совмещать с основной. Хороший доп.заработок и помощь будущим разработчикам. Кому интересно - пишите сразу в личку в ВК vk.com/chernobaev.nick :)

Alexey
29.07.2016
08:44:43
Прокачку знаний Java и Android SDK
Работу с базами данных SQLite (ORM)
Использование элементов Material Design
Git & Github
Среда разработки Android Studio
Продвинутую работу с Gradle
Профилирование и отладка Android Debug Bridge
Выкладку своего проекта на Google Play
тут на год минимум
так то

Nick
29.07.2016
08:45:30
понятное дело основы даем и крепкую базу