Мы тут недавно вспомнили, что Google обещали выложить исходники Architecture Components, но как-то всё это дело прошло мимо нас и мы их не видели. Так вот, они всё-таки есть, может и вам пригодится.
-
-
- Paging: https://android.googlesource.com/platform/frameworks/support/+/master/paging/common/src/main/java/android/arch/paging
- Room: https://android.googlesource.com/platform/frameworks/support/+/master/room/common/src/main/java/android/arch/persistence/room
#source #architecture #components
-
Lifecycle, LifecycleOwner, LifecycleObserver и прочее разное: https://android.googlesource.com/platform/frameworks/support/+/master/lifecycle/common/src/main/java/android/arch/lifecycle-
ViewModel, LiveData и т.п.: https://android.googlesource.com/platform/frameworks/support/+/master/lifecycle/extensions/src/main/java/android/arch/lifecycle- Paging: https://android.googlesource.com/platform/frameworks/support/+/master/paging/common/src/main/java/android/arch/paging
- Room: https://android.googlesource.com/platform/frameworks/support/+/master/room/common/src/main/java/android/arch/persistence/room
#source #architecture #components
Доклад про новое в Android Support Library.
-
-
-
-
-
- Material components:
* Обновили
*
*
#supportlib #view #material #talk
https://youtu.be/jdKUm8tGogw
-
RecyclerView Selection Library - штука, помогающая реализовать selection над списком. Умеет в selection жесты как в Google Photos, что очень даже неплохо. Хотя, это и не очень-то новость, вроде бы про неё я уже давно что-то слышал-
ListAdapter - какая-то странная поделка, упрощающая использование DiffUtil в меняющихся списках, но, судя по коду, который показали, она не то чтобы сильно сокращает код, который придётся написать + ограничивает ваш Adapter на один List, а этого не всегда достаточно-
androidx.webkit - позволяет использовать WebView, обновляемый через Play Store, на старых API-
CustomTab переезжает в androidx.browser + появляется возможность воткнуться в контекстное меню вашей CustomTab и добавить своё действие-
HeifWriter - позволяет эффективно записать YUV byte buffers, Surface и Bitmap в файл, но пока только на API 28+. Обещают добавить backport- Material components:
* Обновили
TextInputLayout - теперь он с рамкой и вроде бы умеет добавлять кнопку “Очистить”*
Button теперь можно по-разному закруглять и добавлять в них иконки*
BottomAppBar - по сути тот же AppBar, только снизу#supportlib #view #material #talk
https://youtu.be/jdKUm8tGogw
YouTube
Android Jetpack: What’s new in Android Support Library (Google I/O 2018)
Get to know AndroidX -- the new name and packaging for the Android Support Library -- the foundation for Android libraries in Jetpack, and learn about features available in the 1.0.0 release.
Rate this session by signing-in on the I/O website here → htt…
Rate this session by signing-in on the I/O website here → htt…
Очень насыщенный доклад про рисование текста. Пока что из всех Google I/O докладов мне встретилось два настолько насыщенных доклада - этот и про Android rendering pipeline, о нём я писал выше.
Сразу порекомендую посмотреть это видео всем, кому приходится много использовать
Ну и основные highlights:
- Text stack в Android разбит на две части - Java и Native (сразу обратим внимание, что Android контролирует только три верхних уровня - всю Java часть и верхний уровень из Native - Minikin).
* Верхний уровень в Java части - это
* Native часть куда более насыщенная, пройдёмся сверху вниз: Minikin - библиотека для text measurement, line breaking и hyphenation (перенос слов), ICU - работа с Unicode, HarfBuzz - text shaping, FreeType - генерирует bitmaps для всех gliffs, Skia - основной графический движок системы
- Начиная с Android L у нас есть System Wide Word Layout LRU Cache - кэширует до 5000 слов, чтобы переиспользовать результаты обсчётов, когда это же слово снова нужно будет отрисовать
- В Android P ускорили использование simple break strategy вместе с normal или full hyphenation frequency - в детали углубляться не буду, подробности можно найти в видео
- Если с сервака, например, нам приходит строчка, в которой намешано несколько языков, и мы знаем, где какой язык используется, то для правильного переноса слов/строк текста нужно использовать
-
- У нас есть три класса:
- Ещё я увидел интересную фишку с
- Если нужно отрисовать какой-то очень длинный текст, не нужно его целиком запихивать в
- Ну и новая фишка в Android P -
За сим откланиваюсь.
#text #span #textview #talk
https://youtu.be/x-FcOX6ErdI
Сразу порекомендую посмотреть это видео всем, кому приходится много использовать
Span, особенно внутри RecyclerView.Ну и основные highlights:
- Text stack в Android разбит на две части - Java и Native (сразу обратим внимание, что Android контролирует только три верхних уровня - всю Java часть и верхний уровень из Native - Minikin).
* Верхний уровень в Java части - это
TextView и EditText, затем идут Layout, Paint и Canvas* Native часть куда более насыщенная, пройдёмся сверху вниз: Minikin - библиотека для text measurement, line breaking и hyphenation (перенос слов), ICU - работа с Unicode, HarfBuzz - text shaping, FreeType - генерирует bitmaps для всех gliffs, Skia - основной графический движок системы
- Начиная с Android L у нас есть System Wide Word Layout LRU Cache - кэширует до 5000 слов, чтобы переиспользовать результаты обсчётов, когда это же слово снова нужно будет отрисовать
- В Android P ускорили использование simple break strategy вместе с normal или full hyphenation frequency - в детали углубляться не буду, подробности можно найти в видео
- Если с сервака, например, нам приходит строчка, в которой намешано несколько языков, и мы знаем, где какой язык используется, то для правильного переноса слов/строк текста нужно использовать
LocaleSpan-
Span делятся на Paragraph spans (применяются на параграф, очевидно) и Character spans (применяются посимвольно, тоже очевидно). В свою очередь Character spans делятся на Appearance affecting (после применения нужно сделать redraw) и Metric affecting (после применения нужно сделать и remeasure, и redraw). Про написание своих Span в докладе тоже есть кусок, поэтому посмотрите, если нужно- У нас есть три класса:
SpannedString (нельзя mutable text, нельзя mutable markup), SpannableString (нельзя mutable text, можно mutable markup) и SpannableStringBuilder (можно mutable text, можно mutable markup). В докладе показали сравнение производительности SpannableString и SpannableStringBuilder (они по-разному устроены внутри: один на массиве, второй на деревьях), результаты следующие: до 250 Span они ведут себя одинаково, дальше SpannableStringBuilder выигрывает. Ну, вы поняли, что использовать :)- Ещё я увидел интересную фишку с
<annotaion/> тэгом внутри strings.xml. Допустим, у вас есть какая-то строка, переведённая на несколько языков. Вам нужно применить какой-то Span на определённое слово в этой строке. Но в одном языке это слово стоит в одном месте, а в другом языке - в другом. Вот ровно эту проблему решает <annotation/> тэг. Если такая задача перед вами стоит - сходите посмотрите.- Если нужно отрисовать какой-то очень длинный текст, не нужно его целиком запихивать в
TextView. Разбейте на параграфы и используйте RecyclerView.- Ну и новая фишка в Android P -
Magnifier. Это такая экранная лупа, которая поможет с выделением текста. Для TextView и EditText она будет работать из коробки, но и к своим custom View её можно прикрутить.За сим откланиваюсь.
#text #span #textview #talk
https://youtu.be/x-FcOX6ErdI
YouTube
Best practices for text on Android (Google I/O '18)
This session will cover common usages of text in Android apps, and common pitfalls developers fall into that can be avoided. Topics to be covered include styling with spans, working with editable text, measuring your own text, when and how to use different…
Новость, которая будет интересна всем Google Developer Experts (GDE) и тем, кто планирует получить этот статус. Каждый GDE теперь может получить бесплатную лицензию на все продукты JetBrains.
#gde #google #intellij #jetbrains
https://www.jetbrains.com/shop/eform/devrecognition
#gde #google #intellij #jetbrains
https://www.jetbrains.com/shop/eform/devrecognition
Неплохая статья в блоге Karumi с некоторыми советами/фишками по Kotlin. Многое из того, что там есть, довольно очевидно и баян. Но есть и очень приятные вещи типа
#kotlin #tips
http://blog.karumi.com/kotlin-android-development-6-months-into-it/
.exhaustive для when. Советую посмотреть.#kotlin #tips
http://blog.karumi.com/kotlin-android-development-6-months-into-it/
Karumi Blog
Kotlin Android development - 6 months into it
Tips and tricks after 6 months working with Kotlin for Android - Karumi
@istima прислал ссылку на статью с перечислением Google приложений и сайтов, которые уже адаптировали обновленные Material Design гайдлайны. Посмотрите, если интересно.
#google #material #guidelines
https://9to5google.com/2018/05/22/full-list-google-apps-material-theme-design-2/
#google #material #guidelines
https://9to5google.com/2018/05/22/full-list-google-apps-material-theme-design-2/
Слушайте, а доклады на какие темы вам бы больше хотелось видеть на конференциях? Даже если вы на них совсем не ходите, какие темы вызывают наибольший интерес? Давайте проведём мини-опрос.
Я не нашёл бота, который позволил бы делать множественный выбор и умел бы работать с таким кол-вом вариантов, но давайте хотя бы через Google форму. Там всего один вопрос, займёт меньше минуты :)
Через недельку подведём итоги.
#survey #conference
https://goo.gl/forms/Nfuwk8BNVZUwROV53
Я не нашёл бота, который позволил бы делать множественный выбор и умел бы работать с таким кол-вом вариантов, но давайте хотя бы через Google форму. Там всего один вопрос, займёт меньше минуты :)
Через недельку подведём итоги.
#survey #conference
https://goo.gl/forms/Nfuwk8BNVZUwROV53
Google Docs
Android Дичь - опрос про интересные темы
Разработка ждёт балета pinned «Слушайте, а доклады на какие темы вам бы больше хотелось видеть на конференциях? Даже если вы на них совсем не ходите, какие темы вызывают наибольший интерес? Давайте проведём мини-опрос. Я не нашёл бота, который позволил бы делать множественный выбор и умел…»
Как и обещал, подводим итоги опроса про интересующие вас темы. Спасибо всем, кто уделил минутку! Напомню, что можно было выбирать от 1 до 16 вариантов интересующих тем. Кстати, как меня потом пнул @pro100svitlo, я совсем забыл включить вариант про Б - Безопасность.
Итак, получилось вот что:
* Всего ответов: 127
* Минимально выбирали тем: 1
* Максимально выбирали тем: 16 (т.е. все)
* В среднем выбирали по 6.7 вариантов
* По медиане - выбирали 6
Теперь топ-5 тем:
* 11% - Архитектура - разные паттерны или примеры проектирования определённых слоёв приложения
* 11% - Внутренности View в Android, написание своих View и ViewGroup
* 10% - Интересное из области performance в Android
* 9% - Material Design с точки зрения разработчика - может какие-то интересные выработанные подходы
* 8% - Какие-то непосредственные кишки Android - интересная но не всегда практичная инфа
Полная табличка с результатами есть по ссылке.
#survey #results #conference
https://docs.google.com/spreadsheets/d/1u6v7EY1i9Rgmw8f_WIfAy7F9rPxw8T73wIyMgZfxkFU/edit?usp=sharing
Итак, получилось вот что:
* Всего ответов: 127
* Минимально выбирали тем: 1
* Максимально выбирали тем: 16 (т.е. все)
* В среднем выбирали по 6.7 вариантов
* По медиане - выбирали 6
Теперь топ-5 тем:
* 11% - Архитектура - разные паттерны или примеры проектирования определённых слоёв приложения
* 11% - Внутренности View в Android, написание своих View и ViewGroup
* 10% - Интересное из области performance в Android
* 9% - Material Design с точки зрения разработчика - может какие-то интересные выработанные подходы
* 8% - Какие-то непосредственные кишки Android - интересная но не всегда практичная инфа
Полная табличка с результатами есть по ссылке.
#survey #results #conference
https://docs.google.com/spreadsheets/d/1u6v7EY1i9Rgmw8f_WIfAy7F9rPxw8T73wIyMgZfxkFU/edit?usp=sharing
Google Docs
Android Дичь - опрос про интересные темы (Responses)
items stats
Вопрос,Кол-во,Процент от общего,Процент выбравших,Min,1
Архитектура - разные паттерны или примеры проектирования определённых слоёв приложения,92,11%,72.40%,Max,16
Внутренности View в Android, написание своих View и ViewGroup,92,11%,52.80%,Mean…
Вопрос,Кол-во,Процент от общего,Процент выбравших,Min,1
Архитектура - разные паттерны или примеры проектирования определённых слоёв приложения,92,11%,72.40%,Max,16
Внутренности View в Android, написание своих View и ViewGroup,92,11%,52.80%,Mean…
Внезапно (не то чтобы очень, но всё же) Google убрали раздел Tablet с android-dot-com. Пациент и раньше был скорее мёртв, чем жив, так что я радуюсь. А за новость скажем спасибо @istima.
#tablet #chromeos #google
https://techcrunch.com/2018/06/01/google-quits-selling-tablets/
#tablet #chromeos #google
https://techcrunch.com/2018/06/01/google-quits-selling-tablets/
TechCrunch
Google quits selling tablets (Update: Just a bug)
Google has quietly crept out of the tablet business, removing the "tablets" heading from its Android page. Google in particular has struggled to make Android a convincing alternative to iOS in the tablet realm, and with this move has clearly indicated its…
Google Photos Library API:
* Возможность показывать юзерам фото из их Photos библиотеки. И Smart Filters позволяют фильтровать по: тегам (распознанное в Cloud Vision API), датам и интервалам дат
* Возможность загружать фото в Photos юзера
* Инфраструктура для шэринга фото - шэринг через ссылку на shared album
#talk #google #photos
https://youtu.be/KIFfibtzaEo
* Возможность показывать юзерам фото из их Photos библиотеки. И Smart Filters позволяют фильтровать по: тегам (распознанное в Cloud Vision API), датам и интервалам дат
* Возможность загружать фото в Photos юзера
* Инфраструктура для шэринга фото - шэринг через ссылку на shared album
#talk #google #photos
https://youtu.be/KIFfibtzaEo
YouTube
Bring the best of Google Photos to your app (Google I/O '18)
Google Photos was designed to make it easier for people to organize a lifetime of memories. The recently announced API now lets you harness the best of Google Photos in your own product. In this session, you'll see how you can create experiences that eliminate…
Разработка ждёт балета
Внезапно (не то чтобы очень, но всё же) Google убрали раздел Tablet с android-dot-com. Пациент и раньше был скорее мёртв, чем жив, так что я радуюсь. А за новость скажем спасибо @istima. #tablet #chromeos #google https://techcrunch.com/2018/06/01/google-quits…
Оказалось, что пропажа tablets раздела с android-dot-com - всего лишь баг, который не заметили сразу. За поправку спасибо @Scorpikk. Но я по-прежнему настаиваю, что пациент скорее мёртв :)
#tablet #google
https://www.engadget.com/2018/06/02/google-killed-android-tablet-section
#tablet #google
https://www.engadget.com/2018/06/02/google-killed-android-tablet-section
Engadget
Google quietly killed its Android tablet web page (update: it's back)
The official Android tablet page no longer exists.
Сразу две статьи из серии, в которой планируется рассказать об уроках, вынесенных из разработки cooperative multitasking библиотеки поверх Kotlin coroutines. Всё это слабо затрагивает Android-разработку, но любителям Kotlin и корутин должно зайти.
В первой статье речь в основном пойдёт о разнице между вертикальной и горизонтальной обработкой.
Во второй же статье - про оптимизацию suspending functions на примере реализации очереди.
#kotlin #coroutine
https://blog.pronghorn.tech/cooperative-multitasking-with-kotlin-coroutines/
http://blog.pronghorn.tech/optimizing-suspending-functions-in-kotlin/
В первой статье речь в основном пойдёт о разнице между вертикальной и горизонтальной обработкой.
Во второй же статье - про оптимизацию suspending functions на примере реализации очереди.
#kotlin #coroutine
https://blog.pronghorn.tech/cooperative-multitasking-with-kotlin-coroutines/
http://blog.pronghorn.tech/optimizing-suspending-functions-in-kotlin/
Если тебе ну вот прямо ни разу не интересен серверный мир, можешь смело пропускать пост. В противном случае - привет. Доклад от создателя Node.js Ryan Dahl, в котором он рассказал, о чём в Node он сожалеет и что нас ожидает в его новой поделке: Deno.
Увы-и-ахи:
* Node не остался на Promise
* Безопасность - в Node тебе доступно всё, что можно
* Система сборки - Node привязан к GYP, на ней же сидел Chrome, когда Node начинался. Только вот Chrome переехал на GN, а GYP из Node уже не выпилить
*
* node_modules
*
* index.js
Что же такое Deno? Ryan назвал его “A secure TypeScript runtime on V8”. Пока это дело в разработке и пользоваться им не стоит, но мы привыкли ждать :)
В чём основные цели Deno?
* Использовать V8 secure sandbox, не давать произвольным native функциям залезать в V8. Внутри это устроено так: бежит Deno Process (к слову, написан на Go), у которого есть все permissions. Внутри него бежит V8, у которого этих самых permissions примерно нихрена. И связывается всё это по простой send-receive схеме поверх Protobuf.
* Упростить систему модулей
- Дружное нет переиспользованию текущей Node modules экосистемы
- import statements должны содержать расширение файла (и довольно похожи на Go)
- Импорты по URL подтягиваются только первый раз и кэшируются
- Vendoring возможен через указание non-default cache directory
* Только один исполняемый файл на выходе (кажется, чуваку очень понравился Go)
* TypeScript компилятор встроен в исполняемый файл (Ryan очень тепло отзывался о TypeScript и назвал Dart total failure)
* “Die as soon as it gets an error”
* Поддержка top-level await
* Быть browser-compatible там, где это возможно
#talk #nodejs #deno
https://youtu.be/M3BM9TB-8yA
Увы-и-ахи:
* Node не остался на Promise
* Безопасность - в Node тебе доступно всё, что можно
* Система сборки - Node привязан к GYP, на ней же сидел Chrome, когда Node начинался. Только вот Chrome переехал на GN, а GYP из Node уже не выпилить
*
package.json* node_modules
*
require(“module”) должен содержать расширение файла* index.js
Что же такое Deno? Ryan назвал его “A secure TypeScript runtime on V8”. Пока это дело в разработке и пользоваться им не стоит, но мы привыкли ждать :)
В чём основные цели Deno?
* Использовать V8 secure sandbox, не давать произвольным native функциям залезать в V8. Внутри это устроено так: бежит Deno Process (к слову, написан на Go), у которого есть все permissions. Внутри него бежит V8, у которого этих самых permissions примерно нихрена. И связывается всё это по простой send-receive схеме поверх Protobuf.
* Упростить систему модулей
- Дружное нет переиспользованию текущей Node modules экосистемы
- import statements должны содержать расширение файла (и довольно похожи на Go)
- Импорты по URL подтягиваются только первый раз и кэшируются
- Vendoring возможен через указание non-default cache directory
* Только один исполняемый файл на выходе (кажется, чуваку очень понравился Go)
* TypeScript компилятор встроен в исполняемый файл (Ryan очень тепло отзывался о TypeScript и назвал Dart total failure)
* “Die as soon as it gets an error”
* Поддержка top-level await
* Быть browser-compatible там, где это возможно
#talk #nodejs #deno
https://youtu.be/M3BM9TB-8yA
YouTube
10 Things I Regret About Node.js - Ryan Dahl - JSConf EU
See also https://github.com/ry/deno
JSConf EU is coming back in 2019 https://2019.jsconf.eu/
JSConf EU is coming back in 2019 https://2019.jsconf.eu/
@duglasher в очередной раз нам с вами кое-чего подкинул. На этот раз доклад Владимира Иванова про миграцию с RxJava на Kotlin Coroutines. Доклад на примере простого Github клиента показывает следующее:
* Проблемы RxJava
- Создаётся много overhead
- Сложный stacktrace, который ещё и не указывает на то, откуда всё изначально вызывалось
- Необходимость обучать новых разрабов, которые с RxJava не работали
* По Kotlin Coroutines:
- Легче читать, т.к. код асинхронный, но пишется как синхронный
- Обработка ошибок средствами языка
- Stacktrace всё ещё не очень, хоть и не такой длинный
Теперь немного про остальное в докладе:
* Deferred - оно как Future, только другое:
- Non-blocking
- cancellable
* Что есть suspension?
- Если обычно при вызове блокирующего метода текущий поток останавливается, то при вызове suspending function поток продолжает выполняться, а корутина уходит на выполнение к своему context.
- То есть suspension означает, что мы не блокируем, а только приостанавливаем поток, что в свою очередь означает возможность продолжить выполнение с того же места, но накладывает ограничение - suspension может случиться только в определённых местах (там, где можно вызвать fun с suspend модификатором)
* Показано, как мигрировать тесты
* И немного про работу с Kotlin Channels
#talk #rxjava #kotlin #coroutine
https://youtu.be/dQSLfj8EoVU
* Проблемы RxJava
- Создаётся много overhead
- Сложный stacktrace, который ещё и не указывает на то, откуда всё изначально вызывалось
- Необходимость обучать новых разрабов, которые с RxJava не работали
* По Kotlin Coroutines:
- Легче читать, т.к. код асинхронный, но пишется как синхронный
- Обработка ошибок средствами языка
- Stacktrace всё ещё не очень, хоть и не такой длинный
Теперь немного про остальное в докладе:
* Deferred - оно как Future, только другое:
- Non-blocking
- cancellable
* Что есть suspension?
- Если обычно при вызове блокирующего метода текущий поток останавливается, то при вызове suspending function поток продолжает выполняться, а корутина уходит на выполнение к своему context.
- То есть suspension означает, что мы не блокируем, а только приостанавливаем поток, что в свою очередь означает возможность продолжить выполнение с того же места, но накладывает ограничение - suspension может случиться только в определённых местах (там, где можно вызвать fun с suspend модификатором)
* Показано, как мигрировать тесты
* И немного про работу с Kotlin Channels
#talk #rxjava #kotlin #coroutine
https://youtu.be/dQSLfj8EoVU
YouTube
#Mobile, Владимир Иванов, RxJava не нужен: меняем Rx на корутины в Котлине
Владимир Иванов
EPAM Systems
RxJava не нужен: меняем Rx на корутины в Котлине
Судя по опросам 61 процент людей начиная писать Android приложение на Kotlin будут использовать RxJava 2 в качестве инструмента для управления фоновой работой. Но у RxJava есть…
EPAM Systems
RxJava не нужен: меняем Rx на корутины в Котлине
Судя по опросам 61 процент людей начиная писать Android приложение на Kotlin будут использовать RxJava 2 в качестве инструмента для управления фоновой работой. Но у RxJava есть…
Помните Temple Run? Была когда-то такая игрушка. Вот в статье по ссылке описан reverse engineering этого дела. Статья не самая подробная, но даже если опыта в таких вещах нет, я бы советовал прочитать.
#unity #reverse #cybersec
https://www.rotlogix.com/blog/2018/6/10/reverse-engineering-android-unity-games-part-one
#unity #reverse #cybersec
https://www.rotlogix.com/blog/2018/6/10/reverse-engineering-android-unity-games-part-one
Просто интересная находка: статья от Romain Guy из ранних времён Android про некоторые оптимизации рисования background’ов.
#view #performance
http://www.curious-creature.com/2009/03/04/speed-up-your-android-ui/
#view #performance
http://www.curious-creature.com/2009/03/04/speed-up-your-android-ui/
Forwarded from Android Good Reads
Напоминаю, что остался буквально месяц до закрытия подачи заявок на AppsConf. Для вас это отличный шанс воспользоваться помощью опытных ребят из программного комитета, которые будут курировать вашу заявку, помогут и с рассказом, и со слайдами. Если есть вопросы, пишите прямо @etolstoy в личку, помогу с составлением заявки и тезисов.
http://conf.ontico.ru/lectures/propose?conference=ac2018
http://conf.ontico.ru/lectures/propose?conference=ac2018
Забавная статья, с не менее забавным названием: “Forget about Clean Code, let’s embrace Compassionate Code”.
#clean #code
http://johannesbrodwall.com/2018/06/24/forget-about-clean-code-lets-embrace-compassionate-code/
#clean #code
http://johannesbrodwall.com/2018/06/24/forget-about-clean-code-lets-embrace-compassionate-code/
Мда… Давненько я сюда ничего не писал. Извиняюсь, в последнее время всё как-то кувырком, совсем не было времени.
Сегодня будет статья с хорошим разбором priority buckets в Android P. Суть в том, что теперь приложения получают разные возможности (на Jobs, Alarms, FCM уведомления и на доступ в сеть) в зависимости от паттерна их использования (запущен ли апп, foreground сервисы, sync adapter и т.п. и как часто пользователь приложение запускает). А подробности, как и всегда, найдёшь по ссылке.
#androidp #battery #performance
https://medium.com/google-developer-experts/exploring-android-p-priority-buckets-d34d12059d36
Сегодня будет статья с хорошим разбором priority buckets в Android P. Суть в том, что теперь приложения получают разные возможности (на Jobs, Alarms, FCM уведомления и на доступ в сеть) в зависимости от паттерна их использования (запущен ли апп, foreground сервисы, sync adapter и т.п. и как часто пользователь приложение запускает). А подробности, как и всегда, найдёшь по ссылке.
#androidp #battery #performance
https://medium.com/google-developer-experts/exploring-android-p-priority-buckets-d34d12059d36
Medium
Exploring Android P: Priority Buckets
At Google I/O there were a lot of new announcements around the latest version of Android, P. One of these announcements were Priority…
Просьбы о помощи пост.
Моему хорошему другу - прекрасной Оксане - очень нужно выстроить ферму мобильных девайсов для проведения нагрузочного тестирования Wi-Fi сетки в условиях, максимально близких к реальным. Если среди вас или ваших друзей есть те, кто шарит за такие вещи и готов поработать, отзовитесь! :)
За шэр - отдельное и очень большое спасибо.
#help #wifi #testing
https://www.facebook.com/okokawa/posts/10212047953099638
Моему хорошему другу - прекрасной Оксане - очень нужно выстроить ферму мобильных девайсов для проведения нагрузочного тестирования Wi-Fi сетки в условиях, максимально близких к реальным. Если среди вас или ваших друзей есть те, кто шарит за такие вещи и готов поработать, отзовитесь! :)
За шэр - отдельное и очень большое спасибо.
#help #wifi #testing
https://www.facebook.com/okokawa/posts/10212047953099638
Facebook
Oxana Kashirskaya
Ребят, я осознаю, что читать подобный пост у меня на стене как минимум странно😜 Так уж сложилось, что мне необходимо сделать ферму из телефонов для тестирования различных типов нагрузки на wi-fi сеть...