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

相关推荐

  • 大连开发区浴场哪家好?开发区海边洗澡好去处推荐

    大连开发区浴场以其得天独厚的地理位置和完善的滨海旅游设施,成为大连乃至东北地区夏季海滨休闲的首选之地,核心结论在于:该区域浴场不仅拥有优质的自然沙滩资源,更在安全管理、配套设施及交通可达性上具备显著优势,能够满足家庭亲子、情侣度假及团体聚会等多元化需求,是高性价比的海滨度假目的地,优越的自然地理条件大连开发区海……

    2026年4月1日
    1400
  • 为什么安卓开发这么火?安卓开发就业前景怎么样

    选择安卓开发,本质上是选择了一条通往全球最大移动互联网生态的快车道,它不仅意味着广阔的职业前景,更代表着掌握构建未来数字交互核心能力的入场券,安卓系统凭借其开源特性与庞大的用户基数,构建了不可替代的市场统治力,这使得掌握安卓开发技术成为连接数十亿用户的关键桥梁, 无论是从商业价值的变现能力,还是从技术生态的成熟……

    2026年3月31日
    2100
  • SolidWorks API二次开发,如何实现高效定制化功能拓展?

    SolidWorks API 二次开发是释放这款强大三维CAD软件潜力的关键,通过编程接口(API),工程师和开发者能够自动化重复性任务、创建定制化工具、集成外部系统,并构建专属应用程序,从而显著提升设计效率、标准化流程并实现复杂设计逻辑,本文将深入探讨其核心概念、开发流程与实战技巧, 理解SolidWorks……

    2026年2月5日
    12310
  • 打车系统开发需要多少钱?打车系统开发价格预算怎么算

    打车系统开发的核心价值在于构建一套高效、稳定且智能化的供需匹配机制,通过技术手段解决传统出行方式中的信息不对称问题,从而实现资源的最优配置,一个成熟的打车平台,其本质是数据驱动下的即时服务响应系统,开发的成功与否,直接取决于系统架构的扩展性、算法调度的精准度以及用户体验的流畅性,技术架构设计:构建高并发支撑体系……

    2026年3月23日
    3900
  • 单片机怎么做游戏?| 用C语言开发小游戏教程

    单片机游戏开发实战指南核心答案:单片机开发游戏的核心在于巧妙利用有限资源(处理能力、内存、显示),通过高效的代码架构、精准的硬件驱动和创新的交互设计,在8位/16位平台上实现流畅且富有乐趣的游戏体验,硬件基石与工具链核心选择:经典8位: STC89C52/STC12C5A60S2 (8051内核,资源丰富,性价……

    2026年2月10日
    6700
  • ios开发高德地图怎么用,ios高德地图开发详细教程

    在iOS应用开发领域,集成地图服务已成为众多App的标配功能,而高德地图凭借其精准的数据定位与流畅的渲染性能,成为了开发者的首选方案,iOS 开发 高德地图集成的核心在于:不仅要实现基础的地图展示与导航,更要在内存管理、线程调度与用户体验之间找到最佳平衡点,构建出高性能、低功耗的LBS(基于位置的服务)应用,成……

    2026年3月13日
    5800
  • 开发信怎么写?毅冰开发信模板有哪些?

    外贸开发信的成败,往往取决于细节的打磨与思维的转换,而非单纯的模板堆砌,核心结论在于:一封高质量的开发信,必须建立在深度客户画像分析之上,通过差异化的价值主张、极简的阅读体验以及严格的测试优化流程,才能在海量邮件中突围,实现从“被忽略”到“被回复”的跨越, 这不仅是写作技巧的博弈,更是专业度与商业思维的直接体现……

    2026年3月14日
    5100
  • 华为如何关闭开发者模式?华为手机开发者选项在哪里关闭

    华为手机关闭开发者选项的最核心且唯一有效的方法是清除系统用户数据,具体操作路径为进入设置中的应用管理,找到“设置”存储项并执行“清除数据”操作,这一操作不会删除手机内的照片或应用,但会将系统设置恢复至默认状态,从而彻底隐藏开发者选项入口,解决因误开启导致的系统不稳定或耗电过快问题,为何必须清除数据才能关闭开发者……

    2026年3月20日
    6700
  • VNC开发怎么做?VNC远程桌面开发教程

    VNC开发的核心在于构建一套高效、稳定且跨平台的远程帧缓冲协议实现,其技术本质是对网络传输延迟与图形渲染效率的极致平衡,成功的VNC解决方案必须优先解决带宽受限环境下的用户体验问题,而非单纯追求功能的堆砌,通过深入理解RFB协议、优化编码算法以及强化安全机制,开发者才能打造出真正具备商业价值的远程控制软件,RF……

    2026年4月5日
    800
  • 网站开发服务器怎么选?网站开发服务器配置要求有哪些

    网站开发服务器的核心价值在于构建一个稳定、安全且高性能的运行环境,直接决定了Web应用的上线质量与用户体验,选择并配置正确的服务器架构,不仅是技术实现的基石,更是保障业务连续性与数据安全的关键战略决策, 核心架构选型:决定性能的顶层设计服务器架构的选型是开发初期的首要任务,直接关系到后续的扩展能力与维护成本,物……

    2026年3月10日
    5100

发表回复

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