标签 Android 下的文章

当前的安卓生态系统被数百种不同版本的安卓所污染,每种版本都运行着 Linux 内核的不同变体。每个版本均针对不同的手机和不同的配置而设计。谷歌试图通过将主线 Linux 内核添加到安卓来解决该问题。

当前在安卓中是如何处理 Linux 内核的

在到达你的手机之前,你手机上的 Linux 内核经历了三个主要步骤

首先,谷歌采用了 Linux 内核的 LTS(长期支持)版本,并添加了所有的安卓专用代码。这将成为“安卓通用内核”。

然后,谷歌将此代码发送给创建可运行在手机的片上系统(SoC)的公司。这通常是高通公司。

SoC 制造商添加了支持 CPU 和其他芯片的代码后,便会将该内核传递给实际的设备制造商,例如三星和摩托罗拉。然后,设备制造商添加代码以支持手机的其余部分,例如显示屏和摄像头。

每个步骤都需要一段时间才能完成,并且会导致该内核无法与其他任何设备一起使用。这也意味着内核会非常旧,通常是大约两年前的内核。例如,上个月交付的谷歌 Pixel 4 带有来自 2017 年 11 月的内核,而且它将永远不会得到更新。

谷歌承诺会为较旧的设备创建安全补丁,这意味着他们会一直盯着大量的旧代码。

将来

去年,谷歌宣布计划解决此问题。今年,他们在 2019 Linux Plumbers Conference 上展示了他们取得的进展。

“我们知道运行安卓需要什么,但不一定是在任何给定的硬件上。因此,我们的目标是从根本上找出所有这些,然后将其交给上游,并尝试尽可能接近主线。”

Sandeep Patil,安卓内核团队负责人

他们确实炫耀了运行带有合适的 Linux 内核的小米 Poco F1。但是,有些东西似乎没有工作,例如电池电量百分比一直留在 0%。

那么,谷歌计划如何使其工作呢?从他们的 Treble 项目计划中摘录。在 Treble 项目之前,与设备和安卓本身交互的底层代码是一大堆代码。Treble 项目将两者分开,并使它们模块化,以便可以更快地交付安卓更新,并且在更新时,这些低级代码可以保持不变。

谷歌希望为内核带来同样的模块化。他们的计划“涉及稳定 Linux 的内核 ABI,并为 Linux 内核和硬件供应商提供稳定的接口来进行写入。谷歌希望将 Linux 内核与其硬件支持脱钩。”

因此,这意味着谷歌将交付一个内核,而硬件驱动程序将作为内核模块加载。目前,这只是一个草案。仍然有很多技术问题有待解决。因此,这不会很快有结果。

来自开源的反对意见

开源社区不会对将专有代码放入内核的想法感到满意。Linux 内核准则指出,驱动程序必须具有 GPL 许可证才能包含在内核中。他们还指出,如果驱动程序的更改导致错误,应由导致该错误的人来解决。从长远来看,这意味着设备制造商的工作量将减少。

关于将主线内核包含到安卓中的最终想法

到目前为止,这只是一个草案。谷歌有很大的可能会开始进行该项目,除非他们意识到这将需要多少工作后才会放弃。看看谷歌已经放弃了多少个项目!

Android Police 指出谷歌正在开发其 Fuchsia 操作系统,这似乎是为了有一天取代谷歌。

那么,问题是谷歌会尝试完成那些艰巨的任务,使安卓以主线 Linux 内核运行,还是完成他们统一的安卓替代产品的工作?只有时间可以回答。

你对此话题有何看法?请在下面的评论中告诉我们。


via: https://itsfoss.com/mainline-linux-kernel-android/

作者:John Paul 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Android 模拟器允许我们直接从 Linux 系统上运行我们最喜欢的 Android 应用程序或游戏。对于 Linux 来说,有很多的这样的 Android 模拟器,在过去我们介绍过几个此类应用程序。

你可以通过导航到下面的网址回顾它们。

