在Android系统中,每个APP都由Makefile管理着,目的是将该模块添加进整个系统编译
2.1 SogouInput目录下新建Android.mk
需要关注的宏:
LOCAL_MODULE := 输入法APK名称
LOCAL_SRC_FILES := 系统编译之后APK的名称
LOCAL_PREBUILT_JNI_LIBS := \ 解压APK lib路径下的.so动态链接库,一般使用JNI的API都会有这个路径,一定要添加进Mkfile里面 LOCAL_MULTTLIB := 32 so库是32位还是64位,64位lib目录下面会有很多文件夹,32位没有那么多
2.2 inputmethod目录下新建inputmethod.mk(这个文件名随意,但是得取得有意义)
2.3 inputmethod目录下新建inputmethod.mk(这个文件名随意,但是得取得有意义)
2.4 将inputmethod.mk添加到系统编译中
添加的地方是在某个Makefile,一套代码可以编译N个项目出来,具体需求根据项目来进行
三、将输入法添加进Settings可选项
Settings -> (个人)语言和输入法 -> (键盘和输入法)里面一般有包含谷歌拼音输入法、Android键盘(AOSP)可是并没有搜狗输入法选项,所以我们要添加进来
修改路径:
frameworks/base/packages/SettingsProvider/res/values/customize.xml
com.sohu.inputmethod.sogou/.SogouIME是新增进去的,以:(分号间隔),这个是官方规定的规范,可上网查阅
这里提供几个常用的:
PS:附上常见输入法的包名和类名
百度:com.baidu.input/.ImeService
讯飞:com.iflytek.inputmethod/.FlyIME
腾讯:com.tencent.qqpinyin/.QQPYInputMethodService
谷歌:com.google.android.inputmethod.pinyin/.PinyinIME
搜狗:com.sohu.inputmethod.sogou/.SogouIME
触宝:com.cootek.smartinput5/.TouchPalIME
最后就可以编译了,一定要全编!单编这个模块不能将Makefile包含进来。其实任何APK都可以以这种方式进行内置,最终安装在手机system/app/目录下面