RK3568 Android 13 内置搜狗输入法小计

问:为什么写?

答:网上搜出来的都试过了,不行!下面直接上代码和注意事项!

首先到这个目录(/RK3568/Rockchip_Android13_SDK_Release/device/rockchip/rk356x/tl3568_evm/preinstall)下创建SogouIME文件夹,在SogouIME中添加如下内容

1.apk从哪里来的?网上随便下载的

2.Android.mk内容如下,lib/arm64-v8a/里面的内容不用照搬,因为你跟我下的搜狗的app肯定不是一个版本的,自己想办法把自己那版的so文件写上去

LOCAL_PATH := $(my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := SogouIME
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT_ODM)/bundled_persist-app
LOCAL_REPLACE_PREBUILT_APK_INSTALLED := $(LOCAL_PATH)/SogouIME.apk
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_DEX_PREOPT := false
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_JNI_SHARED_LIBRARIES_ABI := arm64-v8a

MY_LOCAL_PREBUILT_JNI_LIBS := \
    lib/arm64-v8a/libaffinity.so \
    lib/arm64-v8a/libc++_shared.so \
    lib/arm64-v8a/libcrash_collect.so \
    lib/arm64-v8a/libCtaApiLib.so \
    lib/arm64-v8a/libframesequence.so \
    lib/arm64-v8a/libframesequence_doutu.so \
    lib/arm64-v8a/libkoom-java.so \
    lib/arm64-v8a/libkwai-linker.so \
    lib/arm64-v8a/liblogan.so \
    lib/arm64-v8a/libluajava.so \
    lib/arm64-v8a/libmarsxlog.so \
    lib/arm64-v8a/libmmkv.so \
    lib/arm64-v8a/libnative-sec.so \
    lib/arm64-v8a/libopus_v1.so \
    lib/arm64-v8a/libostar.so \
    lib/arm64-v8a/libqmp.so \
    lib/arm64-v8a/libSGMtlgShell.so \
    lib/arm64-v8a/libsimple_vad.so \
    lib/arm64-v8a/libsimplevadwrapper.so \
    lib/arm64-v8a/libsogou_speex_nt_v01.so \
    lib/arm64-v8a/libSogouAgc_v1.so \
    lib/arm64-v8a/libsogouupdcore.so \
    lib/arm64-v8a/libtgpalite.so \
    lib/arm64-v8a/libtrace-canary.so \
    lib/arm64-v8a/libvivo_account_wave.so \
    lib/arm64-v8a/libweibosdkcore.so \
    lib/arm64-v8a/libwind.so \
    lib/arm64-v8a/libxgVipSecurity.so \
    lib/arm64-v8a/libxhook_lib.so

MY_APP_LIB_PATH := $(TARGET_OUT_ODM)/bundled_persist-app/$(LOCAL_MODULE)/lib/$(LOCAL_JNI_SHARED_LIBRARIES_ABI)

# Ensure that the target lib64 directory exists before copying files
LOCAL_POST_INSTALL_CMD := \
    mkdir -p $(TARGET_OUT)/lib64 && \
    $(foreach lib, $(MY_LOCAL_PREBUILT_JNI_LIBS), \
        cp -f $(LOCAL_PATH)/$(lib) $(TARGET_OUT)/lib64/$(notdir $(lib)); \
    )

include $(BUILD_PREBUILT)

3.网上搜的那一圈缺的就是这个3,绝口不提需要创建lib这个目录是吧,绝口不提需要把apk解压出来的lib中的so文件放到这里面来

说一个成功的关键:相关的so文件是需要被复制到/system/lib64里面的,不然就算预装上了也运行不起会报错,代码如下

LOCAL_POST_INSTALL_CMD := \
    mkdir -p $(TARGET_OUT)/lib64 && \
    $(foreach lib, $(MY_LOCAL_PREBUILT_JNI_LIBS), \
        cp -f $(LOCAL_PATH)/$(lib) $(TARGET_OUT)/lib64/$(notdir $(lib)); \
    )

最后,希望对你有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/953522.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GO语言实现KMP算法

前言 本文结合朱战立教授编著的《数据结构—使用c语言(第五版)》(以下简称为《数据结构(第五版)朱站立》)中4.4.2章节内容编写,KMP的相关概念可参考此书4.4.2章节内容。原文中代码是C语言&…

基于springboot的疫情网课管理系统

作者:学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”,支持远程部署调试、运行安装。 项目包含: 完整源码数据库功能演示视频万字文档PPT 项目编码&#xff1…

FFmpeg硬件解码

使用FFmpeg进行硬件解码时,通常需要结合FFmpeg的API和硬件加速API(如CUDA、VAAPI、DXVA2等)。以下是一个简单的C代码示例,展示如何使用FFmpeg进行硬件解码。这个示例使用了CUDA作为硬件加速的后端。 1. 安装FFmpeg和CUDA 确保你…

unity如何在urp管线下合并spine的渲染批次