今天我们将讨论 Anbox Android 模拟器。

Anbox 是什么?

Anbox 是 “Android in a box” 的缩写。Anbox 是一个基于容器的方法,可以在普通的 GNU/Linux 系统上启动完整的 Android 系统。

它是现代化的新模拟器之一。

Anbox 可以让你在 Linux 系统上运行 Android,而没有虚拟化的迟钝,因为核心的 Android 操作系统已经使用 Linux 命名空间(LXE)放置到容器中了。

Android 容器不能直接访问到任何硬件,所有硬件的访问都是通过在主机上的守护进程进行的。

每个应用程序将在一个单独窗口打开,就像其它本地系统应用程序一样,并且它可以显示在启动器中。

如何在 Linux 中安装 Anbox ?

Anbox 也可作为 snap 软件包安装,请确保你已经在你的系统上启用了 snap 支持。

Anbox 软件包最近被添加到 Ubuntu 18.10 (Cosmic) 和 Debian 10 (Buster) 软件仓库。如果你正在运行这些版本,那么你可以轻松地在官方发行版的软件包管理器的帮助下安装。否则可以用 snap 软件包安装。

为使 Anbox 工作,确保需要的内核模块已经安装在你的系统中。对于基于 Ubuntu 的用户,使用下面的 PPA 来安装它。

$ sudo add-apt-repository ppa:morphis/anbox-support
$ sudo apt update
$ sudo apt install linux-headers-generic anbox-modules-dkms

在你安装 anbox-modules-dkms 软件包后,你必须手动重新加载内核模块,或需要系统重新启动。

$ sudo modprobe ashmem_linux
$ sudo modprobe binder_linux

对于 Debian/Ubuntu 系统,使用 APT-GET 命令APT 命令 来安装 anbox。

$ sudo apt install anbox

对于基于 Arch Linux 的系统,我们总是习惯从 AUR 储存库中获取软件包。所以,使用任一个的 AUR 助手 来安装它。我喜欢使用 Yay 工具

$ yuk -S anbox-git

否则,你可以通过导航到下面的文章来 在 Linux 中安装和配置 snap。如果你已经在你的系统上安装 snap,其它的步骤可以忽略。

$ sudo snap install --devmode --beta anbox

Anbox 的必要条件

默认情况下,Anbox 并没有带有 Google Play Store。因此,我们需要手动下载每个应用程序(APK),并使用 Android 调试桥(ADB)安装它。

ADB 工具在大多数的发行版的软件仓库是轻易可获得的,我们可以容易地安装它。

对于 Debian/Ubuntu 系统,使用 APT-GET 命令APT 命令 来安装 ADB。

$ sudo apt install android-tools-adb

对于 Fedora 系统,使用 DNF 命令 来安装 ADB。

$ sudo dnf install android-tools

对于基于 Arch Linux 的系统,使用 Pacman 命令 来安装 ADB。

$ sudo pacman -S android-tools

对于 openSUSE Leap 系统,使用 Zypper 命令 来安装 ADB。

$ sudo zypper install android-tools

在哪里下载 Android 应用程序?

既然我们不能使用 Play Store ,你就得从信得过的网站来下载 APK 软件包,像 APKMirror ,然后手动安装它。

如何启动 Anbox?

Anbox 可以从 Dash 启动。这是默认的 Anbox 外貌。

如何把应用程序推到 Anbox ?

像我先前所说,我们需要手动安装它。为测试目的,我们将安装 YouTube 和 Firefox 应用程序。

首先,你需要启动 ADB 服务。为做到这样,运行下面的命令。

$ adb devices

我们已经下载 YouTube 和 Firefox 应用程序,现在我们将安装。

语法格式:

$ adb install Name-Of-Your-Application.apk

安装 YouTube 和 Firefox 应用程序:

$ adb install 'com.google.android.youtube_14.13.54-1413542800_minAPI19(x86_64)(nodpi)_apkmirror.com.apk'
Success

