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

相关推荐

  • 大众点评开发者如何接入API?| API接入流程与权限详解

    大众点评开发者成为大众点评开发者意味着打开了连接中国庞大本地生活消费数据与服务生态的大门,通过官方开放平台(https://open.dianping.com/),开发者可以安全、合规地接入丰富的商业数据与功能,构建创新的应用,服务商户与消费者,以下是深入且实用的开发指南: 开启开发者之旅:前期准备注册与认证……

    2026年2月7日
    100
  • 魅族Pro开发者模式具体操作步骤详解,为何如此神秘?

    魅族Pro开发者模式魅族Pro手机搭载的Flyme系统,其开发者模式是连接普通用户与专业调试功能的桥梁,它隐藏着一系列强大的工具,对于应用开发者、高级用户、性能调优爱好者乃至解决特定系统问题都至关重要,正确理解和使用开发者模式,能显著提升你对手机的控制力和效率,下面将详细指导你如何开启、理解并安全有效地利用魅族……

    2026年2月5日
    200
  • 如何开发iOS游戏?从入门到精通完整教程!

    iOS游戏开发的核心在于高效利用苹果生态系统工具,使用Swift语言结合SpriteKit框架是快速构建2D游戏的理想方案,开发环境为Xcode,本教程将详解从零开发一款物理碰撞游戏的完整流程,开发环境配置安装最新版Xcode(需macOS系统)创建新项目选择”Game”模板设置Game Technology为……

    2026年2月13日
    200
  • Java云开发环境如何搭建?最全教程与平台推荐

    Java云开发环境Java云开发环境指基于云计算平台构建的Java应用开发、测试、部署和运维全流程支撑体系,它整合了云基础设施(IaaS)、平台服务(PaaS)、开发工具链及协作功能,使开发者摆脱本地硬件限制,实现高效、弹性、协同的现代化开发体验,为何选择Java云开发环境?核心价值解析环境一致性终结“本地能跑……

    2026年2月13日
    330
  • 如何报名网易移动开发大赛?-2026参赛攻略及奖金详解

    参加网易移动开发大赛是提升技术实力和行业视野的关键机会,本文将系统讲解从技术选型到获奖方案的完整开发路径,结合往届冠军案例提供可复用的实战经验,技术栈选型策略跨平台框架成主流趋势2023年获奖作品中78%采用跨平台方案:Flutter (占比45%):网易严选团队使用Flutter+自研引擎实现动画性能提升40……

    程序开发 2026年2月11日
    200
  • 如何快速掌握ASP.NET开发基础?从零开始学入门教程

    ASP.NET是Microsoft开发的一个强大框架,专为构建动态Web应用程序而设计,它基于.NET平台,提供高性能、安全性和可扩展性,无论你是初学者还是有经验的开发者,掌握ASP.NET的基础能让你快速上手企业级应用开发,本文将逐步引导你从环境设置到项目部署,涵盖核心概念和实用技巧,确保你构建出可靠的应用……

    程序开发 2026年2月10日
    350
  • 腾讯开发的游戏有哪些?热门腾讯手游推荐

    腾讯开发的游戏包括《王者荣耀》、《和平精英》、《QQ飞车》、《穿越火线》、《英雄联盟手游》等知名作品,覆盖了MOBA、射击、竞速和角色扮演等多个品类,这些游戏凭借强大的技术支撑和用户生态,在全球范围内积累了数亿玩家,下面,我将以腾讯游戏为例,深入解析游戏程序开发的完整流程,提供实用的教程和专业建议,帮助开发者打……

    2026年2月10日
    200
  • Web开发缓存怎么设置?提升网站速度的实用缓存技巧

    Web 开发缓存技术:提升性能与用户体验的核心策略在当今追求极致用户体验的互联网时代,网站和应用的速度是决定用户留存与业务成功的关键因素之一,而缓存(Caching),作为优化 Web 性能最有效、最基础的技术手段,其重要性不言而喻,它通过在数据访问路径上的不同层级存储数据的副本,使得后续请求能够更快地获取所需……

    2026年2月15日
    400
  • 集成产品开发由谁提出? | IPD概念深度解析

    集成产品开发由IBM提出集成产品开发(Integrated Product Development, IPD)是一种系统化的产品开发方法,其核心理念是将市场、研发、制造、采购、财务、服务等不同职能领域的人员紧密集成在一起,组成跨部门团队(如PDT, Product Development Team),通过结构化……

    2026年2月8日
    400
  • Swift开发工具哪个好用?Xcode必备神器推荐

    Swift 作为 Apple 生态的核心编程语言,其开发效率高度依赖于工具链的合理使用,掌握专业工具组合是构建高性能 iOS、macOS、watchOS 和 tvOS 应用的关键,核心工具链:Xcode 深度解析Xcode 是 Apple 官方集成开发环境(IDE),提供 Swift 开发的完整解决方案:Swi……

    2026年2月13日
    530

发表回复

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