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

Android Environment 获取的路径问题

1. 以获取 /System 路径为例

    /**
     * Return root of the "system" partition holding the core Android OS.
     * Always present and mounted read-only.
     */
    public static @NonNull File getRootDirectory() {
        return DIR_ANDROID_ROOT;
    }

    // ENV_ANDROID_ROOT 的值为 "ANDROID_ROOT"
    // private static final String ENV_ANDROID_ROOT = "ANDROID_ROOT";
   private static final File DIR_ANDROID_ROOT = getDirectory(ENV_ANDROID_ROOT, "/system");

    static File getDirectory(String variableName, String defaultPath) {
        // 获取环境变量 ANDROID_ROOT 对应的值
        String path = System.getenv(variableName);
        return path == null ? new File(defaultPath) : new File(path);
    }
1.1 获取环境变量 ANDROID_ROOT 对应的值

环境变量可以简单理解为可以在进程中获取的键值对。
在这里插入图片描述

2. 其他路径也是类似

    private static final File DIR_ANDROID_ROOT = getDirectory(ENV_ANDROID_ROOT, "/system");
    private static final String DIR_ANDROID_DATA_PATH = getDirectoryPath(ENV_ANDROID_DATA, "/data");
    private static final File DIR_ANDROID_DATA = new File(DIR_ANDROID_DATA_PATH);
    private static final File DIR_ANDROID_EXPAND = getDirectory(ENV_ANDROID_EXPAND, "/mnt/expand");
    private static final File DIR_ANDROID_STORAGE = getDirectory(ENV_ANDROID_STORAGE, "/storage");
    private static final File DIR_DOWNLOAD_CACHE = getDirectory(ENV_DOWNLOAD_CACHE, "/cache");
    private static final File DIR_METADATA = new File("/metadata");
    private static final File DIR_OEM_ROOT = getDirectory(ENV_OEM_ROOT, "/oem");
    private static final File DIR_ODM_ROOT = getDirectory(ENV_ODM_ROOT, "/odm");
    private static final File DIR_VENDOR_ROOT = getDirectory(ENV_VENDOR_ROOT, "/vendor");
    private static final File DIR_PRODUCT_ROOT = getDirectory(ENV_PRODUCT_ROOT, "/product");
    private static final File DIR_SYSTEM_EXT_ROOT = getDirectory(ENV_SYSTEM_EXT_ROOT,
            "/system_ext");
    private static final File DIR_APEX_ROOT = getDirectory(ENV_APEX_ROOT,
            "/apex");

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

相关文章:

  • JavaScript 原型
  • python高级之简单爬虫实现
  • python+Django+MySQL+echarts+bootstrap制作的教学质量评价系统,包括学生、老师、管理员三种角色
  • WTV芯片在智能电子锁语音留言上的应用方案解析
  • 一体化运维监控管理平台:产品架构与功能解析
  • H.265流媒体播放器EasyPlayer.js视频流媒体播放器关于直播流播放完毕是否能监听到
  • MySQL灾难恢复策略:构建稳健的备份与恢复机制
  • vue3项目npm i安装依赖一直转圈或安装失败解决方法~
  • CCF刷题计划——矩阵运算(同时转置+乘法)
  • 深度学习驱动的车牌识别:技术演进与未来挑战
  • 主窗口的设计与开发(二)
  • 3、三维重建-NeuralRecon
  • 东莞网站制作-如何优化推广
  • web框架
  • 【linux】一种基于虚拟串口的方式使两个应用通讯
  • 使用kubeadm手动安装K8s
  • C++学习笔记----6、内存管理(五)---- 智能指针(4)
  • 使用patch命令移除sts中的一个container
  • 【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+JPEG图片马)
  • 力扣100题——动态规划
  • 【MATLAB】数据和字符串类型转换
  • 路由器出现DNS(Domain Name System)没有被解析的情况,没有被解析的情况,通常是由多种原因导致的。以下是一些可能的原因及相应的解释:
  • TDSQL:腾讯分布式数据库系统的核心要点与优势分析
  • Java之枚举
  • macos 系统文件操作时提示 Operation not permitted 异常解决方法 , 通过恢复模式 开启 /关闭 SIP方法
  • debian12实践-安装docker