当前位置: 首页 > news >正文

Android 13 内置可卸载的搜狗输入法

环境

系统:Android 13
芯片厂商:展锐

需求

默认只有英文输入法,没有中文,需要中文输入法,且可以卸载的。
实测为搜狗输入法,百度等其它输入法也同样适用。

实现

在SDK目录中创建packages/apps/SogouIME
从网上下载搜狗的apk重命名为SogouIME.apk放到SogouIME文件夹中。

  1. 创建Android.mk
    注意有2个关键行
    LOCAL_ENFORCE_USES_LIBRARIES := false 不加这个在安卓13中会编译不过
    LOCAL_MODULE_PATH := $(TARGET_OUT)/vital-app 这行代码安装到/system/vital-app中,实现展锐的内置APP可卸载(恢复出厂可恢复)
    整个mk内容如下
###############################################################################
# SogouIME
LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)
LOCAL_MODULE := SogouIME
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_ENFORCE_USES_LIBRARIES := false
LOCAL_MODULE_PATH := $(TARGET_OUT)/vital-appLOCAL_PREBUILT_JNI_LIBS := \@lib/armeabi/libac_checker.so \@lib/armeabi/libaffinity.so \@lib/armeabi/libawp.so \@lib/armeabi/libcrash_collect.so \@lib/armeabi/libc++_shared.so \@lib/armeabi/libCtaApiLib.so \@lib/armeabi/libframesequence_doutu.so \@lib/armeabi/libframesequence.so \@lib/armeabi/libkoom-java.so \@lib/armeabi/libkwai-linker.so \@lib/armeabi/liblogan.so \@lib/armeabi/libluajava.so \@lib/armeabi/libmarsxlog.so \@lib/armeabi/libmmkv.so \@lib/armeabi/libnative-sec.so \@lib/armeabi/libopus_v1.so \@lib/armeabi/libostar.so \@lib/armeabi/libqmp.so \@lib/armeabi/libSGMtlgShell.so \@lib/armeabi/libsimple_vad.so \@lib/armeabi/libsimplevadwrapper.so \@lib/armeabi/libSogouAgc_v1.so \@lib/armeabi/libsogou_speex_nt_v01.so \@lib/armeabi/libsogouupdcore.so \@lib/armeabi/libtgpalite.so \@lib/armeabi/libtrace-canary.so \@lib/armeabi/libvivo_account_wave.so \@lib/armeabi/libweibosdkcore.so \@lib/armeabi/libwind.so \@lib/armeabi/libxgVipSecurity.so \@lib/armeabi/libxhook_lib.soinclude $(BUILD_PREBUILT)
  1. 去掉LatinIME英文输入法,加上SogouIME
diff --git a/build/make/target/product/handheld_product.mk b/build/make/target/product/handheld_product.mk
index 2199c570a01..ae70564f858 100644
--- a/build/make/target/product/handheld_product.mk
+++ b/build/make/target/product/handheld_product.mk
@@ -28,13 +28,14 @@ PRODUCT_PACKAGES += \Contacts \DeskClock \Gallery2 \
-    LatinIME \Music \OneTimeInitializer \preinstalled-packages-platform-handheld-product.xml \QuickSearchBox \SettingsIntelligence \
-    frameworks-base-overlays
+    frameworks-base-overlays \
+    SogouIME
+PRODUCT_PACKAGES_DEBUG += \frameworks-base-overlays-debug
  1. 设置默认输入法
    如果要改成百度输入法,可以把里面的默认百度输入法的2行配置注释去掉,把搜狗的删除就行.
diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
index 9b688fe1c66..96c047b5577 100755
--- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -346,4 +346,10 @@<integer name="def_vibrate_settings">0</integer><!--Hxy:add by yangsong fot set defaultvalues  of three pointer screenshot :0默认打开,1默认关闭 at 20230225--><integer name="def_three_pointer_screenshot">1</integer>	 
+    <!-- 默认百度输入法 -->
+    <!-- <string name="config_default_input_method" translatable="false">com.baidu.input_benewtech/com.baidu.input.ImeService</string>
+    <string name="def_enabled_input_methods" translatable="false">com.baidu.input_benewtech/com.baidu.input.ImeService</string> -->
+    <!-- 默认搜狗输入法 -->
+    <string name="config_default_input_method" translatable="false">com.sohu.inputmethod.sogou/.SogouIME</string>
+    <string name="def_enabled_input_methods" translatable="false">com.sohu.inputmethod.sogou/.SogouIME</string></resources>
diff --git a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index 7eab15f4bd1..7e5989ba259 100644
--- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2479,7 +2479,9 @@ class DatabaseHelper extends SQLiteOpenHelper {loadIntegerSetting(stmt, UnisocSettings.Secure.THREE_POINTER_SCREENSHOT,R.integer.def_three_pointer_screenshot);                    ///&&}}                     
-                       
+
+            loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD, R.string.config_default_input_method);
+            loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS, R.string.def_enabled_input_methods);/** IMPORTANT: Do not add any more upgrade steps here as the global,

这样编译后烧录,设备中就有中文输入法了.
作者:帅得不敢出门 csdn原创谢绝任何形式的转载及收录

相关文章:

Android 13 内置可卸载的搜狗输入法

环境 系统&#xff1a;Android 13 芯片厂商&#xff1a;展锐 需求 默认只有英文输入法&#xff0c;没有中文&#xff0c;需要中文输入法&#xff0c;且可以卸载的。 实测为搜狗输入法&#xff0c;百度等其它输入法也同样适用。 实现 在SDK目录中创建packages/apps/SogouIM…...

持续集成交付CICD:GitLabCI 封装Python类 并结合 ArgoCD 完成前端项目应用发布

目录 一、实验 1. 环境 2. Python代码实现获取文件 3.Python代码实现创建文件 4.Python代码实现更新文件 5.GitLab更新库文件与运行流水线 6.ArgoCD 完成前端项目应用发布 二、问题 1.Python获取GitLab指定仓库文件报错 2. K8S master节点运行Python代码报错 一、实验…...

第十三章 常用类(Math 类、Arrays 类、System类、Biglnteger 和BigDecimal 类、日期类)

一、Math 类&#xff08;P481&#xff09; Math 类包含&#xff0c;用于执行基本数学运算的方法&#xff0c;如初等指数、对数、平方根和三角函数。 &#xff08;1&#xff09;abs&#xff1a;绝对值 &#xff08;2&#xff09;pow&#xff1a;求幂 &#xff08;3&#xff09;c…...

2023年12月24日学习总结

今日to do list&#xff1a; 做kaggle上面的流量预测项目☠️ 学习时不刷手机&#x1f921; okkkkkkkkkkkkkk 开始&#x1f44d;&#x1f34e; 0、我在干什么&#xff1f; 我在预测一个名字叫做elborn基站的下行链路流量&#xff0c;用过去29天的数据预测未来10天的数据 1、…...

第26关 K8s日志收集揭秘:利用Log-pilot收集POD内业务日志文件

------> 课程视频同步分享在今日头条和B站 大家好&#xff0c;我是博哥爱运维。 OK&#xff0c;到目前为止&#xff0c;我们的服务顺利容器化并上了K8s&#xff0c;同时也能通过外部网络进行请求访问&#xff0c;相关的服务数据也能进行持久化存储了&#xff0c;那么接下来…...

芯科科技以卓越的企业发展和杰出的产品创新获得多项殊荣

2023年共获颁全球及囯內近20个行业奖项 Silicon Labs&#xff08;亦称“芯科科技”&#xff09;日前在全球半导体联盟&#xff08;Global Semiconductor Alliance&#xff0c;GSA&#xff09;举行的颁奖典礼上&#xff0c;再次荣获最受尊敬上市半导体企业奖&#xff0c;这是公…...

计算机视觉基础(11)——语义分割和实例分割

前言 在这节课&#xff0c;我们将学习语义分割和实例分割。在语义分割中&#xff0c;我们需要重点掌握语义分割的概念、常用数据集、评价指标&#xff08;IoU&#xff09;以及经典的语义分割方法&#xff08;Deeplab系列&#xff09;&#xff1b;在实例分割中&#xff0c;需要知…...

CNAS中兴新支点——什么是软件压力测试?软件压力测试工具和流程

一、含义&#xff1a;软件压力测试是一种测试应用程序性能的方法&#xff0c;通过模拟大量用户并发访问&#xff0c;测试应用程序在压力情况下的表现和响应能力。软件压力测试的目的是发现系统潜在的问题&#xff0c;如内存泄漏、线程锁、资源泄漏等&#xff0c;以及在高峰期或…...

jQuery: 整理3---操作元素的内容

1.html("内容") ->设置元素的内容&#xff0c;包含html标签&#xff08;非表单元素&#xff09; <div id"html1"></div><div id"html2"></div>$("#html1").html("<h2>上海</h2>") …...

22、商城系统(四):项目jar包配置(重要),网关配置,商品服务基础数据设置

目录 0.重要:整个项目的配置 最外层的pom.xml renren-fast renren-generator xpmall-common xpmall-coupon...

循环链表的学习以及问题汇总

[TOC](循环链表常见的问题) # 问题一&#xff1a; **报错** ![报错内容](https://img-blog.csdnimg.cn/direct/57a4dcc6993a495c8db9c3dbfade4a78.png) **报错原因&#xff1a;**因为没有提前对_tag_CircleListNode重命名为CircleListNode&#xff0c;所以&#xff0c;在定义…...

C++期末复习总结继承

继承是软件复用的一种形式&#xff0c;他是在现有类的基础上建立新类&#xff0c;新类继承了现有类的属性和方法&#xff0c;并且还拥有了其特有的属性和方法&#xff0c;继承的过程称为派生&#xff0c;新建的类称为派生类&#xff08;子类&#xff09;&#xff0c;原有的成为…...

CloudCanal x Debezium 打造实时数据流动新范式

简述 Debezium 是一个开源的数据订阅工具&#xff0c;主要功能为捕获数据库变更事件发送到 Kafka。 CloudCanal 近期实现了从 Kafka 消费 Debezium 格式数据&#xff0c;将其 同步到 StarRocks、Doris、Elasticsearch、MongoDB、ClickHouse 等 12 种数据库和数仓&#xff0c;…...

Nodejs+Express搭建HTTPS服务

最近开发需要搭建一个https的服务&#xff0c;正好最近在用nodejs和express&#xff0c;于是乎想到就近就使用这两东西来搭建一个https的服务吧。这里搭建过程总共需要两步&#xff0c;第一步生成证书&#xff0c;第二步使用https模块启动服务。 生成自签名证书 这里因为是自…...

设计模式之-策略模式,快速掌握策略模式,通俗易懂的讲解策略模式以及它的使用场景

系列文章目录 设计模式之-6大设计原则简单易懂的理解以及它们的适用场景和代码示列 设计模式之-单列设计模式&#xff0c;5种单例设计模式使用场景以及它们的优缺点 设计模式之-3种常见的工厂模式简单工厂模式、工厂方法模式和抽象工厂模式&#xff0c;每一种模式的概念、使用…...

【leetcode100-019】【矩阵】螺旋矩阵

【题干】 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 【思路】 不难注意到&#xff0c;每进行一次转向&#xff0c;都有一行/列被输出&#xff08;并失效&#xff09;&#xff1b;既然已经失效&#xff0c;那我…...

【计算机视觉中的多视图几何系列】深入浅出理解针孔相机模型

温故而知新&#xff0c;可以为师矣&#xff01; 一、参考资料 《计算机视觉中的多视图几何-第五章》-Richard Hartley, Andrew Zisserman. 二、针孔模型相关介绍 1. 重要概念 1.1 投影中心/摄像机中心/光心 投影中心称为摄像机中心&#xff0c;也称为光心。投影中心位于一…...

轻量级Python IDE使用(三)——函数

1、函数 1.1、函数的概述 在程序设计中&#xff0c;函数的使用可以提升代码的复用率和可维护性。 系统内建函数pow()进行幂运算: a pow(2,4)自定义函数func() def func(a,b):return a ** b afunc(2,4) print(a)自定义函数func(),功能是输出a的b次幂 1.2、函数的定义 py…...

计算机图形学理论(3):着色器编程

本系列根据国外一个图形小哥的讲解为本&#xff0c;整合互联网的一些资料&#xff0c;结合自己的一些理解。 CPU vs GPU CPU支持&#xff1a; 快速缓存分支适应性高性能 GPU支持&#xff1a; 多个 ALU快速板载内存并行任务的高吞吐量&#xff08;在每个片段、顶点上执行着色…...

ubuntu20.04安装timeshift最新方法

总结&#xff1a; 现在可以使用如下代码安装 sudo apt-get update sudo apt-get install timeshift原因&#xff1a; 在尝试Timeshift系统备份与还原中的方法时&#xff0c; sudo apt-add-repository -y ppa:teejee2008/ppa运行失败。 更改为以下代码&#xff1a; sudo a…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...

自然语言处理——文本分类

文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益&#xff08;IG&#xff09; 分类器设计贝叶斯理论&#xff1a;线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别&#xff0c; 有单标签多类别文本分类和多…...