$ adb install 'org.mozilla.focus_9.0-330191219_minAPI21(x86)(nodpi)_apkmirror.com.apk'
Success

我已经在我的 Anbox 中安装 YouTube 和 Firefox。查看下面的截图。

像我们在文章的开始所说,它将以新的标签页打开任何的应用程序。在这里,我们将打开 Firefox ,并访问 2daygeek.com 网站。


via: https://www.2daygeek.com/anbox-best-android-emulator-for-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Deep News

《如何将你的应用生态从 Apple 迁移到其他平台?》

这篇文章从软件、硬件两个方面,解读了如何将你的日常使用设备从 Apple 迁移到其他平台。其中提到的主要是 Google 的服务。 具体的替换如下:

Apple 生态Google 生态
iPhonePixel 3 or Pixel 3XL
mac bookPixelbook
Apple WatchFossil Sport
AirPodsSamsung Galaxy Buds
HomepodGoogle Home, Google Home Mini, or Google Home Max
HomepodGoogle Home Hub
Apple TVChromecast or Android TV box

当初的屠龙少年终成尾大不掉的恶龙,一代一代的屠龙者不断出现,Google 又能否检查不作恶呢?拭目以待。

Quick News

微软 Hotmail (Outlook)发生数据泄露

据报道,一批非企业用户的邮箱遭到了泄漏 ,泄漏信息包括邮箱地址、文件夹名、邮件标题等。受影响的邮件为从 2019 年 1 月 1日 到 2019 年 3 月 28 日的邮件。微软表示已经做了处理,避免问题的扩大。【GadgetsNow】

微软推出 Google G Suite 迁移到 Office 365 的工具

微软推出了 Google G Suite 迁移到 Office 365 的工具,帮助用户从 Google G Suite 迁移数据到 Office 365 中。【ZDNet】

Facebook 仍未走出隐私风波

据华盛顿邮报报道,美国联邦贸易委员会(FTC)正在考虑和研究设计新的法规来规范企业行为以及如何让扎克伯格对 Facebook 数据丢失负责。【华盛顿邮报】

第九代 Android 带来了更令人满意的用户体验。

我们来谈论一下 Android。尽管 Android 只是一款内核经过修改的 Linux,但经过多年的发展,Android 开发者们(或许包括正在阅读这篇文章的你)已经为这个平台的演变做出了很多值得称道的贡献。当然,可能很多人都已经知道,但我们还是要说,Android 并不完全开源,当你使用 Google 服务的时候,就已经接触到闭源的部分了。Google Play 商店就是其中之一,它不是一个开放的服务。不过无论 Android 开源与否,这就是一个美味、营养、高效、省电的馅饼(LCTT 译注:Android 9.0 代号为 Pie)。

我在我的 Essential PH-1 手机上运行了 Android 9.0(我真的很喜欢这款手机,也知道这家公司的境况并不好)。在我自己体验了一段时间之后,我认为它是会被大众接受的。那么 Android 9.0 到底好在哪里呢?下面我们就来深入探讨一下。我们的出发点是用户的角度,而不是开发人员的角度,因此我也不会深入探讨太底层的方面。

手势操作

Android 系统在新的手势操作方面投入了很多,但实际体验却不算太好。这个功能确实引起了我的兴趣。在这个功能发布之初,大家都对它了解甚少,纷纷猜测它会不会让用户使用多点触控的手势来浏览 Android 界面?又或者会不会是一个完全颠覆人们认知的东西?

实际上,手势操作比大多数人设想的要更加微妙而简单,因为很多功能都浓缩到了 Home 键上。打开手势操作功能之后,Recent 键的功能就合并到 Home 键上了。因此,如果需要查看最近打开的应用程序,就不能简单地通过 Recent 键来查看,而应该从 Home 键向上轻扫一下。(图 1)

图 1:Android 9.0 中的”最近的应用程序“界面。

另一个不同的地方是 App Drawer。类似于查看最近打开的应用,需要在 Home 键向上滑动才能打开 App Drawer。

而后退按钮则没有去掉。在应用程序需要用到后退功能时,它就会出现在主屏幕的左下方。有时候即使应用程序自己带有后退按钮,Android 的后退按钮也会出现。

当然,如果你不喜欢使用手势操作,也可以禁用这个功能。只需要按照下列步骤操作:

  1. 打开”设置“
  2. 向下滑动并进入“系统 > 手势”
  3. 从 Home 键向上滑动
  4. 将 On/Off 滑块(图 2)滑动至 Off 位置

图 2:关闭手势操作。

电池寿命

人工智能已经在 Android 得到了充分的使用。现在,Android 使用人工智能大大提供了电池的续航时间,这样的新技术称为自适应电池。自适应电池可以根据用户的个人使用习惯来决定各种应用和服务的耗电优先级。通过使用人工智能技术,Android 可以分析用户对每一个应用或服务的使用情况,并适当地关闭未使用的应用程序,以免长期驻留在内存中白白消耗电池电量。

对于这个功能的唯一一个警告是,如果人工智能出现问题并导致电池电量过早耗尽,就只能通过恢复出厂设置来解决这个问题了。尽管有这样的缺陷,在电池续航时间方面,Android 9.0 也比 Android 8.0 有所改善。

分屏功能的变化

分屏对于 Android 来说不是一个新功能,但在 Android 9.0 上,它的使用方式和以往相比略有不同,而且只对于手势操作有影响,不使用手势操作的用户不受影响。要在 Android 9.0 上使用分屏功能,需要按照下列步骤操作:

  1. 从 Home 键向上滑动,打开“最近的应用程序”。
  2. 找到需要放置在屏幕顶部的应用程序。
  3. 长按应用程序顶部的图标以显示新的弹出菜单。(图 3)
  4. 点击分屏,应用程序会在屏幕的上半部分打开。
  5. 找到要打开的第二个应用程序,然后点击它添加到屏幕的下半部分。

图 3:在 Android 9.0 上将应用添加到分屏模式中。

使用分屏功能关闭应用程序的方法和原来保持一致。

应用操作

这个功能在早前已经引入了,但直到 Android 9.0 发布,人们才开始对它产生明显的关注。应用操作功能可以让用户直接从应用启动器来执行应用里的某些操作。

例如,长按 GMail 启动器,就可以执行回复最近的邮件、撰写新邮件等功能。在 Android 8.0 中,这个功能则以弹出动作列表的方式展现。在 Android 9.0 中,这个功能更契合 Google 的 材料设计 Material Design 风格(图 4)。

图 4:Android 应用操作。

声音控制

在 Android 中,声音控制的方式经常发生变化。在 Android 8.0 对“请勿打扰”功能进行调整之后,声音控制已经做得相当不错了。而在 Android 9.0 当中,声音控制再次进行了优化。

Android 9.0 这次优化针对的是设备上快速控制声音的按钮。如果用户按下音量增大或减小按钮,就会看到一个新的弹出菜单,可以让用户控制设备的静音和震动情况。点击这个弹出菜单顶部的图标(图 5),可以在完全静音、静音和正常声音几种状态之间切换。

图 5:Android 9.0 上的声音控制。

屏幕截图

由于我要撰写关于 Android 的文章,所以我会常常需要进行屏幕截图。而 Android 9.0 有一项我最喜欢的更新,就是分享屏幕截图。Android 9.0 可以在截取屏幕截图后,直接共享、编辑,或者删除不喜欢的截图,而不需要像以前一样打开 Google 相册、找到要共享的屏幕截图、打开图像然后共享图像。

如果你想分享屏幕截图,只需要在截图后等待弹出菜单,点击分享(图 6),从标准的 Android 分享菜单中分享即可。

图 6:共享屏幕截图变得更加容易。

更令人满意的 Android 体验

