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

安卓系统源码如何导入原生androidx资源文件?

目录

  • 一、问题
  • 二、解决思路
  • 三、最终措施


一、问题

在安卓原生的SystemUI下增加资源文件,xxx.xml文件,此xml文件引用了
androidx.cardview.widget.CardView控件,不做其他修改,编译,报错:找不到CardView相关的控件。


二、解决思路

打开SystemUI下的Android.bp文件,这里写着SystemUI是如何编译出来的,并且引入了哪些库。

android_app {
    name: "SystemUI",
    static_libs: [
        "SystemUI-core",
    ],
    resource_dirs: [],

SystemUI引入了SystemUI-core 静态库,

android_library {
    name: "SystemUI-core",
    srcs: [
        "src/**/*.kt",
        "src/**/*.java",
        "src/**/I*.aidl",
    ],
    resource_dirs: [
        "res-keyguard",
        "res",
    ],
    static_libs: [
        "CH34xUARTDriver",
        "SystemUIPluginLib",
        "SystemUISharedLib",
        "SettingsLib",
        "androidx.legacy_legacy-support-v4",
        "androidx.recyclerview_recyclerview",
        "androidx.preference_preference",
        "androidx.appcompat_appcompat",
        "androidx.mediarouter_mediarouter",
        "androidx.palette_palette",
        "androidx.legacy_legacy-preference-v14",
        "androidx.leanback_leanback",
        "androidx.slice_slice-core",
        "androidx.slice_slice-view",
        "androidx.slice_slice-builders",
        "androidx.arch.core_core-runtime",
        "androidx.lifecycle_lifecycle-extensions",
        "androidx.dynamicanimation_dynamicanimation",
        "androidx-constraintlayout_constraintlayout",
        "iconloader_base",
        "SystemUI-tags",

SystemUI-core 包括了如上那么多的资源库,发现一个问题:
并没有看到cardview相关的资源

大概能够知道肯定要添加androidx.cardview等相关的字眼,可是具体添加哪个呢?

类比的思想,通过grepandroidx.recyclerview_recyclerview 找到了它的声明定义地方:
prebuilts/sdk/current/androidx/Android.bp

同样在此bp文件下我们也找到了cardview相关的字眼:

android_library {
    name: "androidx.cardview_cardview",
    sdk_version: "current",
    min_sdk_version: "14",
    manifest: "manifests/androidx.cardview_cardview/AndroidManifest.xml",
    static_libs: [
        "androidx.cardview_cardview-nodeps",
        "androidx.annotation_annotation",
        "androidx.core_core",
    ],
    java_version: "1.7",
}

cardview 真正实现的地方又在哪里?

路径:
prebuilts/sdk/current/androidx/m2repository/androidx/cardview/cardview/1.1.0-alpha01
ls看一下:
在这里插入图片描述
不难看出,cardview 、recyclerview等等各种androidx视图,在安卓系统源码下是一个已经封装好的jar、arr等资源文件。


三、最终措施

SystemUI下的Android.bp文件下,引入androidx.cardview_cardview资源即可!


http://www.kler.cn/a/534008.html

相关文章:

  • 今日AI和商界事件(2025-02-05)
  • 使用Python和TensorFlow/Keras构建一个简单的CNN模型来识别手写数字
  • 【优先算法】专题——位运算
  • 全面解析机器学习优化算法中的进化策略
  • LabVIEW微位移平台位移控制系统
  • 电路研究9.2.8——合宙Air780EP中IP 应用相关命令使用方法研究
  • 说一下JVM管理的常见参数
  • 怀旧经典:1200+款红白机游戏合集,Windows版一键畅玩
  • 【LeetCode 刷题】贪心算法(2)-进阶
  • LLM框架对比选择:MaxKB、Dify、FastGPT、RagFlow【RAG+AI工作流+Agent]
  • uniapp商城之用户模块【会员中心】
  • 老游戏回顾:G2
  • openwebui入门
  • 数字人|通过语音和图片来创建高质量的视频
  • 玩转Gin框架:Golang使用Gin完成登录流程
  • 如何通过 Logstash 将数据采集到 Elasticsearch
  • 基于单片机的智能安全插座(论文+源码)
  • 【DeepSeek】本地私有化部署 DeepSeek 模型教程
  • vscode+CMake+Debug实现 及权限不足等诸多问题汇总
  • 定制Centos镜像(二)
  • 使用 ElementUI 和 Spring 实现稳定可靠的文件上传和下载功能
  • 【大数据技术】编写Python代码实现词频统计(python+hadoop+mapreduce+yarn)
  • WPS的word的水印去除
  • docker 实战练习1
  • 数码分享官 | 华硕灵耀14 双屏 2025,科技与美学的完美碰撞
  • 2025年02月05日Github流行趋势