CC: ComponentCaller
CC — это набор компонентов для Android, который состоит из библиотеки классов ядра API CC и плагина cc-register.
Модуль | CC | cc-register |
---|---|---|
Последняя версия |
CC представляет собой основанный на шине компонентов, поддерживающий постепенную модернизацию и вызовы между процессами полный фреймворк для компонентного подхода в Android.
Дизайн CC вдохновлён сервис-ориентированной архитектурой серверной стороны, которая выравнивает отношения между компонентами, не зависящими друг от друга, но способными вызывать друг друга без необходимости управлять сложной структурой зависимостей.
Ознакомьтесь с некоторыми открытыми проектами компонентного подхода: [Сравнение некоторых репрезентативных открытых проектов компонентного подхода Android][https://github.com/luckybilly/AndroidComponentizeLibs].
Скачать демо (основной проект, содержит все компоненты, кроме ComponentB)
Скачать demo_component_b (отдельное приложение для запуска компонента B, Demo_B)
После установки этих двух приложений на телефон вы можете увидеть эффект работы компонентов после запуска следующим образом:
- cc Компонентная основа фреймворка (основная)
- cc-register Сопутствующий плагин Gradle для CC (основной)
- cc-settings-2.gradle Скрипт сборки для компонентной разработки (основной)
- demo Демонстрационное приложение (вызывает другие компоненты и демонстрирует использование динамических компонентов)
- demo_base Демонстрационная общая библиотека (базовые классы, утилиты, общие bean-компоненты и т.д.)
- demo_component_a Демонстрационный компонент A
- demo_component_b Демонстрационный компонент B (в local.properties добавлено demo_component_b=true при упаковке компонента B)
- demo_component_jsbridge Компонентный мост JavaScript (если есть несколько приложений и разные перехватчики, можно создать несколько модулей для разных приложений)
- demo_component_kt Компонент Kotlin
- demo_interceptors Глобальный перехватчик (если существует несколько приложений, и перехватчики различаются, можно создавать несколько модулей для использования разными приложениями)
- cc-settings-demo.gradle Демонстрация настройки, например, добавление конфигурации автоматического регистрационного действия процессора
- demo-debug.apk Пакет установки демонстрационного приложения (содержит demo/demo_component_a/demo_component_kt)
- demo_component_b-debug.apk Отдельный пакет установки компонента B
Создание компонента также очень просто: просто создайте класс реализации интерфейса IComponent
, реализуйте метод onCall для предоставления услуг компонента.
public class ComponentA implements IComponent {
@Override
public String getName() {
// Указать имя компонента
return "ComponentA";
}
@Override
public boolean onCall(CC cc) {
// Здесь компонент предоставляет внутренние услуги внешнему вызову
// Логика компонента полностью отделена от внешнего
String actionName = cc.getActionName();
switch (actionName) {
case "showActivity": // Отвечать на вызов действия с именем "showActivity"
// Переход на страницу: ActivityA
CCUtil.navigateTo(cc, ActivityA.class);
// Вернуть результат обработки вызывающей стороне
CC.sendCCResult(cc.getCallId(), CCResult.success());
break;
default:
// Другие имена действий в настоящее время не могут отвечать на этот компонент, вы можете вернуть статус -12 CCResult вызывающей стороне следующим образом
CC.sendCCResult(cc.getCallId(), CCResult.errorUnsupportedActionName());
break;
}
return false;
}
}
CC использует простой потоковый синтаксис API, поэтому он позволяет вам выполнять вызовы компонентов в одной строке кода:
«CC» также является основным классом входа API этого фреймворка, который является аббревиатурой от ComponentCaller и выполняет основную функцию: вызывающий компонент.
CC.obtainBuilder("ComponentA")
.setActionName("showActivity")
.build()
.call();
Также можно сделать так:
CC.obtainBuilder("ComponentA")
.setActionName("showActivity")
.build()
.callAsync();
Или так:
CC.obtainBuilder("ComponentA")
.setActionName("showActivity")
.build()
.callAsyncCallbackOnMainThread(new IComponentCallback() {
@Override
public ## Начало использования
Пожалуйста, ознакомьтесь с документацией.
## Конфигурация запутывания
Дополнительная конфигурация запутывания не требуется.
## Автоматическая регистрация плагина
Версия для CC: cc-register, форк AutoRegister. На основе автоматического регистра добавлены некоторые функции для CC.
Общая версия:
Исходный код: AutoRegister (https://github.com/luckybilly/AutoRegister).
Принцип работы: автоматическое создание регистрационного файла через сканирование интерфейса Android и изменение байт-кода (http://blog.csdn.net/cdecde111/article/details/78074692).
## Журнал обновлений версий
См. раздел «Журнал обновлений» (https://luckybilly.github.io/CC-website/#/changelog).
## Что делать при возникновении проблем?
— Сначала включите переключатель журнала CC, чтобы просмотреть полный журнал вызовов. Это часто помогает нам найти проблему.
```java
CC.enableDebug(true); // Обычный журнал отладки, который предоставляет некоторую информацию об ошибках.
CC.enableVerboseLog(true); // Подробный журнал процесса компонентов, используемый для отслеживания всего процесса вызова.
— Ознакомьтесь с документацией. — Изучите проблемы и решения других участников сообщества на GitHub (https://github.com/luckybilly/CC/issues). Возможно, у вас уже есть решение вашей проблемы. — Если проблема не решена, создайте новую задачу на GitHub (https://github.com/luckybilly/CC/issues/new). Вполне возможно, что это новая проблема, и её решение поможет другим пользователям в будущем. — Задайте вопрос в QQ-группе.
Номер группы: 686844583.
Либо добавьте группу через веб-сайт (http://shang.qq.com/wpa/qunwpa?idkey=5fdd1171114b5a1eb80ea0be00b392c2e3e8ab6f278f182a07e959e80d4c9409), либо отсканируйте QR-код ниже.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )