RainySummer's Blog

Hexo site of RainySummer

0%

在树莓派3B/3B+上安装Android系统

万物互联

万物互联(IoE)定义为将人,流程,数据和事物结合一起使得网络连接变得更加相关,更有价值。万物互联将信息转化为行动,给企业,个人和国家创造新的功能,并带来更加丰富的体验和前所未有的经济发展机遇。 —— 百度百科

万物互联一直是我非常感兴趣的一个话题,现在的电子设备种类庞杂而且数量巨大,人均拥有设备或多或少都有两到三台,包括手机、电脑,甚至与家中的路由器、网络电视等等智能设备。在网络和云的时代,“数据就是金钱”。单独运行的设备优势已大不如从前,我想未来设备互相连接、数据互相分享才是发展的趋势。

话说回来,本文在树莓派上安装安卓(Android)系统的尝试也是希望能进一步证明树莓派的可拓展性和多方面的用途。作为全球使用最广泛的手机系统,安卓系统不仅仅是用于智能手机上,在其它诸如平板电脑、智能手表和智能家居上,也可以看到安卓系统的身影。在树莓派上安装安卓系统无疑能为其带来不少的可能性。

Pie on a Pi! 👏🎉
Pie on a Pi!

选择合适的Android版本并获取系统镜像

⚠ 树莓派3B/3B+均为1GB内存,因此并不能运行大型的应用/游戏。如果读者有这方面的兴趣,笔者并不建议继续进行本文的操作。

⚠ 因为树莓派4更改了启动机制,所以本文本不适用。而且截至本文完成时,还未有第三方系统的树莓派4启动方案。

有许多能在树莓派上运行的Android系统版本,包括emteria.OS(其前身是RTAndroid)、LineageOS等等。目前笔者查找到的系统镜像都是适用于树莓派3B/3B+的,或者可能可以兼容于更早的树莓派主板。但是这些系统并不能用于树莓派4,大概是因为主板、CPU更新换代导致的引导方式变化。

ℹ 需要注意的是,Google推出的Android Things系统其实并不是一个完整的Android系统,笔者推测它和Windows 10 IoT同样是面向与物联网设备的系统。

LineageOS

LineageOS是一个基于Android的面向智能手机以及平板电脑的开放源代码操作系统,前身为CyanogenMod。在此我们使用@KonstaT所开发的树莓派版本。我们访问这个官网页面查看适用于树莓派3/3B+的所有开发版本。在笔者写这篇文章时,最新的系统版本是LineageOS 16.0 (Android 9),我们可以从Android File Host下载:

下载地址

从这里下载的速度可能会十分缓慢,也许需要挂着机等个一两小时。目前笔者还没有发现高速的或者第三方的下载源。

安装

⚠ 在继续此步骤前请务必确认使用具有高速读写性能的SD卡,否则系统运行将十分卡顿。笔者推荐用于手机/高清视频拍摄的SD卡,如Sandisk的Ultra、Extreme及更高端的系列。

写入镜像到SD卡

下载完成后,我们解压压缩包以得到.img的镜像文件,或者直接在balenaEtcher(这款是树莓派官网所推荐使用的工具)中选择压缩包,将系统镜像写入到准备好的SD卡中。

balenaEtcher

① 选择镜像文件,② 选择SD卡,就可以 ③ 开始写入镜像了。

扩展分区大小

This is a 4 GB image, remaining space on your sdcard will remain unallocated. Settings app shows unallocated space as used by system which in reality it is not.

系统镜像的大小是4GB左右,因此写入到SD卡后也只会占用这么多空间,剩下的空间都是分配的空间。官方推荐使用GParted工具将/data分区(/dev/block/mmcblk0p4)扩展至包括剩余的未分配空间。在这里笔者使用的是专业版的DiskGenius工具,可以在Windows上完成对EXT4分区的扩展操作。

在此之后我们便可以将SD卡插入树莓派并通电启动了,记得给树莓派接上显示屏以及插上网线。

启动系统

树莓派通电启动后,屏幕上应该会显示如下的启动界面:

Boot Animation

第一次启动的时间会比较久一点,耐心等待15到20分钟即可看见下图所示的Logo并且看到Launcher已经启动。

Logo

ADB连接

开启开发者选项

Settings -> About tablet -> 连续点击Build number数次,直至出现提示。

开启ADB

进入开发者选项:
Settings -> System -> Advanced -> Developer options

开启Android debuggingADB over network选项,记住ADB over network下IP地址后的端口号(如0.0.0.0:5555的端口号5555)。

从Windows电脑端连接

从网上下载到ADB工具包后,用命令行工具定位到adb.exe所在的目录。

ADB

使用命令adb connect [IP:PORT]来连接Android系统。其中的IP为树莓派所在的IP地址,PORT为上文中开启ADB调试时显示的端口号。

ADB连接

安装apk应用

将下载好的apk文件放在adb.exe的同级目录下,并用如下的命令安装:

adb install [APK文件名].apk

截屏

  1. 截取屏幕:adb shell screencap -p /sdcard/01.png

  2. 将截图Pull到adb目录下:adb pull /sdcard/01.png

断开连接

adb disconnect [IP:PORT]断开与指定设备的连接。

adb disconnect来断开所有的连接。

ADB断开连接

锁定横屏

⚠ 在这个版本的系统上默认为横屏显示,如果直接打开竖屏应用会卡住并导致问题。

为解决这个问题,我们需要将显示锁定为横屏。下载并使用Ultimate Rotation Control这款应用,并将屏幕设置为横屏,之后就可以打开原先竖屏显示的应用了。