对于导入unity的spine来说,他会对每个spine生成独有的材质,虽然他们使用的是同一个shader,但由于附带独有的贴图,这样在项目使用中会由于材质贴图不同而导致无法合批. 而为什么选用urp,因为在built-in管线中,对于GPU-instancing,即使通过使用图集的方式统一了贴图,也会由于spi…

【Elasticsearch】批量操作:优化性能

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探…

深入 Flutter 和 Compose 在 UI 渲染刷新时 Diff 实现对比

众所周知,不管是什么框架,在前端 UI 渲染时,都会有构造出一套相关的渲染树,并且在 UI 更新时,为了尽可能提高性能,一般都只会进行「差异化」更新,而不是对整个 UI Tree 进行刷新,所以…

Docker 的安装和基本使用[SpringBoot之Docker实战系列] - 第535篇

历史文章(文章累计530) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 《…

介绍下不同语言的异常处理机制

Golang 在Go语言中,有两种用于处于异常的机制,分别是error和panic; panic panic 是 Go 中处理异常情况的机制,用于表示程序遇到了无法恢复的错误,需要终止执行。 使用场景 程序出现严重的不符合预期的问题&#x…

车联网安全--TLS握手过程详解

目录 1. TLS协议概述 2. 为什么要握手 2.1 Hello 2.2 协商 2.3 同意 3.总共握了几次手? 1. TLS协议概述 车内各ECU间基于CAN的安全通讯--SecOC,想必现目前多数通信工程师们都已经搞的差不多了(不要再问FvM了);…

【update 更新数据语法合集】.NET开源ORM框架 SqlSugar 系列

系列文章目录 🎀🎀🎀 .NET开源 ORM 框架 SqlSugar 系列 🎀🎀🎀 文章目录 系列文章目录前言 🍃一、实体对象更新1.1 单条与批量1.2 不更新某列1.3 只更新某列1.4 NULL列不更新1.5 无主键/指定列…

51单片机入门基础

目录 一、基础知识储备 (一)了解51单片机的基本概念 (二)掌握数字电路基础 (三)学习C语言编程基础 二、开发环境搭建 (一)硬件准备 (二)软件准备 三、…

22、PyTorch nn.Conv2d卷积网络使用教程

文章目录 1. 卷积2. python 代码3. notes 1. 卷积 输入A张量为: A [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ] \begin{equation} A\begin{bmatrix} 0&1&2&3\\\\ 4&5&6&7\\\\ 8&9&10&11\\\\ 12&13&14&15 \end{b…

Python爬虫-汽车之家各车系周销量榜数据

前言 本文是该专栏的第43篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏之前,笔者在文章《Python爬虫-汽车之家各车系月销量榜数据》中,有详细介绍,如何爬取“各车系车型的月销量榜单数据”的方法以及完整代码教学教程。 而本文,笔者同样以汽车之家平台为例,…

web前端第五次作业---制作菜单

制作菜单 代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style…

个人曾经ARM64_汇编角度_PLTHOOK的研究

ARM64基础HOOK研究_2024 之前为了实现一个修改器变速器的小功能,结果研究了很多关于ELF的内容,特别是so文件(ARM64的) 还研究了Hook,以及注入进程等操作,以及实现类似IDA那样的断点,汇编转换,以及软硬断点等(实现了CE那种谁写入/访问/读取的检测),这里就不作记录了,只记录一下简…

win10 Outlook(new) 企业邮箱登录 登录失败。请在几分钟后重试。

windows系统经常弹出使用Outlook(new&#xff09;&#xff0c;自动切过去。 但是登录企业的内网邮箱&#xff0c;折腾了好几次都使用不了。排查网络等问题&#xff0c;在社区找到了答案。 推出一年多不支持企业账户&#xff0c;所以之前的折腾都是浪费时间。 因为这个答案不太…

MySQL中的四种表联结

目录 1、联结、关系表 &#xff08;1&#xff09;关系表 &#xff08;2&#xff09;为什么使用联结 2、如何创建联结 &#xff08;1&#xff09;笛卡尔积&#xff08;叉联结&#xff09;--用逗号分隔 &#xff08;2&#xff09;where子句的重要性 &#xff08;3&#xff…

【Oracle专栏】group by 和distinct 效率

Oracle相关文档&#xff0c;希望互相学习&#xff0c;共同进步 风123456789&#xff5e;-CSDN博客 1.背景 查阅资料&#xff1a; 1&#xff09;有索引情况下&#xff0c;group by和distinct都能使用索引&#xff0c;效率相同。 2&#xff09;无索引情况下&#xff0c;distinct…

easyui datagrid表头和网格错位问题

问题&#xff1a;表头与数据网格错位 解决&#xff1a; 在onLoadSuccess事件中调用fitColumns方法 $(this).datagrid(‘fitColumns’);

[文献精汇]使用 LSTM Networks 的均值回归交易策略

Backtrader 策略实例 [Backtrader]实例:均线策略[Backtrader] 实例:MACD策略[Backtrader] 实例:KDJ 策略[Backtrader] 实例:RSI 与 EMA 结合[Backtrader] 实例:SMA自定义数据源[Backtrader] 实例:海龟策略[Backtrader] 实例:网格交易[Backtrader] 实例: 配对交[Backtrader] 机…