122736c2fSopenharmony_ci# inputmethod_imf
222736c2fSopenharmony_ci
322736c2fSopenharmony_ci#### Introduction
422736c2fSopenharmony_ci
522736c2fSopenharmony_ciInput Method Framework, is used to connect the application and input method. the application can input text through the input method
622736c2fSopenharmony_ci
722736c2fSopenharmony_ci**图 1**  子系统架构图<a name="fig143011012341"></a>  
822736c2fSopenharmony_ci![](figures/subsystem_architecture.png "子系统架构图")
922736c2fSopenharmony_ci
1022736c2fSopenharmony_ci#### Warehouse path
1122736c2fSopenharmony_ci
1222736c2fSopenharmony_ci/base/inputmethod/imf
1322736c2fSopenharmony_ci
1422736c2fSopenharmony_ci#### Introduction to framework code
1522736c2fSopenharmony_ci
1622736c2fSopenharmony_ciThe input method framework currently has four modules, as follows:
1722736c2fSopenharmony_ci
1822736c2fSopenharmony_ci1. Application client
1922736c2fSopenharmony_ci
2022736c2fSopenharmony_ciPath: /base/inputmethod/imf/frameworks/inputmethod_controller
2122736c2fSopenharmony_ci
2222736c2fSopenharmony_ciFunction: realize the service delivery of application and input method framework, including the binding between application and input method service, application display and hiding request for input method, etc
2322736c2fSopenharmony_ci
2422736c2fSopenharmony_ci2. Input method client
2522736c2fSopenharmony_ci
2622736c2fSopenharmony_ciPath: /base/inputmethod/imf/frameworks/inputmethod_ability
2722736c2fSopenharmony_ci
2822736c2fSopenharmony_ciFunction: the intermediate bridge between input method framework service and input method delivery, including monitoring the current status of input method, etc
2922736c2fSopenharmony_ci
3022736c2fSopenharmony_ci3. Input method service
3122736c2fSopenharmony_ci
3222736c2fSopenharmony_ciPath: /base/inputmethod/imf/services
3322736c2fSopenharmony_ci
3422736c2fSopenharmony_ciFunction: as the core of the input method framework, the main processing logic of the input method is completed here
3522736c2fSopenharmony_ci
3622736c2fSopenharmony_ci4. Input method JS interface
3722736c2fSopenharmony_ci
3822736c2fSopenharmony_ciPath: /base/inputmethod/imf/interfaces/kits/JS
3922736c2fSopenharmony_ci
4022736c2fSopenharmony_ciFunction: the temporarily exposed JS interface is mainly reserved for calling input methods
4122736c2fSopenharmony_ci
4222736c2fSopenharmony_ci#### Main functions supported by the framework
4322736c2fSopenharmony_ci
4422736c2fSopenharmony_ci1. Click in the edit attribute control to invoke the default input method application through the input method framework
4522736c2fSopenharmony_ci
4622736c2fSopenharmony_ci2. Typing can be carried out through the input method application, and characters can be input to the application client on the screen
4722736c2fSopenharmony_ci
4822736c2fSopenharmony_ci#### Debugging method
4922736c2fSopenharmony_ci
5022736c2fSopenharmony_ci1.   Compile command
5122736c2fSopenharmony_ci
5222736c2fSopenharmony_ci./build.sh --product-name (Fill in the specific product name, such as:Hi3516DV300) --build-target imf
5322736c2fSopenharmony_ci
5422736c2fSopenharmony_ci2.  push so file
5522736c2fSopenharmony_ci
5622736c2fSopenharmony_ciin $root\out\ohos-arm-release\inputmethod\imf, push libinputmethod_client.z.so libinputmethod_ability.z.so 
5722736c2fSopenharmony_cilibinputmethod_service.z.so libinputmethod_para.z.so to system/lib,and push libinputmethodengine.z.so libinputmethod.z.so to system/lib/module, and make sure the six so files is readable at least.
5822736c2fSopenharmony_ci
5922736c2fSopenharmony_ci3.  reboot
6022736c2fSopenharmony_ci
6122736c2fSopenharmony_ci#### Participation contribution
6222736c2fSopenharmony_ci
6322736c2fSopenharmony_ci1. Fork warehouse
6422736c2fSopenharmony_ci2. Submission code
6522736c2fSopenharmony_ci3. Create a new pull request
6622736c2fSopenharmony_ci4. Commit is complete
67