android+编译+输入法+apk,原生Android7.1 添加第三方输入法

平台:msm8953_64

Android 7.1.2

Ubuntu 16.04

第一步,获取输入输入法

(1)到讯飞输入法官网下载xxx.apk文件

(2)在packages/apps 目录下新建FlyIMEjackw目录,该目录名字后面要用到

(3)将输入法xxx.apk文件拷贝到FlyIMEjackw目录

(4) mv xxx.apk xxx.zip

unzip xxx.zip

第二步 将输入法加入到系统编译中

(1)在FlyIMEjackw目录下,创建Android.mk文件,把下面内容添加到Android.mk文件

#add by jackw 20180908 for add FLYIME inputmethod

PREBUILT_PATH := $(call my-dir)

LOCAL_PATH         := $(PREBUILT_PATH)

include $(CLEAR_VARS)

LOCAL_MODULE        := FlyIMEjackw

LOCAL_MODULE_CLASS  := APPS

#LOCAL_CERTIFICATE   := platform

LOCAL_MODULE_TAGS := optional

LOCAL_CERTIFICATE := PRESIGNED

LOCAL_MODULE_SUFFIX := .apk

LOCAL_SRC_FILES     := FlyIMEjackw.apk

LOCAL_MODULE_PATH   := $(PRODUCT_OUT)/system/app

LOCAL_PREBUILT_JNI_LIBS :=\

@lib/armeabi/libcom_iflytek_inputmethod_mmp.so \

@lib/armeabi/libcom_iflytek_inputmethod_ocr.so \

@lib/armeabi/libcom_iflytek_inputmethod_setting.so \

@lib/armeabi/libcom_iflytek_inputmethod_thirdbkservices.so \

@lib/armeabi/libcom_iflytek_inputmethod_translate.so \

@lib/armeabi/libdexopt.so \

@lib/armeabi/libencdec-jni-v1.so \

@lib/armeabi/liblwl.so \

@lib/armeabi/libMetaVAD-v1.so \

@lib/armeabi/libmsc-v8.so \

@lib/armeabi/libnalsocket.so \

@lib/armeabi/libNativeCrashCollect.so \

@lib/armeabi/libsmartaiwrite-jni-v30.so \

@lib/armeabi/libvadLib-v5.so \

@lib/armeabi/libvipfont.so

include $(BUILD_PREBUILT)

(2)build/target/product/core.mk  在PRODUCT_PACKAGES += \的最后加入需要编译的APPS目录FlyIMEjackw

PRODUCT_PACKAGES += \

BasicDreams \

BlockedNumberProvider \

BookmarkProvider \

Browser2 \

Calendar \

CalendarProvider \

CaptivePortalLogin \

CertInstaller \

Contacts \

DeskClock \

DocumentsUI \

DownloadProviderUi \

Email \

ExactCalculator \

Exchange2 \

ExternalStorageProvider \

FusedLocation \

InputDevices \

KeyChain \

Keyguard \

Launcher2 \

ManagedProvisioning \

MtpDocumentsProvider \

PicoTts \

PacProcessor \

libpac \

PrintSpooler \

PrintRecommendationService \

ProxyHandler \

QuickSearchBox \

Settings \

SharedStorageBackup \

StorageManager \

Telecom \

TeleService \

VpnDialogs \

MmsService \

FlyIMEjackw

第三步,修改系统默认输入法

各种输入法的ID

百度: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

(1) frameworks/base/packages/SettingsProvider/res/values/defaults.xml在下面2行原始代码中添加输入法ID

(输入法ID)

(输入法ID)

添加后为

com.iflytek.inputmethod.FlyIME

com.iflytek.inputmethod.FlyIME

下面是我在defaults.xml添加后的可用代码:

com.iflytek.inputmethod.FlyIME

com.iflytek.inputmethod.FlyIME

com.iflytek.inputmethod.FlyIME

(2)frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java 增加下面1行代码

//add by jackw 20180908 for add zh_cn inputmethod

loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,R.string.default_input_method);

第4步,make -j12 编译

在target/product/msm8953_64/system/app目录下,有FlyIMEjackw目录,

ls FlyIMEjackw

FlyIMEjackw.apk  oat

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值