Telegram Group & Telegram Channel
AccountManager, или как Google врет в документации

Первый пост в канале был посвящен адовым проблемам шифрования в Android. Но Android SDK не перестает удивлять. На этот раз AccountManager — системное хранилище аккаунтов. В VK внедряли его, чтобы сохранять данные пользователя и восстанавливать в случае, если приложение-чистильщик затрет все данные приложения ==> мы сохраним авторизацию ==> сэкономим деньги на смс.

Реализовать не сложно: вызвать несколько методов по работе с аккаунтом и реализовать Bound Service для взаимодействия с системой. Но нет, Google оставил подляну.

1) В документации четко сказано, что методы можно вызывать на главном потоке. Но нельзя! Вызов методов на главном потоке приводит к ANR. Получали тысячи событий в Firebase. Пруфы в комментах.

2) В документации нигде не написано, как обработать нажатие на кнопку удаление аккаунта из системы. Нигде. И мало того, есть похожие API в AccountManager, которые могли бы подойти: accountChangeListener, метод из Bound сервиса. Пришлось самому дебажить. Дам код в комментах.

3) Гугл говорит, что хранить данные там небезопасно. Окей, шифруем. Но при очистке данных приложения затираются и ключи с alias’ами в Keystore, итого надежного хранения ключа нет. Использовали другие алгоритмы по другим алгоритмам.

4) Гугл утаивает, что аккаунт в системе можно не показывать. Для этого нужно оставить пустым мета-информацию для Bound сервиса.

Google не перестает удивлять.



group-telegram.com/artrblog/29
Create:
Last Update:

AccountManager, или как Google врет в документации

Первый пост в канале был посвящен адовым проблемам шифрования в Android. Но Android SDK не перестает удивлять. На этот раз AccountManager — системное хранилище аккаунтов. В VK внедряли его, чтобы сохранять данные пользователя и восстанавливать в случае, если приложение-чистильщик затрет все данные приложения ==> мы сохраним авторизацию ==> сэкономим деньги на смс.

Реализовать не сложно: вызвать несколько методов по работе с аккаунтом и реализовать Bound Service для взаимодействия с системой. Но нет, Google оставил подляну.

1) В документации четко сказано, что методы можно вызывать на главном потоке. Но нельзя! Вызов методов на главном потоке приводит к ANR. Получали тысячи событий в Firebase. Пруфы в комментах.

2) В документации нигде не написано, как обработать нажатие на кнопку удаление аккаунта из системы. Нигде. И мало того, есть похожие API в AccountManager, которые могли бы подойти: accountChangeListener, метод из Bound сервиса. Пришлось самому дебажить. Дам код в комментах.

3) Гугл говорит, что хранить данные там небезопасно. Окей, шифруем. Но при очистке данных приложения затираются и ключи с alias’ами в Keystore, итого надежного хранения ключа нет. Использовали другие алгоритмы по другим алгоритмам.

4) Гугл утаивает, что аккаунт в системе можно не показывать. Для этого нужно оставить пустым мета-информацию для Bound сервиса.

Google не перестает удивлять.

BY Engineering notes | Артур Илькаев




Share with your friend now:
group-telegram.com/artrblog/29

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

For Oleksandra Tsekhanovska, head of the Hybrid Warfare Analytical Group at the Kyiv-based Ukraine Crisis Media Center, the effects are both near- and far-reaching. "Russians are really disconnected from the reality of what happening to their country," Andrey said. "So Telegram has become essential for understanding what's going on to the Russian-speaking world." In addition, Telegram now supports the use of third-party streaming tools like OBS Studio and XSplit to broadcast live video, allowing users to add overlays and multi-screen layouts for a more professional look. But the Ukraine Crisis Media Center's Tsekhanovska points out that communications are often down in zones most affected by the war, making this sort of cross-referencing a luxury many cannot afford. "Like the bombing of the maternity ward in Mariupol," he said, "Even before it hits the news, you see the videos on the Telegram channels."
from hk


Telegram Engineering notes | Артур Илькаев
FROM American