Ubuntu如何配置安卓开发环境?安卓开发全流程详解

长按可调倍速

Android在ubuntu下开发环境搭建全套指南(1)

核心环境搭建 (基石准备)

  1. 更新系统与安装基础工具

    Ubuntu如何配置安卓开发环境

    sudo apt update && sudo apt upgrade -y
    sudo apt install -y git curl wget unzip zip make gcc libc6-dev
  2. 安装 Java Development Kit (JDK)

    • 推荐选择:OpenJDK 17 (LTS) (安卓 Gradle 插件兼容性最佳)
      sudo apt install -y openjdk-17-jdk
    • 验证安装:
      java -version
      javac -version
  3. 安装 Android Studio (官方IDE)

    • 官方下载:访问 Android Developer官网 获取最新Linux版本 .tar.gz 包。
    • 解压安装
      tar -xzvf ~/Downloads/android-studio-.tar.gz -C ~
    • 启动与初始化
      cd ~/android-studio/bin
      ./studio.sh
    • 首次运行:跟随向导完成SDK组件下载(Android SDK Build-Tools, Platform Tools, 最新Android Platform SDK 必选)。强烈建议勾选 Android Virtual Device (AVD) 用于后续模拟器创建
  4. 配置关键环境变量

    • 编辑 ~/.bashrc (或 ~/.zshrc):
      export ANDROID_HOME=$HOME/Android/Sdk
      export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
      export PATH=$PATH:$ANDROID_HOME/platform-tools
      export PATH=$PATH:$ANDROID_HOME/emulator
    • 使配置生效:
      source ~/.bashrc  # 或 source ~/.zshrc
    • 验证ADB/Fastboot
      adb --version
      fastboot --version

安卓虚拟设备 (AVD) 配置与优化 (高效模拟)

  1. 启用KVM硬件加速 (性能关键!)

    • 检查CPU是否支持虚拟化:
      egrep -c '(vmx|svm)' /proc/cpuinfo  # 输出 > 0 即支持
    • 安装KVM:
      sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
      sudo adduser $USER kvm
      sudo adduser $USER libvirt
    • 重启系统使权限生效。
    • 在Android Studio AVD Manager创建AVD时,务必选择 x86_64x86 系统镜像,运行时将自动启用硬件加速,速度提升显著。
  2. 创建高性能AVD

    • 在Android Studio中打开 AVD Manager
    • 选择硬件配置 (如 Pixel 6),下载推荐的 x86_64 Android版本镜像。
    • Graphics 设置中,优先选择 Hardware - GLES 2.0 (性能最佳),若遇兼容性问题可尝试 Software

连接真机调试 (真实环境测试)

  1. 启用USB调试

    Ubuntu如何配置安卓开发环境

    • 手机进入 开发者选项 (多次点击 设置 -> 关于手机 -> 版本号)。
    • 开启 USB调试USB安装
  2. Ubuntu端配置USB权限

    • 创建 51-android.rules 文件:
      sudo nano /etc/udev/rules.d/51-android.rules
    • 添加规则 (替换 <username> 为你的用户名):
      SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev", OWNER="<username>"
      SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", MODE="0666", GROUP="plugdev", OWNER="<username>" # 其他厂商ID
    • 常用厂商ID:Google=18d1, Samsung=04e8, HTC=0bb4, Sony=054c, Motorola=22b8,可通过 lsusb 命令查看连接设备的ID。
    • 重载规则并重启服务:
      sudo udevadm control --reload-rules
      sudo service udev restart
      sudo usermod -aG plugdev $USER # 确保用户加入plugdev组
    • 重启Ubuntu 确保所有变更生效。
  3. 连接与授权

    • 用USB线连接手机和电脑。
    • 手机弹出 允许USB调试吗? 提示时,勾选 始终允许 并确认。
    • 终端运行 adb devices,应看到设备序列号并显示 device

实战:创建并运行首个应用

  1. 在Android Studio中:

    • File -> New -> New Project
    • 选择模板 (如 Empty Views Activity)。
    • 配置项目名称、包名、保存路径、语言 (Kotlin推荐)、最低API级别。
    • 点击 Finish,等待Gradle完成初始构建。
  2. 选择运行目标:

    • 工具栏下拉菜单中,选择已配置好的AVD或连接的物理设备。
    • 点击绿色 Run 三角按钮 (或按 Shift+F10)。
    • Android Studio会自动编译APK,安装到目标设备并启动应用。

高级技巧与避坑指南 (专业解决方案)

  • Gradle构建加速

    • ~/.gradle/gradle.properties 中添加:
      org.gradle.daemon=true
      org.gradle.parallel=true
      org.gradle.caching=true
      android.useAndroidX=true
      kapt.incremental.apt=true
    • 考虑使用 Gradle Build Scan 分析构建瓶颈。
  • ADB常见问题

    Ubuntu如何配置安卓开发环境

    • 设备未识别:确认 adb devices 无输出。
      • 检查USB线/端口,尝试不同端口。
      • 重启 adb server: adb kill-server && adb start-server
      • 确认 lsusb 能看到设备,且 51-android.rules 配置正确且生效。
    • INSTALL_FAILED_UPDATE_INCOMPATIBLE:设备上已存在相同包名但签名不同的应用,卸载旧版本即可。
  • Linux文件句柄限制
    大规模项目或模拟器多开时可能遇到 Too many open files 错误。

    # 临时提高限制
    ulimit -n 65536
    # 永久修改 (谨慎操作,了解风险)
    sudo nano /etc/security/limits.conf
    # 添加行:
     soft nofile 65536
     hard nofile 65536

    需重启生效。

  • 替代模拟器选择
    对于资源消耗敏感或需要更低层级控制的场景,可考虑 Waydroid 基于容器技术的轻量级安卓兼容层,直接在Linux桌面运行安卓应用。