Android 9.0 带来了更令人满意的用户体验。当然,以上说到的内容只是它的冰山一角。如果需要更多信息,可以查阅 Google 的官方 Android 9.0 网站。如果你的设备还没有收到升级推送,请耐心等待,Android 9.0 值得等待。


via: https://www.linux.com/learn/2018/10/overview-android-pie

作者:Jack Wallen 选题:lujun9972 译者:HankChow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Anbox (Anroid in a Box)是一个自由开源工具,它允许你在 Linux 上运行 Android 应用程序。它的工作原理是在 LXC 容器中运行 Android 运行时环境,重新创建 Android 的目录结构作为可挂载的 loop 镜像,同时使用本机 Linux 内核来执行应用。

据其网站所述,它的主要特性是安全性、性能、集成和趋同(不同外形尺寸缩放)。

使用 Anbox,每个 Android 应用或游戏就像系统应用一样都在一个单独的窗口中启动,它们的行为或多或少类似于常规窗口,显示在启动器中,可以平铺等等。

默认情况下,Anbox 没有 Google Play 商店或 ARM 应用支持。要安装应用,你必须下载每个应用的 APK 并使用 adb 手动安装。此外,默认情况下不能使用 Anbox 安装 ARM 应用或游戏 —— 尝试安装 ARM 应用会显示以下错误:

Failed to install PACKAGE.NAME.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]

你可以在 Anbox 中手动设置 Google Play 商店和 ARM 应用支持(通过 libhoudini),但这是一个非常复杂的过程。为了更容易地在 Anbox 上安装 Google Play 商店和 Google Play 服务,并让它支持 ARM 应用程序和游戏(使用 libhoudini),geeks-r-us.de(文章是德语)上的人创建了一个自动执行这些任务的脚本。

在使用之前,我想明确指出,即使在集成 libhoudini 来支持 ARM 后,也并非所有 Android 应用和游戏都能在 Anbox 中运行。某些 Android 应用和游戏可能根本不会出现在 Google Play 商店中,而一些应用和游戏可能可以安装但无法使用。此外,某些应用可能无法使用某些功能。

安装 Google Play 商店并在 Anbox 上启用 ARM 应用/游戏支持

如果你的 Linux 桌面上尚未安装 Anbox,这些说明显然不起作用。如果你还没有,请按照此处的安装说明安装 Anbox。此外,请确保在安装 Anbox 之后,使用此脚本之前至少运行一次 anbox.appmgr,以避免遇到问题。另外,确保在执行下面的脚本时 Anbox 没有运行(我怀疑这是导致评论中提到的这个问题的原因)。

1、 安装所需的依赖项(wget、lzip、unzip 和 squashfs-tools)。

在 Debian、Ubuntu 或 Linux Mint 中,使用此命令安装所需的依赖项:

sudo apt install wget lzip unzip squashfs-tools

2、 下载并运行脚本,在 Anbox 上自动下载并安装 Google Play 商店(和 Google Play 服务)和 libhoudini(用于 ARM 应用/游戏支持)。

警告:永远不要在不知道它做什么的情况下运行不是你写的脚本。在运行此脚本之前,请查看其代码

要下载脚本,使其可执行并在 Linux 桌面上运行,请在终端中使用以下命令:

wget https://raw.githubusercontent.com/geeks-r-us/anbox-playstore-installer/master/install-playstore.sh
chmod +x install-playstore.sh
sudo ./install-playstore.sh

3、要让 Google Play 商店在 Anbox 中运行,你需要启用 Google Play 商店和 Google Play 服务的所有权限

为此,请运行Anbox:

anbox.appmgr

然后进入“设置 > 应用 > Google Play 服务 > 权限”并启用所有可用权限。对 Google Play 商店也一样!

你现在应该可以使用 Google 帐户登录 Google Play 商店了。

如果未启用 Google Play 商店和 Google Play 服务的所有权限,你可能会在尝试登录 Google 帐户时可能会遇到问题,并显示以下错误消息:“Couldn’t sign in. There was a problem communicating with Google servers. Try again later“,如你在下面的截图中看到的那样:

