Сегодня мы будем разбирать две проблемы, связанные с работой deep link на разных устройствах и версиях Android. Каждую проблему будет разбирать на экспериментах (которых мы провели аж 280+ штук).
Описание эксперимента
Перед тем как разбираться с проблемами, давайте познакомимся с форматом экспериментов. Мы решили подойти к исследованию проблем эмпирически: проверить, как фактически отрабатывают deep link в реальных условиях.
Взяли семь устройств
- Pixel 2
- Samsung A70
- Samsung A7
- Honor 9 Lite
- Samsung Galaxy Tab A
- Xiaomi Mi5
Восемь версий Android
- One UI 2.5
- Samsung Experience 9.0
- One UI 3.1
- EMUI 9.1.0
- MIUI Global 10.2.2.0
- SMS-клиент
- Telegram
- VK
- Gmail
- Google Search
- VK Toasters
Запаслись терпением, таблицами и начали тестировать.
Вход в сервисное меню телевизора Samsung
Посмотрим на таблицу выше. Мы решили описать конфигурацию в виде набора из шести параметров:
- Config – идентификатор конфигурации;
- Real/Emulator — является ли устройство реальным или эмулятором;
- Android OS — версия Android;
- OS Shell — оболочка операционной системы и ее версия;
- Device — название устройства;
- App — приложение, из которого будем переходить по deep link.
Теперь разберем таблицу эксперимента. В нее внесены три тестовых URL: developer.andorid.com/about, http://developer.andorid.com/about, https://developer.andorid.com/about и две scheme: http, https.
Q: Почему именно они?
A: Давайте вспомним исходную задачу: нам нужны deep link на ресурсы http://domain1.domain2.ru/landing, https://domain1.domain3.ru/path1/path2// и другие. То есть http, https ссылки с host (не особо важно какой) и path (не особо важно какой).
Q: Что тут забыл developer.andorid.com/about (без схемы)?
A: Такие ссылки тоже работают! У них нет обязательного параметра scheme, но посмотрите на скринкаст.
Теперь опишем процедуру выполнения эксперимента:
- Выберем реальное устройство или эмулятор, версию Android, оболочку ОС, приложение.
- Запускаем выбранное устройство.
- Открываем выбранное приложение.
- Вставляем три вида ссылок.
- Настраиваем intent-filter внутри нашего приложения. Так как исходная задача заключалась в реализации Web Link, то были выбраны http и https схемы. Начинаем с http.
РАЗБЛОКИРОВКА SMART TV SAMSUNG 7 Series 2019 UE RU NU Q
- Компилируем, открываем приложение, в которое вставили ссылки. Начинаем кликать 🙂
- Если Android предложил открыть наше приложение, то помечаем этот сценарий плюсом, иначе минусом.
- http схема протестирована! Повторяем шаги 5, 6, 7 для https scheme.
Кстати, вот ссылка на таблицы всех экспериментов. Не торопитесь очень подробно рассматривать, там есть спойлеры к следующим статьям.
Хронология появления проблем
ТЕПЕРЬ ВЫ ГОТОВЫ! Давайте посмотрим на список проблем, с которыми нам пришлось столкнуться на пути решения исходной задачи:
- Разные устройства. Обработка deep link отличалась на разных устройствах.
- Разные версии Android. Обработка deep link отличалась на разных версиях Android.
- Разные оболочки ОС. Обработка deep link отличалась на разных оболочках Android.
- Разные приложения. Обработка deep link отличалась в зависимости от приложения, из которого открывалась ссылка.
- Ссылки без scheme. Ссылки вида host/path обрабатывались по-разному.
- Второй host. Мы забыли о том, что у нас есть второй домен.
- Перехват всех ссылок. В один момент приложение начало перехватывать все ссылки с нашим доменом (даже те, для которых у нас не было сценариев обработки).
В этот раз мы разберем первые две проблемы. Остальные будут в следующих статьях. Поехали!
Проблема №1. Разные устройства
Опишем условия, в которых воспроизводится проблема:
На обоих устойствах открываем Gmail, отправляем сами себе письмо с ссылкой domain1.domain2.ru/landing, получаем, открываем, кликаем по ней. А теперь внимание на экран:
Как всегда, реальность внесла свои коррективы… Несмотря на то, что мы открываем одну и ту же ссылку, в одном и том же приложении, на одном и том же Android, в наше приложение смог перейти только Config X-1 (Samsung A70). Мы решили сформулировали гипотезу:
Гипотеза 1. Разные устройства.
Устройство (аппаратная часть) влияет на работу Deep Link
Ответ пришел быстро. Во-первых, тут разные оболочки. Во-вторых, Deep Link — это механизм, реализованный на программном уровне (то есть в устройстве нет специального чипа, который отвечает за обработку deep link). Поэтому
Гипотеза 1. Разные устройства — ОПРОВЕРГНУТА.
Устройство (аппаратная часть) НЕ ВЛИЯЕТ на работу Deep Link
Это значит, что в последующих тест-кейсах параметр конфигурации Device считаем незначимым (его изменение не влияет на результаты экспериментов).
Проблема №2. Разные версии Android
Как и в прошлый раз, опишем условия, в которых воспроизводится проблема:
На обоих устройствах открываем стандартный СМС клиент, отправляем куда-нибудь сообщение с ссылкой http://domain1.domain2.ru/landing, кликаем по ней. Обратите внимание на экран:
Как и в прошлый раз, мы открываем одну и ту же ссылку, в одном и том же приложении, но на разных версиях Android. В этот раз в наше приложение смог перейти только Confix X-2 (Android 10.0).
Гипотеза 2. Разные версии Android.
Версия Android OС влияет на работу Deep Link
Для проверки этой гипотезы будем использовать мажорные версии Android: 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0… Попались! 🙂 С 12.0 web link не обрабатывается приложением (только Android App Link, смотри предыдущую статью), поэтому 12.0 и 13.0 исключаем из списка.
В рамках гипотезы мы зафиксировали все параметры, кроме Android OS, чтобы отследить его влияние на обработку Deep Link. Результаты оказались неоднозначными. Посмотрите на таблицы:
- Для http scheme первая и вторая ссылки открываются в нашем приложении, https ссылка — нет.
- Https работает почти также, но https ссылка обрабатывается, в отличие от строчки выше.
Теперь разберем исключительный случай:
- Для http scheme никаких отличий нет.
- Для https Android 8.0 отличился. Здесь система предложила открыть приложение при переходе по первым двум ссылкам (в предыдущей таблице тут стоят +).
Давайте не будем торопиться с выводами. Внимание на скринкасты.
Изначально в списке приложений нет нашего, но при выборе браузера появляется disambiguation dialog, в котором оно есть!
Если не слишком придираться, то можно сказать, что в конечном итоге пользователю было предложено открыть наше приложение (с оговоркой о том, что сначала пришлось выбрать браузер). Давайте подкорректируем таблицы с учетом этого допущения.
Вернемся к гипотезе. Если считать, что переход через браузер в наше приложение равносилен прямому переходу в приложение, то Android не влияет на обработку Deep Link. В противном случае вывод обратный. Мы считаем эти переходы равносильными, поэтому
Гипотеза 2. Разные версии Android – ОПРОВЕРГНУТА.
Версия Android OС НЕ ВЛИЯЕТ на работу Deep Link.
Это значит, что в последующих тест-кейсах параметр конфигурации Android ОС считаем незначимым (его изменение не влияет на результаты экспериментов).
Резюме
Подведем итоги. Сегодня мы рассмотрели две из семи проблемы, с которыми столкнулись при решении исходной задачи.
Проблема первая: на разных девайсах диплинк обрабатывается по-разному. Означает ли это, что аппаратная часть устройства может влиять на обработку? Нет. Deep Link — это механизм, реализованный на программном уровне (нет чипа, отвечающего за обработку deep link).
Гипотеза 1. Разные устройства — ОПРОВЕРГНУТА. Устройство (аппаратная часть) НЕ ВЛИЯЕТ на работу Deep Link.
Вторая проблема состояла в том, что на разных версиях Android диплинки обрабатывались не всегда ожидаемо (посмотрите еще раз на скринкасты). Сначала нам не удалось перейти в приложение на Android 8.0. Но после выбора браузера появился disambiguation dialog с нашим приложением. Кто-то скажет, что перехода в приложение нет (ваше право). Мы же считаем, что он есть (пусть и пользователю приходится делать один дополнительный клик).
Гипотеза 2. Разные версии Android – ОПРОВЕРГНУТА.
Версия Android OС НЕ ВЛИЯЕТ на работу Deep Link.
Поздравляем! Ты дважды молодец! Позади вторая часть пути, но настоящие сложности еще впереди. Как ощущения? Напиши в комментариях, ожидал ли ты такие исходы по первой и второй гипотезам?
В следующий раз мы разберем еще две проблемы и сделаем выводы по гипотезам:
Гипотеза 3. Разные оболочки ОС.
Оболочка Android ОС влияет на работу Deep Link.
Гипотеза 4. Приложение.
Приложение, из которого открывается ссылка, влияет на работу Deep Link.
Увидимся в третьей части, а пока можете посмотреть на то, как Валера щелкает алгоритмы с LeetCode в «Алгоритмической качалке». До встречи!
Валера Петров
Ангелина Евсикова
Также подписывайтесь на наш телеграм-канал «Голос Технократии». Каждое утро мы публикуем новостной дайджест из мира ИТ, а по вечерам делимся интересными и полезными мастридами.
Источник: habr.com
SmartTV. Удаление родных приложений на телевизоре.
Здравствуйте.
Помогите! Не могу удалить родные приложения на SmartTV. Samsung Ue50tu7097uxru.
Заходил в «Develop mode» через «12345», но надпись «Deep Link Test» не появляется, а «Удалить» так и горит тускло. Посмотрел много видео, форматировал тв даже через инженерное меню, выключал и доставал с розетки. Танцы с бубном! Помогите пожалуйста.
Лучший ответ
Так не удаляется. Только через перекомпилирование прошивки.
Остальные ответы
И не сможешь. Только прошивку искать но мало вероятно, что она существует.
https://toxblh.com/samsung-apps-remover/
Это работает, даже на последних прошивках. Главное законектить пк с тв в режиме разработки. Исходя из своего опыта следует на пк отключить всё что может блокировать соединение, на тв включить уведомления о подключении. В комментах по ссылке много информации. В итоге сноси хоть всё, если есть роутер на openwrt или микрот можно заблокировать все сервисы самсунга.
Похожие вопросы
Источник: otvet.mail.ru
О сайте Deep-link-test-samsung.tv
Индекс качества сайта Deep-link-test-samsung.tv
на сегодня 29 апреля 2023 года, суббота:
(чем индекс больше — тем лучше).
Оцените рейтинг сайта deep-link-test-samsung.tv по 5-бальной шкале от 1 до 5, кликнув на соответствующую звёздочку выше.
1 звезда — хуже некуда
2 звезды — плохо
3 звезды — удовлетворительно
4 звезды — хорошо
5 звёзд — отлично
Наш сайт wdomain.ru не имеет отношения к сайту и домену deep-link-test-samsung.tv и все данные о сайте и домене на этой странице принадлежат и относятся к сайту и домену deep-link-test-samsung.tv
Наши юристы помогут, если ваши права были нарушены — опишите как можно подробнее проблему и вам предложат пути её решения.
Отзывы, жалобы и информация о сайте deep-link-test-samsung.tv.
Оставьте ниже на этой странице о сайте deep-link-test-samsung.tv свой отзыв, жалобу или задайте вопрос. Пишите текст без переноса строк, все переносы строк автоматически удаляются.
За оставленные отзывы ответственность несут пользователи, нецензурные комментарии будут удалены.
Добавьте эту страницу в закладки для отслеживания ответов, уведомления на этом сайте нет.
Что за сайт deep-link-test-samsung.tv?
Вы можете посетить этот сайт, только если он существует и доступен в настоящее время.
Отзывы о сайте deep-link-test-samsung.tv можно найти или на этой странице (если они есть), или на других сайтах, которые вы найдёте.
Вы можете узнать, что на сайте deep-link-test-samsung.tv было раньше — из истории сайта deep-link-test-samsung.tv на этой странице ниже. Иногда это бывает важной информацией, если сейчас сайт не доступен.
Не работает сайт deep-link-test-samsung.tv?
Если у вас не работает и не открывается сайт deep-link-test-samsung.tv — проверьте его на доступность в сети Интернет прямо сейчас.
Источник: wdomain.ru