1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Tencent-Shadow

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Shadow

Android CI PRs Welcome

Описание

Shadow — это Android-фреймворк для плагинов, разработанный Tencent. Он прошел тестирование с миллиардами пользователей. Shadow не только открывает ключевые части кода для плагинов, но и полностью делится всеми необходимыми для развертывания дизайнерскими решениями.

В отличие от других фреймворков для плагинов на рынке, Shadow обладает следующими ключевыми особенностями:* Переиспользование исходного кода независимо установленного приложения : Исходный код приложения-плагина может быть установлен и выполнен самостоятельно.

  • Нулевое использование рефлексии и хаков для реализации технологии плагинов : Теоретически уже определено, что нет необходимости делать совместимость с любыми системами, нет использования скрытых API, и это полностью согласуется с политикой Google по ограничению доступа к неоткрытому SDK.
  • Полностью динамический фреймворк для плагинов : Создание идеального фреймворка для плагинов за один раз сложно, но Shadow сделал все реализации полностью динамическими, сделав код фреймворка для плагинов частью самого плагина. Итерации плагинов больше не ограничены старыми версиями фреймворка, включенных в основное приложение.
  • Минимальное увеличение основного приложения : Благодаря полностью динамической реализации, реальный объем кода, включенного в основное приложение, минимальный (15 КБ, около 160 методов).
  • Реализация на Kotlin : Основные части кода core.loader и core.transform полностью написаны на Kotlin, что делает код более простым и легким для поддержки.### Поддерживаемые функции
  • Четыре основных компонента
  • Fragment (добавление кодом и добавление через XML)
  • DataBinding (не требует специальной поддержки, но проверено работоспособным)
  • Использование плагинного сервиса через разные процессы
  • Пользовательские темы
  • Доступ плагина к классам основного приложения
  • Загрузка So
  • Разделенная загрузка плагинов (загрузка нескольких APK отдельно или загрузка нескольких APK последовательно)
  • Загрузка нескольких View из разных APK в одном Activity
  • И т.д.

Компиляция и среда разработки

Подготовка среды

Рекомендуется открыть проект в последней стабильной версии Android Studio. В настоящее время проект поддерживает Android Studio Arctic Fox | 2020.3.1. Старые версии Android Studio могут не поддерживать открытие проекта из-за слишком высокой версии Gradle.

Затем в IDE выберите модуль sample-app или sample-host и запустите его напрямую, чтобы оценить работу одного и того же кода в обычном режиме установки и в режиме плагина.

Выбор sample-host для запуска

Все коды Shadow расположены в трех директориях в папке projects, это:

  • sdk содержит все коды SDK
  • test содержит автоматизированные тесты SDK
  • sample содержит демонстрационные коды

Вот sample — это оптимальная среда для тестирования Shadow. Детали см. в README в директории sample.### Совместимость

Проект Shadow имеет хорошо налаженные автоматизированные тесты, поэтому совместимость последней версии кода с внешней средой можно проверить по настройкам автоматизированных тестов.

  • pr-check.yml — автоматизированные тесты виртуальных машин, включая версии Android-тестовых устройств и версии компилятора JDK.
  • pr-check-gradle-plugin.yml — тесты совместимости AGP. В частности, файлы test_JDK17.sh и test_JDK11.sh определяют версии AGP, которые подвергаются тестированию.

Ваши тестовые коды не работают?

На основе многолетнего опыта разработки бизнес-приложений с использованием плагинов, мы уверены, что идеальный плагин-фреймворк не может быть создан за один шаг. Поэтому мы полагаем, что большинство бизнес-приложений потребуют дополнительной разработки при интеграции. Текущий код Shadow удовлетворяет текущим потребностям нашего бизнеса. Благодаря полностью динамической архитектуре, как плагин-фреймворк, так и код плагина могут быть динамически обновлены, поэтому можно одновременно разрабатывать и плагин-фреймворк, и плагин.Например, если методы всех активностей не реализованы в ShadowActivity, и вы используете эти методы в своих тестовых кодах, то вы можете столкнуться с ошибкой "Method Not Found". Для решения этой проблемы достаточно реализовать соответствующие методы в ShadowActivity. Для большинства методов достаточно простого переадресования для нормальной работы.Если вы сталкиваетесь с проблемами, которые не можете реализовать, вы можете создать Issue. Лучше всего приложить тестовый код.

Будущее разработки

  • Документация по принципам и дизайну
  • Пример проекта с поддержкой нескольких плагинов
  • Дополнение автоматизированных тестов
  • Открытый код менеджера с возможностью загрузки

Вклад в проект

Детали см. в CONTRIBUTING.md

Лицензия

Проект Tencent Shadow использует лицензию BSD 3-Clause License, подробности см. в LICENSE.

Объявление о защите личных данных

Детали см. в PRIVACY.md

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Shadow — это разработанный Tencent самостоятельный Android-фреймворк для плагинов, прошедший проверку на сотнях миллионов пользователей в сети. Развернуть Свернуть
Java и 4 других языков
BSD-3-Clause
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Tencent-Shadow.git
git@api.gitlife.ru:oschina-mirror/Tencent-Shadow.git
oschina-mirror
Tencent-Shadow
Tencent-Shadow
master