Android5.1预装输入法注意事项

编程入门 行业动态 更新时间:2024-10-17 19:32:39
      笔者在预装输入法时,预装出现了问题,并发表了一篇帖子:给MT8735系统平台预装输入法出现的问题(以讯飞输入法为例) , MT8735系统平台操作系统是Android5.1,直接给系统安装输入法,没问题,但是预装在系统中作为系统应用就会报错,于是查找了资料,终于将问题给解决了!
  1. LOCAL_PATH:= $(call my-dir)
  2. include $(CLEAR_VARS)
  3. # Module name should match apk name to be installed
  4. LOCAL_MODULE := SouGouInput
  5. LOCAL_MODULE_TAGS := optional
  6. LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
  7. LOCAL_MODULE_CLASS := APPS
  8. LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
  9. LOCAL_PRIVILEGED_MODULE := true
  10. LOCAL_CERTIFICATE := PRESIGNED
  11. LOCAL_PREBUILT_JNI_LIBS := \
  12.     @lib/armeabi/libbutterfly.so \
  13.     @lib/armeabi/libluajava.so \
  14.     @lib/armeabi/libNinepatch.so \
  15.     @lib/armeabi/libSogouAgc_v1.so \
  16.     @lib/armeabi/libsogouupdcore.so \
  17.     @lib/armeabi/libweibosdkcore.so
  18. LOCAL_MULTILIB := 32
  19. include $(BUILD_PREBUILT)

LOCAL_PRIVILEGED_MODULE := true 表示将apk编译到/system/priv-app目录下
LOCAL_PREBUILT_JNI_LIBS := \ XXXX  、LOCAL_MULTILIB :=32  因为Android5.1 是64位编译环境,因此需要将32位的so库提取出来,使用的32位的lib库,提取出来的lib库,放在/system/priv-app/app文件名/下
LOCAL_PREBUILT_JNI_LIBS := \ XXXX  、LOCAL_MULTILIB : = 32 很关键,将之前贴子所讲的问题给解决了! 

PS:
1. 如何查看so库文件是32位还是64位,可在git Bash进到相应的文件夹下,输入file * 查看文件的类型
 
2. so文件太多的apk安装时会出错,比如有些so文件是一个也是一个apk,是一个伪so文件!APP安装了,部分功能能够使用,没有源码,不易查找出原因,可以更换so库比较少的apk来安装
 
参考文章:
说明--> 结合本帖,仔细阅读下列参考文章,特别是描述so文件的部分
(1)Android系统内置第三方输入法
(2)Android 5.1 如何内置APK在/system/priv-app目录下的Android.mk
(3)如何在64位安卓系统中使用32位SO库

更多推荐

Android5.1预装输入法注意事项

本文发布于:2023-06-13 06:54:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1351352.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:输入法   注意事项

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!