转至元数据结尾
转至元数据起始

一、兼容性配置

1、包含两张表
COMPATIBLE_LIST 存储所有配置表,数据从xml中读取
CREATE TABLE COMPATIBLE_LIST ( _ID INTEGER PRIMARY KEY AUTOINCREMENT," + "KEY_CODE TEXT ,KEY_DESC TEXT ,DEFAULT_VALUE TEXT ,OPTION_JSON TEXT, NOTES TEXT,INPUT_TYPE TEXT,CREATE_DATE TEXT, UNIQUE( KEY_CODE));

COMPATIBLE_VALUE 存储各个包名对应的配置项
CREATE TABLE COMPATIBLE_VALUE ( _ID INTEGER PRIMARY KEY AUTOINCREMENT," + "PACKAGE_NAME TEXT ,KEY_CODE TEXT ,VALUE TEXT , NOTES TEXT,EDIT_DATE TEXT,FIELDS1 TEXT,FIELDS2 TEXT, UNIQUE(PACKAGE_NAME, KEY_CODE));

2、 xml 存放地址 assets/comp_config.xml
格式:

<compatible>
    <keycode>size</keycode>
    <keydesc>分辨率</keydesc>
    <defaultvalue>1</defaultvalue>
    <inputtype>select</inputtype>
    <optionjson>[{
        "width": "1920",
        "height": "1080"
        },
        {
        "width": "800",
        "height": "600"
        }, {
        "width": "400",
        "height": "320"
        }
        ]</optionjson>
</compatible>

其中inputtype 目前支持两种方式 input 和 select 具体可参考demo   (可参考com.boringdroid.systemui.ui.CompatibleListActivity)

3、编译 首先编译项目
https://gitee.com/openfde/boringdroidsystemui.git 分支xudq
然后拉取framework代码 fde_w 分支
工具类 com.android.internal.util.CompatibleConfig 提供 CURD COMPATIBLE_LIST 和 COMPATIBLE_VALUE 方法

4、运行 通过开机广播会自动读取xml到database

image-20240219-030423.png