fWX228941 / project

all by myself
1 stars 0 forks source link

方案 #46

Open fWX228941 opened 7 months ago

fWX228941 commented 7 months ago

mata-data 方案

fWX228941 commented 7 months ago

1.需求 在暗码工程模式的菜单功能中支持第三方添加制定的功能到菜单功能 标题工程模式

2.实现方案 通过meta-data方案,在三方应用的AndroidManifest.xml中,使用meta-data将该应用需要在其对应集群模式下显示的菜单项进行标识,一般是在响应菜单的activity项下进行配置。需要配置的内容包括名称,显示顺序,显示模式等。配置方法与说明如下:

指定要跳转的工程模式界面

<meta-data android:name="com.caltta.config.factory.name" android:value="XXX" /> 名字(默认Btrunc /公网/PDT)

<meta-data android:name="com.caltta.config.factory.order" android:value="XXX" /> 顺序(默认按照字母,Btrunc(100)/PDT(80)/公网(50))

取值范围是-200 - 200

3.示例 例如应用需要显示 GPS的工厂模式菜单项到菜单例表。其响应Activity配置如下: <activity android:name=".GPSTestActivity" android:exported="true">

        <meta-data
            android:name="com.caltta.config.factory.name"
            android:value="测试的工程模式" />
        <meta-data
            android:name="com.caltta.config.factory.order"
            android:value="80" />
    </activity>

Image

fWX228941 commented 7 months ago

Features定制功能宏控策略

fWX228941 commented 7 months ago

Features定制功能宏控实现 1.宏控目的 1.1.满足各项目的需求定制 1.2.宏控策略,业务的功能点与项目解耦 1.3.定制需求,需求的功能点可以通过宏控策略快速完成配置 应用层宏控 目的:用于系统应用、独立开发应用的功能控制策略 宏控集成 关键点 宏控方案中带有资源文件,所以无法以jar包的方式集成,而是以library的方式集成 不要混淆,Feature中几个负责读取标签的java类,比如Product,Model,Custom等是在运行期间反射构造,如果被混淆了,运行期间会因找不到该类而崩溃。 应用宏控初始化 Feature对象init(初始化)需要在Applicaion中调用 Eclipse集成方法 将Feature做为library导入 Android Studio集成方法 在settings.gradle文件,将Feature include到工程中 哪个Module需要使用Feature库,就在该Module的build.gradle中添加implements 系统应用集成方法 修改该应用的Android.mk文件,在include $(BUILD_PACKAGE) 中把Feature 添加进来 通用集成方法 直接把Feature相关的代码,复制到自己的应用中 宏控添加 在应用模块的res/valuse/feature_define.xml文件中,通过declare-styleable的方式进行Feature定义 attr 定义功能项的名称 format 定义类型 定义新功能宏只用在declare-styleable中添加如内容“”即表示增加了一个FEATURE_A的宏控定义 宏控配置 在应用模块的res/valuse/xml/feature_config.xml文件下进行宏控配置 为具体项目来定制功能定制项 一级标签Product代表所属产品 name表示产品名称 二级标签Model代表配置所属的项目型号 name必须和项目型号(Build.MODEL)匹配 三级标签Custom代表配置所属的定制项目 name必须和客户定制名称(ro.ztegd.opt)匹配 宏控使用 宏的使用,全部封装到了Feature.java中 提供get接口用于获取宏控的值 R.attr来索引对应的宏控属性 系统层宏控 系统层统一提供一个功能宏控接口 集成一个系统服务CalttaSystemService framework、系统服务、部分系统应用 底层驱动宏控 主要用于底层驱动内核、本地服务等C/C++代码的功能控制策略 项目差异管控

fWX228941 commented 7 months ago

Image

Image

Image

Image

fWX228941 commented 7 months ago

Image

fWX228941 commented 7 months ago

Image

fWX228941 commented 7 months ago

Image

Image

Image