你更倾向于使用安卓模拟器还是真机进行日常开发?在实际使用中,是否遇到过Ubuntu环境下特有的调试难题(如USB连接稳定性、特定硬件兼容性问题)?欢迎在评论区分享你的实战经验和高效技巧!

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/27786.html

(0)
上一篇 2026年2月13日 03:43
下一篇 2026年2月13日 03:46

相关推荐

  • 开发者模式怎么开启,s6开发者模式在哪里打开

    S6开发者模式的核心价值在于通过底层权限的开放,实现设备性能的极限释放与功能的高度定制,它是连接普通用户操作界面与系统底层逻辑的桥梁,对于追求极致体验的技术爱好者而言,是不可或缺的利器,解锁系统潜能的底层逻辑普通模式下,设备为了保障系统稳定性与安全性,会对处理器的频率、后台进程的数量以及界面的渲染层级进行保守限……

    2026年4月6日
    3700
  • 武汉安卓开发公司哪家好?武汉安卓开发薪资待遇高吗

    武汉地区的移动应用市场正处于高速增长期,企业若想在激烈的竞争中抢占份额,必须构建高性能、用户体验优异的移动端产品,安卓系统作为市场占有率最高的移动操作系统,是企业布局移动战略的绝对核心,选择专业的技术团队进行深度定制开发,而非简单的模板套用,是实现业务数字化转型的关键路径,高质量的安卓应用不仅是业务流量的入口……

    2026年3月14日
    9000
  • codeblocks 开发难学吗,codeblocks 开发环境配置教程

    CodeBlocks 作为一款开源、免费且跨平台的集成开发环境(IDE),其核心价值在于为开发者提供了轻量级、高效率且高度可定制的 C/C++ 编程体验,是初学者入门与专业开发者进行轻量级项目的首选工具,相较于 Visual Studio 等庞然大物,CodeBlocks 凭借其极低的资源占用、灵活的插件架构以……

    2026年4月5日
    5700
  • 微博二次开发,是创新机遇还是监管挑战,未来趋势如何?

    微博二次开发的核心在于合理、合规地利用微博开放平台提供的API接口,为自身业务或用户创造更丰富的功能和体验,要实现这一点,开发者需要深入理解平台规则、掌握API调用技术并注重安全与用户体验,以下是详细的开发流程和关键要点: 核心基础:微博开放平台接入准备注册开发者账号:访问微博开放平台,使用微博账号登录并完成开……

    2026年2月5日
    9200
  • 开发电子商务怎么做?电子商务开发流程与关键步骤

    以用户为中心、数据为驱动、技术为支撑,构建可扩展、高转化、可持续增长的数字商业闭环,当前,全球电商交易额已突破6.3万亿美元(Statista 2024),中国网络零售占比社会消费品零售总额达27.6%(国家统计局2023),在竞争白热化阶段,单纯“搭个网站”已无法满足增长需求——成功开发电子商务必须聚焦三大底……

    程序开发 2026年4月17日
    2100
  • 打印程序开发怎么做?完整开发教程详解

    打印程序开发的核心在于理解应用程序如何与打印系统交互,将数据或文档准确地转换为物理介质上的输出,这涉及操作系统提供的打印接口、打印作业管理、设备通信以及格式处理,下面我们将深入探讨其关键环节和实现方法, 开发环境与基础概念理解打印架构: 现代操作系统(如Windows, macOS, Linux)都采用分层打印……

    2026年2月14日
    9300
  • 电子开发在西安怎么做?西安电子开发公司哪家好

    西安电子开发产业正迎来历史性跃升——依托“硬科技之都”定位、高校集群优势与政策加码,已成为西部高端电子研发与产业化高地,2023年全市集成电路产业规模突破800亿元,同比增长18.7%;电子开发企业数量较2020年增长63%,其中高新技术企业占比达71%,核心结论:西安电子开发已形成“高校研发—中试验证—量产落……

    2026年4月14日
    3200
  • ogre游戏开发难吗?零基础如何入门学习

    Ogre游戏开发的核心优势在于其高度灵活的渲染架构、跨平台能力以及对底层图形API的出色抽象,这使得它成为构建高性能3D游戏引擎及可视化应用的理想底层框架,相比于Unity或Unreal等商业引擎,Ogre(Object-Oriented Graphics Rendering Engine)并非一个“全家桶”式……

    2026年4月10日
    4800
  • Win8 C开发怎么做,Windows 8 C语言编程如何入门

    Win8 C# 开发的核心在于从传统桌面应用向基于WinRT运行时的触控优先模型转变, 这一过程不仅仅是语法的更新,更是对UI设计理念、系统交互方式以及异步编程模式的全面重构,开发者必须掌握XAML的声明式UI构建、WinRT API的非阻塞特性以及应用生命周期的精细管理,才能构建出符合现代操作体验的高性能应用……

    2026年2月22日
    10500
  • DediPath美国VPS怎么样,1.75美元月付性能实测

    在当前低价云服务器市场中,1.75美元/月的美国VPS极具吸引力,本次测评针对DediPath旗下超低价套餐进行深度实测,通过真实的底层硬件探测、网络带宽跑分及路由追踪,验证该套餐的实际生产环境可用性,并详细解析当前2026年限时优惠活动的参与规则, 测评环境与基础硬件信息本次测试机型为DediPath洛杉矶机……

    2026年4月28日
    2300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注