在M1芯片的Macbook pro上高效开发Android的正确姿势

Posted yubo_725

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在M1芯片的Macbook pro上高效开发Android的正确姿势相关的知识,希望对你有一定的参考价值。

前言

2020年11月,苹果发布了M1芯片以及搭载M1芯片的Mackbook pro,由于我的老笔记本还是17款的8G内存的Macbook pro,已无法满足高效工作的需求,而M1芯片在各个自媒体的评测中都取得了非常惊人的性能成就,于是我将自己的旧笔记本通过Apple官方回收卖掉,置换了一台16G的搭载了M1芯片的Macbook pro,本以为工作效率会大大提升,没想到悲剧才开始。

各种坑与解决方案

由于M1芯片基于arm64架构,跟intel的x86不同,虽然苹果提供了Rosetta帮助用户在M1芯片上运行基于intel CPU的应用程序,但是对于安卓开发者而言,坑还是太多了,下面一一说明我遇到的坑与相应的解决方案,希望给目前(2021年5月14日)还在使用M1 Macbook做android开发的同行们一点帮助。

Android Studio

截止到目前(2021年5月14日)为止,Android Studio还没有推出适配M1芯片的稳定版,仅仅只推出了一个Android Studio Canary 15的版本粗略做了M1芯片的适配,但是Canary版本用于正式Android开发可能还是不太方便,关于该Canary版本,可以在这里查看更详细的更新说明。

Android Studio在搭载M1芯片的Macbook上可以正常运行,但是必须通过Rosetta模式才能运行,而且速度奇慢,经常是代码写着写着就卡住了,最开始Android Studio一天要崩溃好多次,随着MacOS的升级,崩溃问题好了很多,但是IDE工作起来还是会感觉非常卡,工作效率并未提升反而还下降了,好在M1推出不久后,IntelliJ IDEA发布了适配M1芯片的版本,于是我赶紧下载并使用了一番,发现速度真的是非常快,比Android Studio好用非常多。在Mac的活动监视器里可以看到IntellJ IDEA的CPU种类是Apple:


IntelliJ IDEA的官方下载地址为:https://www.jetbrains.com/idea/download/#section=mac

可以在这里下载到适配Mac Apple Silicon的IntelliJ IDEA
或者在这里下载适配Mac Apple Silicon的Android Studio Canary版本(直接下载地址:https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2020.3.1.15/android-studio-2020.3.1.15-mac_arm.zip)

Java

IDE卡慢的问题通过使用IntelliJ IDEA解决了,但是Android项目的编译速度还是上不去,主要是因为Oracle提供的JDK目前的版本是基于intel x86架构的,在Mac的活动监视器中也可以查看Oracle版的Java运行时的CPU种类是Intel,解决这个问题的方法是使用zulu jdk代替官方的jdk,在这个地址:https://www.azul.com/downloads/?version=java-8-lts&os=macos&architecture=arm-64-bit&package=jdk可以下载基于arm64架构的jdk版本,安装到Mac上之后,zulu jdk会安装到Mac的/Library/Java/JavaVirtualMachines目录下,之后你需要配置两个地方:

  1. 为Mac配置Java环境变量
  2. 为IntelliJ IDEA配置jdk目录

第一项配置,可直接编辑~/.bash_profile文件,在其中加入jdk目录即可,比如我的电脑配置的是下面的路径:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home

第二项配置,需要打开IntelliJ IDEA,选择菜单栏的File - Project Structure,然后配置jdk,如下图所示:

Android项目gradle插件配置

由于目前的IntelliJ IDEA还没有更新Android Gradle Plugin,会导致无法使用高版本的gradle插件,所以如果需要使用IntelliJ IDEA来开发Android项目的话,你需要指定项目根目录下的build.gradle文件中的gradle版本不超过4.0.2,否则项目跑不起来会报错,配置如下图所示:

Android项目运行到真机

使用适配M1芯片的IntelliJ IDEA运行Android项目到真机,你会发现项目可以正常安装到手机上,但项目在真机上无法自动打开,这个问题需要修改IntelliJ IDEA中依赖的sqlite jar包,在这里:https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc下载一个新的SQLite JDBC library,注意需要选择版本号大于等于3.32.3.3的版本,因为从3.32.3.3这个版本才开始支持M1芯片,具体信息可以从这里查看。下载了新版本的jar包后,我们在Mac终端中进入/Applications/IntelliJ IDEA CE.app/Contents这个目录,然后open .在Finder中打开该目录,在Contents目录下搜索sqlite,会发现有两个目录下存在sqlite-jdbc的jar包,分别是:

  1. lib/
  2. plugins/svn4idea/lib/

用前面下载的新版本的jar包替换掉这两个地方的老的jar包,然后重启IDEA即可。

模拟器

由于CPU架构的问题,之前的Android模拟器都无法在M1芯片的Macbook上运行,目前Google官方提供了一个支持M1芯片的Android模拟器预览版,GitHub主页是:https://github.com/google/android-emulator-m1-preview/releases/tag/0.3

通过如上几步配置后,在M1芯片的Macbook pro上就能非常高效的开发Android应用了,卡顿和编译慢的问题有了很大改善,当然作为Android开发者,还是期望Android Studio稳定版能尽快适配M1芯片。

参考:https://blog.csdn.net/sinat_38184748/article/details/114520584

以上是关于在M1芯片的Macbook pro上高效开发Android的正确姿势的主要内容,如果未能解决你的问题,请参考以下文章

配备 M1 Max 芯片的新 MacBook Pro 上的 Android Studio?

MacBook Pro m1 搭建前端开发环境

已解决macbook pro m1芯片ubuntu20.04ARM64虚拟机添加输入法

已解决macbook pro m1芯片ubuntu20.04ARM64虚拟机添加输入法

乔布斯当场“复活”,苹果发AirPods 3和地表最强电脑芯片,秀刘海屏Macbook Pro

“因为内存泄漏,我的 M1 MacBook Pro 瘫痪了”