Hilt Dependency Injection for Third-Party Android Components

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Hilt, a dependency injection library for Android, does not support dependency injection for third-party components, leading to inefficient instantiation and operation of these components.

Innovation Solution

A method and apparatus are provided to implement dependency injection for third-party components by creating a generator for the target component, generating a parent class to declare dependent objects, creating an injection container and injection code to bridge the component and a dependency provider, and controlling the component to inherit the parent class.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If Hilt is used for Android native components, then dependency injection is supported and work efficiency is improved, but third-party components cannot use dependency injection

Engineering Contradiction:
Improvedependency injection supportVSAvoidwork efficiency of third-party components
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent introduces a parent class as an intermediary between Hilt and third-party components. This parent class implements the necessary interfaces and contains the dependency injection logic, allowing third-party components to inherit dependency injection capabilities without modifying Hilt's core functionality or requiring direct integration with each third-party component.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If third-party components are instantiated manually, then they can operate independently, but work efficiency is affected

Engineering Contradiction:
Improveindependent operationVSAvoidwork efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent enables third-party components to perform self-service through dependency injection. By inheriting from the parent class that implements dependency injection, these components can automatically obtain their dependencies through the injection container, eliminating manual instantiation while maintaining independent operation and improving work efficiency.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20250045030A1Method, apparatus and device for implementing dependency injection based on hilt
Publication Date: 2025.02.06 DOUYIN VISION CO LTD
  • US20250045030A1 patent drawing
  • US20250045030A1 patent drawing
  • US20250045030A1 patent drawing

AI summary

The present application discloses a method for implementing dependency injection based on Hilt, for third-party components that require dependency injection, i.e., target components. After obtaining the target component, a generator corresponding to the target component is generated, and a parent class corresponding to the target component is generated with the generator, to declare a dependent object in the parent class. At the same time, an injection container and injection code corresponding to the target component are created, the target component and the dependency provider are bridged based on the injection container, and the instance of the dependency object provided by the dependency provider is assigned to the target component based on the injection code, so that when the target component is executed, the instance of the dependent object is assigned to the target component with the injection container and injection code. Finally, the target component is controlled to inherit the parent class, so that the target component inherits the dependency injection capability of the parent class, and completes the configuration of the target component to implement dependency injection, so that the target component can obtain instances of dependent objects and implement dependency injection.