Fennec 迁移

项目看板:https://github.com/orgs/mozilla-mobile/projects/40

📱 测试

⚠️ 警告:用 Fenix (Firefox 预览版) 替换 Fennec (Firefox for Android) 安装可能会(在撰写本文时肯定)导致数据丢失。请勿替换包含您不想丢失数据的 Fennec (Firefox for Android) 安装(例如,打开的标签页、历史记录、书签、热门网站等)。

发布

以下链接指向最新的 Fenix (Firefox 预览版) 构建(Nightly;来自 main),这些构建已设置为替换 Fennec (Firefox for Android) 发布版本 (org.mozilla.firefox)。

Beta

以下链接指向最新的 Fenix (Firefox 预览版) 构建(Nightly;来自 main),这些构建已设置为替换 Fennec Beta (Firefox for Android - Beta) 发布版本 (org.mozilla.firefox.beta)。

Nightly

以下链接指向最新的 Fenix (Firefox 预览版) 构建(Nightly;来自 main),这些构建已设置为替换 Fennec Nightly (Firefox for Android - Nightly) 发布版本 (org.mozilla.fennec_aurora)。

📝 更新日志

数据迁移工作在以下项目看板中跟踪:https://github.com/orgs/mozilla-mobile/projects/40

  • 2019-09-05 - 第一个 迁移构建 现已可用。可以使用它们替换 Firefox for Android (发布) 安装。这些构建中还没有实际的迁移代码。替换的构建是“干净的”Fenix 安装。

  • 2019-10-22 - 迁移代码的第一版已落地,用于迁移历史记录、书签和打开的标签页。

  • 2019-11-02 - 迁移到 Fenix 后,Firefox 账户用户保持登录状态。

💻 开发

在处理迁移代码时,拥有一个本地 Fennec 构建和一个可以替换 Fennec 构建的本地 Fenix 构建非常有用。需要进行以下手动设置才能实现此目的。

在以下示例命令中,我们假设您正在用 Fenix Nightly 构建替换 Fennec Nightly 构建。

Fennec

下载最新版本的 Fennec

删除原始签名

zip --delete fennec.apk "META-INF/*"

使用您自己的调试密钥(稍后也将用于 Fenix)重新签名 APK

jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -keypass android fennec.apk androiddebugkey

您现在可以安装此 APK,它已准备好用于迁移

adb install fennec.apk

Fenix

app/build.gradle 中,在正确的范围内添加以下行,以使用与 Fennec APK 上使用的相同的调试密钥对您的应用进行签名

android {
  buildTypes {
    fennecNightly {
      signingConfig signingConfigs.debug
    }
  }
}

按照 README 中的构建说明来设置 Fenix 构建。

现在在 Android Studio 中选择 geckoNightlyFennecNightly 构建变体并进行部署。此构建现在应该已替换您的 Fennec 构建。

示例浏览器

在处理位于 Android Components 存储库 中的迁移代码时,用示例浏览器(而不是 Fenix)替换本地 Fennec 构建可能会有所帮助。为此需要进行以下设置。

将 sharedUserId 添加到示例浏览器的 AndroidManifest.xml 中

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:sharedUserId="org.mozilla.fennec_$USERNAME.sharedID"
    [..]

修改 samples-browser 模块的 build.gradle 中的应用程序 ID,并使用高于 Fennec 构建的 versionCode(2100000000 是允许的最高 versionCode,因此始终可以使用)。

    defaultConfig {
        applicationId "org.mozilla.fennec_$USERNAME"
        [..]
        versionCode 2100000000

单击“使用 Gradle 文件同步项目”并部署示例浏览器。此构建现在应该已替换您的 Fennec 构建。

模拟器快照

在测试迁移代码时,必须多次重复以下过程

  • (1) 卸载已存在的 Fennec/Fenix 安装

  • (2) 安装 Fennec

  • (3) 使用 Fennec 创建测试迁移所需的数据

  • (4) 安装 Fenix

  • (5) 调试/测试

步骤 (1) 到 (3) 可能非常耗时。模拟器快照可以帮助解决此问题

  • 启动模拟器并执行步骤 1 到 3。您可能需要修改 Fennec 构建以创建模拟器的 X86 构建(目标 i686-linux-android)。

  • 单击模拟器工具栏中的三点菜单,然后选择“快照”。按下“拍摄快照”按钮。如果需要,请为您的快照命名,以防您需要多个“测试快照”。

  • 使用“播放”按钮,您可以随时将模拟器重置到该状态并重复迁移过程。