电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

為Android系統(tǒng)添加config.xml 新配置的設(shè)置

瀏覽:72日期:2022-09-25 17:39:11

在日常系統(tǒng)開(kāi)發(fā)中,經(jīng)常需要在adroid的framework修改或添加自己的配置。例如在config.xml 添加一個(gè)新的變量。我這邊測(cè)試發(fā)現(xiàn)如果只是簡(jiǎn)單的添加配置項(xiàng),在代碼里面怎么也訪問(wèn)不到。為了解決這個(gè)問(wèn)題仔細(xì)看了一下代碼,最終發(fā)現(xiàn)需要在public.xml 定義才可以。

下面用一個(gè)例子來(lái)說(shuō)明一下。

1.在framework/base/core/res/res/valus/config.xml 添加默認(rèn)輸入配置:

<!-- set default inputmethod. --><string translatable='false' name='config_def_input_method'>com.taypo.android.trskb/.TRSoftKeyboard</string>

這是默認(rèn)輸入法為土耳其語(yǔ)。

修改后,需要在framework/base/core/res/res z執(zhí)行mm 編譯一下修改。

完成后,croot到根目錄,執(zhí)行make update-api 更新一下api。

2.如果使用這個(gè)配置項(xiàng)

我這邊在framework/base/service/java/com/android/interanl/InputMethodManangerService.java 中的resetDefaultIMeLocked函數(shù)使用這個(gè)變量

private void resetDefaultImeLocked(Context context) { // Do not reset the default (current) IME when it is a 3rd-party IME if (mCurMethodId != null&& !InputMethodUtils.isSystemIme(mMethodMap.get(mCurMethodId))) { return; } InputMethodInfo defIm = null; String id=context.getResources().getString(com.android.internal.R.string.config_def_input_method); Slog.i(TAG, 'internal.id: ' + id); for (InputMethodInfo imi : mMethodList) { if(imi.getId().equals(id)) defIm=imi; } /* if (defIm == null) {if (InputMethodUtils.isValidSystemDefaultIme( mSystemReady, imi, context)) { defIm = imi; Slog.i(TAG, 'Selected default: ' + imi.getId());} } } if (defIm == null && mMethodList.size() > 0) { defIm = InputMethodUtils.getMostApplicableDefaultIME( mSettings.getEnabledInputMethodListLocked()); Slog.i(TAG, 'No default found, using ' + defIm.getId()); } */ if (defIm != null) { setSelectedInputMethodAndSubtypeLocked(defIm, NOT_A_SUBTYPE_ID, false); } }

這樣使用很簡(jiǎn)單吧,一開(kāi)始我以為就是這樣,查了很多資料大家都是這樣使用的。最后編譯吧報(bào)了如下錯(cuò)誤

frameworks/base/services/java/com/android/server/InputMethodManagerService.java:726: 找不到符號(hào)

符號(hào): 變量

config_def_input_method

位置: 類

com.android.internal.R.stringString id=context.getResources().getString(com.android.internal.R.string.config_def_input_method);

但是我明明定義了,為什么還是找不到呢。

解決方案:

1.在framework/base/core/res/res/values/public.xml文件里增加對(duì)這些string的聲明。

2.framework/base/core/res/res/ 下mm編譯

3.到根目錄下執(zhí)行make update-api 更新api。

<public type='string' name='config_def_input_method' />

注意在 里面的id時(shí)一個(gè)遞增的值,在系統(tǒng)中是唯一的,千萬(wàn)不要重復(fù)。

到此,在變異inputmethodmanagerService.java 就可以pass啦。

補(bǔ)充知識(shí):向config.xml中添加一個(gè)配置項(xiàng)

1. 在config.xml中添加一項(xiàng)(路徑:frameworks/base/core/res/res/values/)

如:

<bool name='config_myValue'>true</bool>

2. 在 frameworks/base/core/res/res/values/symbols.xml中,添加:

<java-symbol type='bool' name='config_myValue'/>

3. 在frameworks/base/core/res/res/values/android.xml中,添加

一帶有id的項(xiàng),但此id怎么生成呢?如下步驟:

首先:在frameowrks/base/tools/aapt/ResourceTable.cpp中

在addSymbols()函數(shù)中,把如下的注釋去掉:

//printf('<android type='%' name='%' id=...>,

然后,在代碼根目錄下,執(zhí)行:

make framework-res > res.txt

就可以把a(bǔ)ndroid原始資源輸出到res.txt文件中。

然后,把其中的

<android type='bool' name='config_myValue' />

的代碼拷貝出來(lái)放到android.xml文件中即可。

以上這篇為Android系統(tǒng)添加config.xml 新配置的設(shè)置就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 新密高铝耐火砖,轻质保温砖价格,浇注料厂家直销-郑州荣盛窑炉耐火材料有限公司 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 氧化锆陶瓷_氧化锆陶瓷加工_氧化锆陶瓷生产厂家-康柏工业陶瓷有限公司 | 切铝机-数控切割机-型材切割机-铝型材切割机-【昆山邓氏精密机械有限公司】 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 | 杭州顺源过滤机械有限公司官网-压滤机_板框压滤机_厢式隔膜压滤机厂家 | 预制直埋蒸汽保温管-直埋管道-聚氨酯发泡保温管厂家 - 唐山市吉祥保温工贸有限公司 | ASA膜,ASA共挤料,篷布色母料-青岛未来化学有限公司 | CCC验厂-家用电器|服务器CCC认证咨询-奥测世纪 | 佛山市德信昌电子有限公司| 定制防伪标签_防伪标签印刷_防伪标签厂家-510品保防伪网 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 游动电流仪-流通式浊度分析仪-杰普仪器(上海)有限公司 | 家庭教育吧-在线家庭教育平台,专注青少年家庭教育 | 清洁设备_洗地机/扫地机厂家_全自动洗地机_橙犀清洁设备官网 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 粉末包装机,拆包机厂家,价格-上海强牛包装机械设备有限公司 | 高压管道冲洗清洗机_液压剪叉式升降机平台厂家-林君机电 | 四川成人高考_四川成考报名网 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 厂房出售_厂房仓库出租_写字楼招租_土地出售-中苣招商网-中苣招商网 | 无线联网门锁|校园联网门锁|学校智能门锁|公租房智能门锁|保障房管理系统-KEENZY中科易安 | 氧氮氢联合测定仪-联测仪-氧氮氢元素分析仪-江苏品彦光电 | 液晶拼接屏厂家_拼接屏品牌_拼接屏价格_监控大屏—北京维康 | 中国品牌门窗网_中国十大门窗品牌_著名门窗品牌 | _网名词典_网名大全_qq网名_情侣网名_个性网名 | 电抗器-能曼电气-电抗器专业制造商 | 超声波清洗机-超声波清洗设备定制生产厂家 - 深圳市冠博科技实业有限公司 | 微动开关厂家-东莞市德沃电子科技有限公司 | 厦门网站建设_厦门网站设计_小程序开发_网站制作公司【麦格科技】 | 粉碎机_塑料粉碎机_塑料破碎机厂家-星标机械 | 生产加气砖设备厂家很多,杜甫机械加气砖设备价格公道 | 缠绕机|缠绕膜包装机|缠绕包装机-上海晏陵智能设备有限公司 | 防爆电机-高压防爆电机-ybx4电动机厂家-河南省南洋防爆电机有限公司 | atcc网站,sigma试剂价格,肿瘤细胞现货,人结肠癌细胞株购买-南京科佰生物 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 双舌接地线-PC68数字式高阻计-ZC36|苏海百科 |