Android envsetup与Python venv使用指南

Android envsetup 和 Python venv 是两种完全不同的环境配置工具,分别服务于不同的开发场景。以下是对它们的详细解释及使用方法:


1. Android envsetup

用途 :

Android envsetup 是 Android 源码开发中的环境配置脚本(envsetup.sh),用于初始化 Android 源码编译所需的工具链、环境变量和快捷命令。它专为编译 AOSP(Android Open Source Project)或定制 Android 系统而设计。

核心功能:

  • 设置编译环境变量(如 ANDROID_BUILD_TOP 指向源码根目录)。
  • 提供快捷命令(如 croot 快速跳转源码根目录、mm 编译当前模块)。
  • 通过 lunch 选择目标设备(如 aosp_x86_64-eng)。

使用场景:

  • 编译 Android 系统源码(如 AOSP)。
  • 开发或调试系统级组件(如 Framework、Hal 层)。
  • 定制 ROM 或刷机包。

使用方法:

  1. 进入 Android 源码目录:

    bash 复制代码
    cd /path/to/android/source
  2. 初始化环境:

    bash 复制代码
    source build/envsetup.sh
  3. 选择编译目标:

    bash 复制代码
    lunch
    # 输入数字选择设备(如 `aosp_x86_64-eng`)
  4. 编译代码:

    • 编译整个系统:make -j$(nproc)
    • 编译单个模块:mm(需在模块目录下)
    • 编译指定模块:mmm path/to/module

关键命令:

  • lunch: 选择目标设备(如手机型号或模拟器)。
  • croot: 快速返回源码根目录。
  • mm/mmm: 编译当前目录或指定目录的模块。
  • make snod: 快速重新生成系统镜像(跳过部分编译步骤)。

2. Python venv

用途 :

Python venv 是 Python 自带的虚拟环境工具,用于创建独立的 Python 环境,隔离不同项目的依赖,避免全局安装包的版本冲突。

核心功能:

  • 隔离项目依赖(如不同项目使用不同版本的 Django)。
  • 通过 pip 安装包到虚拟环境,不影响系统全局 Python。
  • 支持导出依赖列表(requirements.txt)。

使用场景:

  • 开发 Python 应用时管理项目依赖。
  • 需要同时维护多个项目,且依赖版本不同。
  • 部署 Python 应用时确保环境一致性。

使用方法:

  1. 创建虚拟环境:

    bash 复制代码
    python -m venv myenv  # 生成 `myenv` 目录
  2. 激活虚拟环境:

    • Linux/macOS :

      bash 复制代码
      source myenv/bin/activate
    • Windows :

      cmd 复制代码
      myenv\Scripts\activate.bat
  3. 安装依赖:

    bash 复制代码
    pip install requests  # 包仅安装在虚拟环境中
  4. 导出依赖列表:

    bash 复制代码
    pip freeze > requirements.txt
  5. 退出虚拟环境:

    bash 复制代码
    deactivate

关键操作:

  • 依赖复用 :通过 pip install -r requirements.txt 快速安装他人项目的依赖。
  • 轻量隔离:虚拟环境仅占用少量磁盘空间,可随时删除重建。

对比总结

工具 场景 核心功能 典型命令
Android envsetup Android 源码编译 配置编译环境、提供快捷命令 source envsetup.sh, lunch, mm
Python venv Python 项目管理 隔离依赖、管理包版本 python -m venv, activate, pip

常见问题

Q1:envsetup.sh 只能在 AOSP 中使用吗?

是的,它是 Android 源码编译的专用工具,普通 App 开发无需使用。

Q2:Python 虚拟环境能否跨平台共享?

不建议直接复制虚拟环境目录,不同平台可能不兼容。应通过 requirements.txt 同步依赖。

Q3:如何彻底删除虚拟环境?

直接删除虚拟环境目录(如 rm -rf myenv)即可。


通过合理使用这两个工具,你可以高效管理 Android 系统级开发环境和 Python 项目依赖环境,避免环境冲突问题。

相关推荐
Python图像识别1 小时前
18-【2027毕设】YOLO11烟雾检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·深度学习·yolo·毕业设计·毕设
FYKJ_20101 小时前
springboot助农产品销售商城05829-计算机课程设计、毕业设计
java·spring boot·python·mysql·spark·django
Yunovian1 小时前
AI时代,针对模型与应用,浅谈一下各编程语言
开发语言·c++·人工智能·python·ai·rust·ai编程
weixin_457760001 小时前
基于 YOLO11m-Pose 的动物姿态估计系统:从 Animal-Pose 标注到 Python 桌面部署
人工智能·python·深度学习
Ticnix2 小时前
RAG 烂大街?烂大街的只是那条流水线——真正的分水岭在这五处
后端·python·agent
Wx-bishekaifayuan2 小时前
springboot社区扶贫救助管理系统13300-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
小小张说故事2 小时前
LightGBM 入门指南:更快的梯度提升树,Python 实战
后端·python·机器学习
Ticnix2 小时前
RAG 检索不准,九成的锅不在向量——不同文件,就该有不同的入库方案
后端·python·agent
jerryinwuhan2 小时前
python快速入门第二周
python
IT毕设梦工厂3 小时前
计算机毕业设计选题推荐:基于大数据的供应链数据分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hive·hadoop·python·数据分析·spark·课程设计