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
)。单击模拟器工具栏中的三点菜单,然后选择“快照”。按下“拍摄快照”按钮。如果需要,请为您的快照命名,以防您需要多个“测试快照”。
使用“播放”按钮,您可以随时将模拟器重置到该状态并重复迁移过程。