Довольно интересная статья про Activity lifecycle. Автор предлагает интересный подход к тому, что именно писать в onCreate, onStart и т.п. методах. В принципе, ничего особенно нового в статье нет, но освежить в памяти хорошо забытое старое всегда полезно.
#activity #lifecycle
https://www.techyourchance.com/android-activity-life-cycle-for-professional-developers/
#activity #lifecycle
https://www.techyourchance.com/android-activity-life-cycle-for-professional-developers/
TechYourChance
Android Activity Lifecycle
This article describes the most practical, minimal and robust approach to management of Activity lifecycle in Android applications.
Весьма длинная статья, в которой хорошо разобраны цифровые подписи.
#signature #cryptography #cybersec
https://blog.cryptographyengineering.com/2018/04/07/hash-based-signatures-an-illustrated-primer/
#signature #cryptography #cybersec
https://blog.cryptographyengineering.com/2018/04/07/hash-based-signatures-an-illustrated-primer/
A Few Thoughts on Cryptographic Engineering
Hash-based Signatures: An illustrated Primer
Over the past several years I’ve been privileged to observe two contradictory and fascinating trends. The first is that we’re finally starting to use the cryptography that researchers h…
Интересный оффтоп. Замечательная статья, в которой очень подробно описан каждый шаг boot процесса для Linux: от power-кнопки до готовой к работе системы.
#linux #boot #kernel
https://www.ibm.com/developerworks/library/l-linuxboot/
#linux #boot #kernel
https://www.ibm.com/developerworks/library/l-linuxboot/
Статья уровня “для начинающих”, но мне почему-то дико зашло. Чувак очень элегантно скрестил logger с Kotlin-фишками и кусочком Timber, который позволяет достать имя класса, из которого был вызван метод logger.
#kotlin #log
https://www.varvet.com/blog/logger/
#kotlin #log
https://www.varvet.com/blog/logger/
Varvet
Varvet creates beautiful, valuable, and useful digital services, websites, and apps.
Небольшой обзор новых View в 28-й support library. В целом, всё как обычно. Добавили несколько View, которые все уже написали сами. Всё равно приятно, если работать это будет нормально, разумеется. Мне особо понравились изменения в кнопках - видно, что Material не стоит на месте и потихоньку меняется в лучшую сторону.
#material #supportlib
https://medium.com/exploring-android/exploring-the-v28-android-design-support-library-2c96c6031ae8
#material #supportlib
https://medium.com/exploring-android/exploring-the-v28-android-design-support-library-2c96c6031ae8
Medium
Exploring the v28 Android Design Support Library Additions
Version 28 of the Android support library was recently announced — within the current alpha version there is a collection of exciting new…
Ребята из Uber написали о том, как они на программном уровне улучшили GPS (и не только, куда же без GLONASS) позиционирование. Жаль только, что работать это будет не во всех городах и не на всех девайсах.
#gps #location
https://eng.uber.com/rethinking-gps/
#gps #location
https://eng.uber.com/rethinking-gps/
В статье разбирается, какие методы обычно используются в приложениях, чтобы понять, что они бегут на эмуляторе, и как эти проверки обойти.
#emulator #cybersec
http://www.juanurs.com/Bypassing-Android-Anti-Emulation-Part-I/
#emulator #cybersec
http://www.juanurs.com/Bypassing-Android-Anti-Emulation-Part-I/
Неплохую статью прислал @duglasher. В блоге Instagram Engineering вышла статья про то, как они пилили type mode (a.k.a. лень фотографировать, просто разукрашу текст) на iOS и Android. Часть про адаптацию размера текста довольно простая, а вот часть про
#instagram #text #span
https://instagram-engineering.com/building-type-mode-for-stories-on-ios-and-android-8804e927feba
Span мне понравилась, есть интересные советы, которые много где могут пригодиться.#instagram #text #span
https://instagram-engineering.com/building-type-mode-for-stories-on-ios-and-android-8804e927feba
Instagram Engineering
Building Type Mode for Stories on iOS and Android
Instagram recently launched Type Mode, a new way to post creative, dynamic text styles and backgrounds to Stories. Type Mode was an…
Внезапно, начиная с 15.0.0 версии, принцип версионирования Google Play Services и Firebase библиотек меняется на SemVer.
#google #playservices #firebase
https://android-developers.googleblog.com/2018/05/announcing-new-sdk-versioning.html
#google #playservices #firebase
https://android-developers.googleblog.com/2018/05/announcing-new-sdk-versioning.html
Android Developers Blog
Announcing new SDK versioning in Google Play services and Firebase
Posted by Doug Stevenson, Developer Advocate Starting today, the Android SDKs for Google Play services and Firebase will be using a n...
@Scorpikk прислал весёлую находку из кода ContentResolver.
#aosp #humor
android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/content/ContentResolver.java#757
#aosp #humor
android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/content/ContentResolver.java#757
Ребята из Uber показали свой доморощенный method tracing tool. И вот знаете, с одной стороны, богатая идея, а с другой, немножко пугает: они решили измерять с уровня системы, т.е. их тул это форк AOSP, который умеет бенчмаркать. Такие дела.
#performance #benchmarks #methodtracing
https://eng.uber.com/nanoscope
#performance #benchmarks #methodtracing
https://eng.uber.com/nanoscope
Ну, вы знаете, на днях закончился Google I/O. Мне не удалось на нём побывать, но иметь материал где-то на подкорке хочется. Я думаю, что не один в таком положении. Поэтому я буду потихоньку смотреть записи всех сессий, что мне показались интересными, и закидывать сюда поинты из каждого видео, которые меня заинтересуют. Не в каждый нюанс я буду погружаться достаточно глубоко, поэтому, если где-то ошибусь, feel free to написать мне, что я мудак и объяснить, в чём именно :) Итак, первый пошёл…
Есть проблема. Я её, например, ощущаю на себе: все приложения соответствуют Material Design и почти все выглядят одинаково скучно. Размывается индивидуальность бренда. На выбор компании остаются только цвет да иконки (не всегда, но часто). И, хотя Google-guys с самого начала говорили, что material - это рекомендация, а не жёсткие рамки, почти все всё равно лепили по material-лекалам одно и то же безобразие. Ну, Google поняли, что имеют дело со стадом хомячков, и решили добавить нам степеней свободы. Посредством Material Theming нам дают свободу (и тулзы, чтобы эту свободу держать в узде - сочетай цвета, мать твою) в выборе цветов, шрифтов и форм для элементов на экране.
Появился Sketch-плагин, который позволит переложить работу дизайнера в стили для Material Components - пачки написанных для нас View.
Ещё мне очень понравился момент с формой контролов (см. картинку выше), который даёт дополнительное понимание z-level’а компонентов.
#talk #material #design
https://youtu.be/3VUMl_l-_fI
Появился Sketch-плагин, который позволит переложить работу дизайнера в стили для Material Components - пачки написанных для нас View.
Ещё мне очень понравился момент с формой контролов (см. картинку выше), который даёт дополнительное понимание z-level’а компонентов.
#talk #material #design
https://youtu.be/3VUMl_l-_fI
YouTube
Customize Material Components for your product (Google I/O '18)
Take advantage of Material’s new expressiveness and adaptability by learning how to customize Material Design Components and quickly build beautiful products for Android, iOS, web, and Flutter.
Rate this session by signing-in on the I/O website here → h…
Rate this session by signing-in on the I/O website here → h…
Выступление Chet Haase и Romain Guy. Тут ты должен был стать заинтригован.
В докладе описывается весь Android Rendering Pipeline, но поскольку вместить это в 40 минут не получится, доклад выглядит как быстрое набрасывание названий разных классов и модулей. Тем не менее, вдумчиво его посмотреть я бы скорее советовал.
Наброшу несколько названий из доклада, чтобы ты понимал, о чём речь: Choreographer, VSync, UI Thread, RenderThread, SurfaceFlinger, BufferQueue, Hardware Composer (HWC).
Теперь несколько интересных фактов из сессии:
1. Начиная с Android Oreo можно использовать
2. Кусочек хинта (почему так - см. видео) - чем меньше
3. Метод
4. “RecyclerView is now able to do prefetching of items ahead of time”
5. Graphika app on Github - пачка примеров с использованием SurfaceFlinger, Surface, SurfaceView, media encoder, virtual displays.
6.
Подробности обо всём этом найдёшь по ссылке.
#rendering #window #surface #gpu
https://youtu.be/zdQRIYOST64
В докладе описывается весь Android Rendering Pipeline, но поскольку вместить это в 40 минут не получится, доклад выглядит как быстрое набрасывание названий разных классов и модулей. Тем не менее, вдумчиво его посмотреть я бы скорее советовал.
Наброшу несколько названий из доклада, чтобы ты понимал, о чём речь: Choreographer, VSync, UI Thread, RenderThread, SurfaceFlinger, BufferQueue, Hardware Composer (HWC).
Теперь несколько интересных фактов из сессии:
1. Начиная с Android Oreo можно использовать
Bitmap.Config.HARDWARE, чтобы аллоцировать Bitmap напрямую на GPU и не тратить время на копирование. Недостаток: если серьёзно разойтись, можно получить пачку совершенно невнятных крашей из глубин фреймворка2. Кусочек хинта (почему так - см. видео) - чем меньше
Window объектов на экране, тем лучше3. Метод
invalidate(left, top, right, bottom) можно больше не дрочить - система уже умеет неплохо оптимизировать этот момент, а багов от его использования уйма4. “RecyclerView is now able to do prefetching of items ahead of time”
5. Graphika app on Github - пачка примеров с использованием SurfaceFlinger, Surface, SurfaceView, media encoder, virtual displays.
6.
adb shell dumpsys SurfaceFlinger лучше выполнять, когда что-то анимируется/меняется на экране, иначе можно получить не совсем точные данные из-за дополнительных оптимизацийПодробности обо всём этом найдёшь по ссылке.
#rendering #window #surface #gpu
https://youtu.be/zdQRIYOST64
YouTube
Drawn out: How Android renders (Google I/O '18)
Come learn how Android turns your app's UI into pixels on the screen. Understanding how things work under the hood can help you figure out how to get the best performance for your applications.
Rate this session by signing-in on the I/O website here → h…
Rate this session by signing-in on the I/O website here → h…
В видео по ссылке рассказывают, что нового в ART в Android P:
1. Оптимизации компилятора для Kotlin (например, inline null-checks для non-null параметров)
2. CompactDex - штука, которая почикает Dex-файлы прямо на девайсе. Умеет: deduplicate and shrink code items, deduplicate multidex data, incorporate profile based Dex layout optimization (сложить методы, которые дёргаются часто или на старте в одно место в памяти)
3. На Nougat появились code profiles - во время выполнения аппа проверяется, какой код и когда выполняется и применяются соответствующие оптимизации. На Android P пошли дальше: появляется cloud profiles - данные о выполнении вашего кода загружаются в облако и оттуда прилетают другим юзерам. То есть если на Nougat чем чаще апп использовался, тем лучше работал, то на Android P ребята из Google хотят добиться оптимальной производительности сразу после установки, как раз благодаря cloud profiles. А теперь гениальная идея из их доклада: берём 1%-2% юзеров из alpha и beta каналов, они используют апп, а потом на всех юзеров уже раскатывается апп, для которого собраны все profiles и апп сразу работает оптимально. Любо!
#kotlin #art #performance #optimize
https://youtu.be/Yi9-BqUxsno
1. Оптимизации компилятора для Kotlin (например, inline null-checks для non-null параметров)
2. CompactDex - штука, которая почикает Dex-файлы прямо на девайсе. Умеет: deduplicate and shrink code items, deduplicate multidex data, incorporate profile based Dex layout optimization (сложить методы, которые дёргаются часто или на старте в одно место в памяти)
3. На Nougat появились code profiles - во время выполнения аппа проверяется, какой код и когда выполняется и применяются соответствующие оптимизации. На Android P пошли дальше: появляется cloud profiles - данные о выполнении вашего кода загружаются в облако и оттуда прилетают другим юзерам. То есть если на Nougat чем чаще апп использовался, тем лучше работал, то на Android P ребята из Google хотят добиться оптимальной производительности сразу после установки, как раз благодаря cloud profiles. А теперь гениальная идея из их доклада: берём 1%-2% юзеров из alpha и beta каналов, они используют апп, а потом на всех юзеров уже раскатывается апп, для которого собраны все profiles и апп сразу работает оптимально. Любо!
#kotlin #art #performance #optimize
https://youtu.be/Yi9-BqUxsno
YouTube
What's new in Android Runtime (Google I/O '18)
If you use the Java or Kotlin programming languages to develop on Android, Android Runtime (ART) is what ensures your code runs quickly and efficiently. Learn more about how ART makes it easier to write a great Android app with improvements in debugging and…
Доклад про то, что нового в Android development tools. Отмечу следующее:
- Android Studio 3.2:
* What’s new window
* App bundle generation
* Dynamic features support
* “Sessions” window in profiler
* Energy profiler
* AndroidX refactoring - перевести всё на новую версию support-библиотек. Ещё появился Jetifier: “converts legacy Maven artefacts to the new AndroidX namespace and caches those for new builds”
* Navigation library и UI для неё - позволяет выстроить всю навигацию одним xml, в том числе умеет добавлять анимации переходам, позволяет удобно прописать deeplinks и даже вроде бы позволяет разрулить передачу аргументов в Activity/Fragment
* Layout Editor - появляются всякие кнопки и меню для быстрого добавления sample data в design-режиме
* Запустили студию на Pixel Chromebook (no ADB yet - “you can upload straight to the Play Store and hope for the best”)
* D8 - new default Dexer & R8 - new default optimizer
* Бонус: показали фичу, которая в разработке (сказали, выйдет наверное даже не в 3.3) и использует следующую версию ConstraintLayout - работа с transition анимациями прямо из UI.
- Emulator:
* Save and replay snapshots
* Better camera to support AR apps
Ну, как-то так.
#studio #emulator #adt
https://youtu.be/WxAZk7A7OkM
- Android Studio 3.2:
* What’s new window
* App bundle generation
* Dynamic features support
* “Sessions” window in profiler
* Energy profiler
* AndroidX refactoring - перевести всё на новую версию support-библиотек. Ещё появился Jetifier: “converts legacy Maven artefacts to the new AndroidX namespace and caches those for new builds”
* Navigation library и UI для неё - позволяет выстроить всю навигацию одним xml, в том числе умеет добавлять анимации переходам, позволяет удобно прописать deeplinks и даже вроде бы позволяет разрулить передачу аргументов в Activity/Fragment
* Layout Editor - появляются всякие кнопки и меню для быстрого добавления sample data в design-режиме
* Запустили студию на Pixel Chromebook (no ADB yet - “you can upload straight to the Play Store and hope for the best”)
* D8 - new default Dexer & R8 - new default optimizer
* Бонус: показали фичу, которая в разработке (сказали, выйдет наверное даже не в 3.3) и использует следующую версию ConstraintLayout - работа с transition анимациями прямо из UI.
- Emulator:
* Save and replay snapshots
* Better camera to support AR apps
Ну, как-то так.
#studio #emulator #adt
https://youtu.be/WxAZk7A7OkM
YouTube
What's new in Android development tools (Google I/O '18)
An overview of all the recent features in Android Studio for Android app developers. The session will include demos and a tour de force presentation of relevant features that will accelerate developers' workflow on the latest Android APIs.
Rate this session…
Rate this session…
Из этого выступления я выпишу не очень много поинтов, но доклад интересный, сходите посмотрите. А поинты там такие:
- Well Aged Advice:
* Prioritise efficiency
* Avoid WakeLocks
* Don’t use undocumented APIs
* Store strings and values as resources
* Avoid transmitting/storing contacts & location
- Android Fundamentals:
* Java language syntax -> Kotlin
* UI logic for background processing -> ViewModels
* Services for background processing -> Work Manager
* Monitor system events with Receivers -> Work Manager
* Content Providers for database access -> Room
Бонус: в Android P не будет вылезать ANR-диалог, апп просто будет падать.
#tips #anr
https://youtu.be/eHjHlujp3Tg
- Well Aged Advice:
* Prioritise efficiency
* Avoid WakeLocks
* Don’t use undocumented APIs
* Store strings and values as resources
* Avoid transmitting/storing contacts & location
- Android Fundamentals:
* Java language syntax -> Kotlin
* UI logic for background processing -> ViewModels
* Services for background processing -> Work Manager
* Monitor system events with Receivers -> Work Manager
* Content Providers for database access -> Room
Бонус: в Android P не будет вылезать ANR-диалог, апп просто будет падать.
#tips #anr
https://youtu.be/eHjHlujp3Tg
YouTube
Protips: A fresh look at advanced topics for Android experts (Google I/O '18)
It's been 10 years since the first Android device launch, and even experienced Android developers are still using tools, APIs, and best-practices from 2008. The return of Android Protips brings you up-to-speed on modern solutions to Android development challenges…
Что-то из нового Android:
- Battery:
* App standby buckets: использование аппа определяет, как и когда он запустить свои jobs
* Background restrictions: если апп ведёт себя непорядочно, можно ему к чёртовой матери всё запретить
- Background input & privacy:
* Микрофон в фоне - нельзя
* Камера в фоне - нельзя
* Разные сенсоры - вроде бы будут возвращать нулевые значения - можно сказать, тоже нельзя
- Background text measurement:
* Измерять текст дорого, а делать это приходится много. Прозвучала цифра: 80%-90% всего measure-layout-draw цикла приходится на измерение текста.
* Поэтому теперь его можно делать в фоне -
- Notifications:
* inline images & stickers
* можно показать картинки участников чата, например
* smart reply UI (а-ля чатбот)
* no more “app is using battery” notification
- Deprecation policy:
* Август 2018 - новые аппы только с targetSdk 26
* Ноябрь 2018 - обновления аппов только с targetSdk 26
* Август 2019 - те, кто используют нативные куски, обязаны давать 64-bit ABI (32-bit опционально)
Это только то, за что зацепился глаз. В докладе ещё больше, но тратить время не советовал бы :)
#androidp #background #notifications
https://youtu.be/eMHsnvhcf78
- Battery:
* App standby buckets: использование аппа определяет, как и когда он запустить свои jobs
* Background restrictions: если апп ведёт себя непорядочно, можно ему к чёртовой матери всё запретить
- Background input & privacy:
* Микрофон в фоне - нельзя
* Камера в фоне - нельзя
* Разные сенсоры - вроде бы будут возвращать нулевые значения - можно сказать, тоже нельзя
- Background text measurement:
* Измерять текст дорого, а делать это приходится много. Прозвучала цифра: 80%-90% всего measure-layout-draw цикла приходится на измерение текста.
* Поэтому теперь его можно делать в фоне -
PrecomputedText.create(…)- Notifications:
* inline images & stickers
* можно показать картинки участников чата, например
* smart reply UI (а-ля чатбот)
* no more “app is using battery” notification
- Deprecation policy:
* Август 2018 - новые аппы только с targetSdk 26
* Ноябрь 2018 - обновления аппов только с targetSdk 26
* Август 2019 - те, кто используют нативные куски, обязаны давать 64-bit ABI (32-bit опционально)
Это только то, за что зацепился глаз. В докладе ещё больше, но тратить время не советовал бы :)
#androidp #background #notifications
https://youtu.be/eMHsnvhcf78
YouTube
What's new in Android (Google I/O '18)
An overview of the latest developer-facing features in the Android platform and other new and exciting developments.
Rate this session by signing-in on the I/O website here → https://goo.gl/oEa9Hr
Watch more videos about Jetpack → https://goo.gl/kw8LPv…
Rate this session by signing-in on the I/O website here → https://goo.gl/oEa9Hr
Watch more videos about Jetpack → https://goo.gl/kw8LPv…