Android PinyinIME 源码笔记 -- 0. 简介

来源:互联网 发布:马伯庸 三国 知乎 编辑:程序博客网 时间:2024/06/05 16:27

转自:http://blog.sina.com.cn/s/blog_4177a2e20100lkrp.html

Android版本: 2.1 (Eclair)

代码路径: packages/inputmethods/PinyinIME/
项目结构:
    AndroidManifest.xml  - Android工程的清单文件,参考http://developer.android.com/intl/zh-CN/guide/topics/manifest/manifest-intro.html
    Android.mk - Android工程的编译配置文件,类似于unix的Makefile文件。
    jni/ - Java Native Interface, 用C/C++实现拼音输入法的功能,供上层Java代码调用的底层代码。
    lib/ - 用AIDL文件给上层JAVA应用定义了jni可用的接口集IPinyinDecoderService。AIDL请参考http://developer.android.com/intl/zh-CN/guide/developing/tools/aidl.html
    res/ - Android项目的资源目录(系统静态字典数据文件dict_pinyin.dat也放在这个目录下的raw子目录里)。参考http://developer.android.com/intl/zh-CN/guide/topics/resources/index.html
    src/ - Java源代码,实现输入法在Android平台的UI及上层应用逻辑,通过lib下的AIDL定义的接口,调用jni/下C/C++实现,完成用户与输入法的交互功能。

摘要:
    PinyinIME的实现代码主要分两部分:上层应用和底层服务。上层应用收集终端用户的输入事件,转调底层服务的接口完成输入法的各项功能,底层服务完成各项计算后,把结果返回结上层应用,最后上层应用把结果显示给终端用户,并等待用户的下一输入事件。
    底层应用的实现全部由jni/子目录中的C++文件完成,所有给上层Java应用的接口在lib/下的AIDL文件中作了声明,在jni/android/com_android_inputmethod_pinyin_PinyinDecoderService.cpp中实现。

    为此本源码笔记系列将集中在jni/子目录提供功能上,上层应用部分的分析视情况待定。下一篇将介绍底层服务所提供的接口。