у каждого подмодуля должен быть build.gradle файл в котором и надо указывать версию саппорта или в рутовом билде прописывать отдельно для каждого подмодуля при помощи
project('подмодуль') {
//тут билд для подмодуля
}
ну или для вссех сразу через subprojects{}
Но ,имхо, держать несколько сапортов не самая выдающаяся идея. Сильно увеличивается время сборки и общее количество методов
./gradlew dependencies
смотрите в каких подмодулях есть лишние саппорты, а потом в билде exlude для подпроекта или подключенной библиотеки. Так можно удалять не только саппорты, но и любые дубликаты либ
https://medium.com/ ,например. Исходники проектов с презентации google i/o. Исходники популярных либ тоже не мешает изучить. Блогов уйма, все их не перечислить, все зависит от того какой технологией вы интересуетесь, но медиум лучший из всех.
может быть вам базу поднять если инфы так уж много? Вы можете использовать методы жизненного цикла активити. Хотя может вам и не подойдет, все зависит от реализации. Но всегда будет вероятность потерять данные, если вы их сразу не сохраните
В МК забиваешь программу по которой она работает, в ПЛИС схему, которая будет зашита в ней. Если разбираетесь в схемотехнике, то лучше плисы, т.к. на нем можно самому МК сварганить простенький, да есть экземпляры со встроенными мк. Мне ПЛИС больше по душе.
Denis Zagayevskiy Давайте начнем с того, что пока gc не почистит объекты на которые нет жестких ссылок они буду валяться в куче(а тут явное создание битмапы в цикле), и за время пока gc их не сожрет их может накопиться достаточное количество чтобы вызвать OOM
SoftReference перечитал доку изучил, больше материала - согласен, не знал
Про алгоритм сложения строк вы тоже правы, но один момент упущен. Если создать стринг билдер до цикла, и использовать его в нем, то строка будет создана только тогда, когда мы будем дергать ту стринг. Итого 1 билдер, вместо нового на каждую итерацию. А если необходима скорость то лучше родного concat ничего нет.
По теме: падать кстати у вас может совсем из за друго причины. У вас может течь активити или контекст, а так работа с битмапами весьма затратная, то падает именно тут. Я бы порекомендовал еще сделать дамп хипа и проверить нет ли лишних инстансов активити/фрагментов. Во вкладке AndroidMonitor есть вкладочка Memory, балуетесь с приложением некоторое время, затем жмете на кнопку сборщика мусора, затем дампа хипа. В появившейся вкладке проверяете нет ли лишних инстансов.