该文档基于Android7.1,其它版本类似。
1。安装对应的输入法进行正常的设置
首先在平台上安装对应的输入法,在设置中设置为启用,进入设置->输入法->虚拟键盘->管理键盘。
如果目前有多个的话需要将输入法拖动置顶。即在虚拟键盘中将输入法拉置顶部
2。获取相应的配置
root权限下
cat /data/system/users/0/settings_secure.xml
定位到以下两个节点
<setting id="60" name="enabled_input_methods" value="com.sohu.inputmethod.sogouoem/.SogouIME" package="com.android.settings" />
<setting id="53" name="default_input_method" value="com.sohu.inputmethod.sogouoem/.SogouIME" package="android" />
例如示例中安装的是搜狗输入法enabled_input_methods为设置输入法顶部的位置,default_input_method为管理键盘中的启用状态,启用状态有多个以英文字符“:”分割。你可以根据您的需求启用多个或者只保留一个。
3。将设置配置到预装设置中
编辑frameworks/base/packages/SettingsProvider/res/values/defaults.xml定位到以下两个节点,如果没有进行添加即可
<string name="config_default_input_method" translatable="false">com.sohu.inputmethod.sogouoem/.SogouIME</string>
<string name="config_enable_input_methods" translatable="false">com.sohu.inputmethod.sogouoem/.SogouIME</string>
其中config_default_input_method与default_input_method对应,config_enable_input_methods与enabled_input_methods对应,从/data/system/users/0/settings_secure.xml找寻到的复制过来即可。
4。提取相关依赖库
将apk修改拓展名使用解压软件解压得到lib/armeabi 文件夹
5.在安卓源码目录创建对编译模块目录列如
vendor/rockchip/common/apps/SougoIME
SougoIME目录内文件结构如下
Android.mk SougoIME.apk lib/armeabi/libkpencore_v52.so
其中lib/armeabi/*为之前解压出来的文件所有依赖库,SougoIME.apk为你预装输入法的apk.
Android.mk内容如下
#SougoIME LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := SougoIME LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_TAGS := optional LOCAL_BUILT_MODULE_STEM := package.apk LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) LOCAL_SRC_FILES := $(LOCAL_MODULE).apk LOCAL_CERTIFICATE := PRESIGNED LOCAL_PREBUILT_JNI_LIBS := \ lib/armeabi/libkpencore_v52.so include $(BUILD_PREBUILT)
6.最后在把该模块添加到上级的Android文件中如vendor/rockchip/common/apps/apps.mk PRODUCT_PACKAGES 节点添加SougoIME
PRODUCT_PACKAGES += \ xxx \ yyy\ SougoIME
其中xxx跟yyy为原来就存在的模块,你只需要将SougoIME添加到最后即可
最后进行编译,擦除flash后烧录,或者烧录之后恢复出厂设置即可,原因是之前的设置数据不会重置