开发背景

部分应用在运行时,只能在特定的兼容模式下才能正常运行。因此,我们需要设计一种通用型的兼容性设置框架。该框架可以读取用户配置值,并根据这些配置值来决定是否启用兼容性配置特性。本文档用于指导开发者如何开发自己的兼容性框架来加入新的兼容配置项。

开发步骤

1. 新增配置

首先在`openfde/boringdroidsystemui/tree/fde_w/app/main/res/raw/目录下的comp_config.xml配置文件中新增如下配置。

1<compatible> 2 <keycode>isAllowHideDecorCaption</keycode> 3 <keydesc>{ 4 "en":"Allow to hide the title bar", 5 "ch":"允许隐藏标题栏" 6 }</keydesc> 7 <defaultvalue>false</defaultvalue> 8 <inputtype>switch</inputtype> 9 <notes> 10 { 11 "en":"test text", 12 "ch":"测试文本" 13 } 14 </notes> 15 <optionjson>[]</optionjson> 16</compatible>

各字段说明:

  • keycode:兼容性配置 KEY

  • keydesc:兼容性描述用于页面展示 ,需配置中文和英文

  • defaultvalue:默认值

  • inputtype:目前支持三种类型 switch、input和 select

  • notes:备注,用于指导用户使用文本,需配置中文和英文

  • optionjson:如果inputtype是select类型,则需要配置optionjson选项。

2. framework 接口调用

异步方法:

1CompatibleConfig.queryTrainingData(Context context, String packageName, String keycode)

同步方法:

1CompatibleConfig.queryValueData(Context context, String packageName, String keycode)

参数说明:

  • cotext:上下文对象

  • packageName:包名

  • keycode:兼容性配置的KEY