登录后,你可以停用部分 Google Play 商店/Google Play 服务权限。

如果你在 Anbox 上登录 Google 帐户时遇到一些连接问题,请确保 anbox-bride.sh 正在运行:

启动它:

sudo /snap/anbox/current/bin/anbox-bridge.sh start

重启它:

sudo /snap/anbox/current/bin/anbox-bridge.sh restart

根据此用户的说法,如果 Anbox 仍然存在连接问题,你可能还需要安装 dnsmasq 包。但是在我的 Ubuntu 18.04 桌面上不需要这样做。


via: https://www.linuxuprising.com/2018/07/anbox-how-to-install-google-play-store.html

作者:Logix 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Email 现在还没有绝迹,而且现在大部分邮件都来自于移动设备。

现在一些年轻人正将邮件称之为“老年人的交流方式”,然而事实却是邮件绝对还没有消亡。虽然协作工具、社交媒体,和短信很常用,但是它们还没做好取代邮件这种必要的商业(和社交)通信工具的准备。

考虑到邮件还没有消失,并且(很多研究表明)人们都是在移动设备上阅读邮件,拥有一个好的移动邮件客户端就变得很关键。如果你是一个想使用开源的邮件客户端的 Android 用户,事情就变得有点棘手了。

我们提供了四个开源的 Andorid 邮件客户端供选择。其中两个可以通过 Andorid 官方应用商店 Google Play 下载。你也可以在 Fossdroid 或者 F-Droid 这些开源 Android 应用库中找到他们。(下方有每个应用的具体下载方式。)

K-9 Mail

K-9 Mail 拥有几乎和 Android 一样长的历史——它起源于 Android 1.0 邮件客户端的一个补丁。它支持 IMAP 和 WebDAV、多用户、附件、emoji 和其它经典的邮件客户端功能。它的用户文档提供了关于安装、启动、安全、阅读和发送邮件等等的帮助。

K-9 基于 Apache 2.0 协议开源,源码可以从 GitHub 上获得. 应用可以从 Google PlayAmazonF-Droid 上下载。

p≡p

正如它的全称,”Pretty Easy Privacy”说的那样,p≡p 主要关注于隐私和安全通信。它提供自动的、端到端的邮件和附件加密(但要求你的收件人也要能够加密邮件——否则,p≡p 会警告你的邮件将不加密发出)。

你可以从 GitLab 获得源码(基于 GPLv3 协议),并且可以从应用的官网上找到相应的文档。应用可以在 Fossdroid 上免费下载或者在 Google Play 上支付一点儿象征性的费用下载。

InboxPager

InboxPager 允许你通过 SSL/TLS 协议收发邮件信息,这也表明如果你的邮件提供商(比如 Gmail )没有默认开启这个功能的话,你可能要做一些设置。(幸运的是, InboxPager 提供了 Gmail 的设置教程。)它同时也支持通过 OpenKeychain 应用进行 OpenPGP 加密。

InboxPager 基于 GPLv3 协议,其源码可从 GitHub 获得,并且应用可以从 F-Droid 下载。

FairEmail

FairEmail 是一个极简的邮件客户端,它的功能集中于读写信息,没有任何多余的可能拖慢客户端的功能。它支持多个帐号和用户、消息线索、加密等等。

它基于 GPLv3 协议开源,源码可以从 GitHub 上获得。你可以在 Fossdroid 上下载 FairEamil;对 Google Play 版本感兴趣的人可以从 testing the software 获得应用。

肯定还有更多的开源 Android 客户端(或者上述软件的加强版本)——活跃的开发者们可以关注一下。如果你知道还有哪些优秀的应用,可以在评论里和我们分享。


via: https://opensource.com/article/18/10/open-source-android-email-clients

作者:Opensource.com 选题:lujun9972 译者:zianglei 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出