ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Iceraven:开源Android多标签浏览器的筹划与实现
[打印本页]
作者:
来自云龙湖轮廓分明的月亮
时间:
2024-11-3 10:24
标题:
Iceraven:开源Android多标签浏览器的筹划与实现
本文还有配套的精品资源,点击获取
简介:OpenBrowser.zip 是一个开源浏览器项目,名为Iceraven,基于Android平台。它可能是从如Firefox或Chromium这样的流行开源浏览器项目中派生出来的。Iceraven浏览器为用户提供多标签功能,答应同时打开多个网页标签。这样的开源浏览器因其可扩展性和个性化选项而受到青睐,尤其在安卓平台上。用户可以安装插件来定制浏览体验,同时社区支持也为项目标持续改进提供了动力。
1. 开源浏览器的定义和特性
开源浏览器是基于开放源代码原则筹划和实现的网络浏览器,它答应用户访问全球的信息资源,同时开辟者和用户可以检察、修改和共享其源代码。这种透明性是开源浏览器区别于贸易闭源浏览器的关键地点,它提倡自由、共享、协作的文化理念。
开源浏览器的特性主要表现在以下几个方面:
自由定制
: 用户可以根据自己的需求,定制个性化的浏览环境,通过添加插件或更改设置来优化浏览器体验。
透明可信
: 由于代码开源,任何个人或构造都可以审查和验证浏览器的安全性,提高用户信任度。
社区驱动
: 开源项目通常由一个社区来维护和开辟,这个社区包含开辟者、测试者和平凡用户,他们共同协作以推动项目标进步。
开源浏览器不仅在技术上提供了与贸易浏览器相似甚至更优的性能,而且在扩展性和用户参与度上提供了独特的代价。
2. Android平台的开源浏览器需求
2.1 Android平台的网络浏览需求
2.1.1 用户对网络浏览的需求分析
随着移动设备的遍及,Android平台成为用户访问网络资源的重要途径。在分析Android用户的需求时,需要考虑以下几个方面:
速度和性能
:用户期望在利用Android设备进行网络浏览时,页面能够快速加载,浏览体验流畅无延迟。
兼容性和访问性
:由于Android设备种类繁多,用户期望无论利用何种设备,浏览器都能提供一致的兼容性体验,网页能够适应各种屏幕尺寸和分辨率。
个性化和定制性
:用户期望能够根据个人喜欢和利用风俗定制浏览器,例如更换主题、添加快捷功能等。
安全和隐私
:用户对网络安全和个人隐私掩护的要求越来越高,期望浏览器能够有效阻止恶意软件和网络攻击,掩护个人数据不被泄露。
2.1.2 设备和网络环境对浏览器性能的影响
Android用户的设备类型和网络环境多种多样,这直接影响了浏览器的性能和体验:
多样的硬件配置
:从低至中等配置的入门级手机到高端旗舰机型,不同硬件配置的设备对浏览器的处理能力和资源斲丧有不同的要求。
不同的操作系统版本
:Android系统版本众多,不同版本间的系统特性和API差异对浏览器的兼容性提出了挑战。
网络连接类型
:从移动网络到WiFi,再到VPN和局域网,不同的网络连接速度和稳定性对浏览器的页面加载速度和可靠性有着不同的影响。
区域性的网络限制
:不同国家和地区可能存在的网络限制和审查制度,要求浏览器能够适应各种网络环境。
2.2 Android平台的开源浏览器优势
2.2.1 开源浏览器在Android平台的适应性
开源浏览器在Android平台的适应性主要表现在其开放性和社区支持:
开放的源代码
:开源浏览器提供开放源代码,答应开辟者自由访问和修改,以适应不断变化的Android环境和用户需求。
社区驱动的更新
:开源浏览器通常具有生动的开辟社区,能够快速响应市场变化和用户反馈,实时发布更新和修复。
精良的兼容性
:得益于社区中的多设备测试,开源浏览器往往在不同Android设备和操作系统版本中表现出更好的兼容性和稳定性。
2.2.2 开源浏览器在Android平台的用户优势
透明度
:用户可以检察和审查浏览器的源代码,从而对其安全性有更多的相识和信任。
定制化
:用户可以根据自己的需求,定制化安装和配置浏览器插件、扩展,享受更个性化的浏览体验。
成本效益
:作为开源产品,这类浏览器往往不会对用户收费,对于预算有限的用户来说是一个很好的选择。
在本章节的分析中,我们相识了Android用户对网络浏览的根本需求和期望,同时也探讨了开源浏览器在Android平台上的适应性及其优势。这些内容为后续章节中对详细开源浏览器如Iceraven浏览器的分析提供了根本和背景。在下一章节中,我们将更深入地探讨Iceraven浏览器的特点和功能,以进一步相识其在满足Android用户需求方面所扮演的脚色。
3. Iceraven浏览器的特点和功能
3.1 Iceraven浏览器的特点
3.1.1 Iceraven浏览器的筹划理念
Iceraven浏览器的筹划理念源自于对现有开源浏览器项目中的自由和定制化的需求。开辟团队希望通过引入额外的功能和改进来提拔用户的浏览体验,同时保持开源精神。这种理念的核心是满足技术爱好者和专业用户群体的特殊需求,答应他们能够对浏览器进行深度定制和扩展,以适应各自不同的浏览风俗和工作流程。
3.1.2 Iceraven浏览器的主要特性
Iceraven浏览器的主要特性是对现有开源浏览器的增强和优化。它包括了一些独特的功能,比如内置的用户界面自定义选项、对隐私掩护的增强以及对最新网络技术的支持。别的,浏览器还专注于提高性能和稳定性,淘汰资源占用,从而提供更加流畅的多标签浏览体验。
3.2 Iceraven浏览器的功能
3.2.1 Iceraven浏览器的核心功能
Iceraven浏览器的核心功能包括但不限于:
高度可定制的用户界面,答应用户根据个人喜欢调整视觉元素。
强大的隐私掩护特性,包括跟踪防护和广告拦截。
支持最新的Web技术,例如WebAssembly和Service Workers。
提供了丰富的插件和扩展API,便于开辟者创建和分享自定义功能。
3.2.2 Iceraven浏览器的特色功能
在特色功能方面,Iceraven浏览器提供了一些特有的功能,如:
"夜间模式",淘汰夜间利用浏览器时对眼睛的压力。
"阅读模式",提高长文章阅读的舒适度。
"多窗口模式",用户可以同时检察多个网页而不必依赖于多标签。
接下来,我们将深入探讨这些功能的筹划理念、实现方法以及它们怎样增强用户的浏览体验。
代码块展示:实现一个简单的Iceraven特性
为了更好地明白怎样在现实中实现Iceraven浏览器的一些特性,我们可以用代码示例来详细说明。以下是一个简单的代码块,展示了怎样在浏览器中实现一个自定义的夜间模式切换功能:
// JavaScript 示例代码:实现夜间模式切换功能
document.addEventListener('DOMContentLoaded', () => {
const toggleSwitch = document.querySelector('#toggle-switch');
const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)');
const applyTheme = () => {
if (prefersDarkScheme.matches) {
document.documentElement.classList.add('dark-theme');
} else {
document.documentElement.classList.remove('dark-theme');
}
};
toggleSwitch.addEventListener('change', () => {
if (toggleSwitch.checked) {
document.documentElement.classList.add('user-dark-theme');
} else {
document.documentElement.classList.remove('user-dark-theme');
}
});
// 初始化主题
applyTheme();
});
复制代码
参数说明
DOMContentLoaded :当文档加载并剖析完成后触发。
#toggle-switch :夜间模式切换按钮的DOM元素。
(prefers-color-scheme: dark) :CSS媒体查询,用于检测用户是否偏好暗色主题。
.dark-theme :一个CSS类,表现应用了暗色主题。
.user-dark-theme :一个CSS类,表现用户手动启用了暗色主题。
toggleSwitch.checked :获取切换按钮是否被激活的状态。
代码逻辑说明
该JavaScript脚本起首等待整个页面加载完成,然后获取夜间模式切换按钮。接着定义一个 applyTheme 函数,该函数会根据用户是否偏好暗色主题或者用户是否手动开启了暗色主题,来切换页面的暗色主题。通过监听切换按钮的变化,我们可以根据用户的选择来应用或者移除用户设定的暗色主题。
通过这个简单的示例,我们可以看到在浏览器中实现自定义功能所需的逻辑处理和技术细节。这些功能的实现不仅增强了用户体验,也展示了Iceraven浏览器在功能自定义方面的灵活性和扩展性。
4. 多标签浏览体验的实现
4.1 多标签浏览的概念和优势
4.1.1 多标签浏览的概念剖析
多标签浏览是指用户在同一个浏览器窗口中,可以同时打开多个网页标签页,每个标签页对应一个独立的网页内容。这种浏览方式能够让用户在不同网站间快速切换,不必为每一个网站打开一个新的浏览器窗口,从而提高浏览效率和淘汰资源斲丧。
在技术实现上,多标签浏览通常涉及到以下几个关键点:
标签页管理
:追踪和管理不同标签页的状态,包括标签页的创建、切换、关闭和保存等操作。
内存与资源分配
:确保每个标签页占用的内存和别的资源得到合理分配,避免资源浪费和内存溢出。
用户界面
:提供直观的标签页切换界面,通常包括标签页栏和预览小窗口等。
4.1.2 多标签浏览的优势分析
多标签浏览相比传统的单窗口多页面浏览方式,具有以下优势:
提拔效率
:用户无需频仍切换窗口,可以在一个视图中并行处理多个使命。
资源优化
:相比打开多个窗口,标签页的方式可以淘汰浏览器实例,从而节流系统资源。
界面简便
:页面内容与标签页一目了然,避免了桌面资源管理杂乱。
导航方便
:通过标签页,用户可以快速访问最近检察的网页。
4.2 多标签浏览的实现方法
4.2.1 多标签浏览的技术实现
实现多标签浏览的技术层面,涉及到前端的界面筹划以及后端的标签页管理。以下是一个简单的HTML和JavaScript代码示例,展示了怎样创建一个根本的多标签浏览功能:
<!DOCTYPE html>
<html>
<head>
<title>多标签浏览示例</title>
</head>
<body>
<div id="tab-bar">
<button onclick="createNewTab()">新建标签页</button>
<button onclick="closeCurrentTab()">关闭标签页</button>
</div>
<div id="tab-content">
<!-- 标签内容将被加载到这里 -->
</div>
<script>
var tabCounter = 0;
var tabs = {}; // 用于存储标签页对象
function createNewTab() {
tabCounter++;
tabs[tabCounter] = {
title: '标签' + tabCounter,
content: '<p>这是标签' + tabCounter + '的内容</p>'
};
displayTabs();
}
function closeCurrentTab() {
var currentTabId = getCurrentTabId();
if(currentTabId) {
delete tabs[currentTabId];
displayTabs();
}
}
function getCurrentTabId() {
// 返回当前打开的标签页ID
// 此处逻辑应根据实际情况设计
}
function displayTabs() {
var tabBar = document.getElementById('tab-bar');
var tabContent = document.getElementById('tab-content');
// 清空标签栏和内容区域
tabBar.innerHTML = '<button onclick="createNewTab()">新建标签页</button><button onclick="closeCurrentTab()">关闭标签页</button>';
tabContent.innerHTML = '';
// 重新添加标签页和内容
for(var id in tabs) {
var tab = tabs[id];
var tabButton = document.createElement('button');
tabButton.innerHTML = tab.title;
tabButton.onclick = (function(id) {
return function() {
tabContent.innerHTML = tab.content;
}
})(id);
tabBar.appendChild(tabButton);
}
}
</script>
</body>
</html>
复制代码
上述代码是一个非常根本的多标签浏览器实现示例,此中利用了简单的JavaScript对象来管理标签页,并且通过DOM操作来动态天生标签页界面。
4.2.2 多标签浏览的用户体验优化
优化多标签浏览的用户体验,我们可以考虑以下几个方面:
标签页切换动画
:为标签页的切换添加平滑的动画效果,利用户在切换标签时感受到流畅的体验。
标签预览
:在标签页标题旁边增加内容预览,让用户不必打开标签就能大致相识该标签页的内容。
标签页管理工具
:提供标签页的复制、拖拽和重排等管理功能,利用户可以更方便地构造和管理标签页。
内存优化
:合理管理标签页内存,自动开释长时间未访问的标签页资源,包管浏览器的稳定运行。
通过上述技术和用户体验优化方法的结合,可以在现实的开源浏览器项目中,为用户提供一个高效、便捷、丰富的多标签浏览体验。
5. 插件和扩展在自定义浏览器中的应用
5.1 插件和扩展的概念和分类
5.1.1 插件和扩展的概念剖析
在自定义浏览器中,插件(Plugins)和扩展(Extensions)是增强浏览器功能和定制用户体验的关键组件。插件通常提供更底层的服务,如多媒体处理、视频播放和游戏互动等。扩展则更多是基于浏览器的功能增强,如广告拦截、主题更换、快捷操作等功能。
5.1.2 插件和扩展的分类
插件和扩展的分类方法不一,但通常它们可以被分别为以下几类: 1. 内容拦截器,如广告拦截器。 2. 用户界面增强,如新标签页定制、书签工具等。 3. 功能性扩展,如暗码管理器、下载加快器。 4. 安全和隐私,如防跟踪、HTTPS强制。 5. 开辟者工具,提供调试、性能分析等功能。
5.2 插件和扩展在自定义浏览器中的应用
5.2.1 插件和扩展的应用实例
例如,利用名为uBlock Origin的扩展来拦截网页广告,提高浏览速度和体验。该扩展可直接在浏览器的扩展商店中搜索并安装。
flowchart LR
A[安装扩展] --> B{是否兼容当前浏览器}
B -- 是 --> C[下载并安装扩展]
B -- 否 --> D[寻找替代扩展或更新浏览器]
C --> E[启用并设置扩展]
复制代码
5.2.2 插件和扩展的应用效果分析
以uBlock Origin为例,安装后,它会在浏览器的右上角出现一个图标,用户可以通过点击图标来启用或禁用广告拦截功能。这不仅提拔了用户浏览的效率,也增强了浏览的隐私安全性。
- **性能提升**:减少加载的资源数量,加快页面渲染。
- **隐私保护**:阻止跟踪脚本,减少个人信息泄露风险。
- **用户体验**:提供更干净的页面环境,减少干扰。
复制代码
5.2.3 现实操作步调
安装和配置插件和扩展大致包括以下步调: 1. 访问浏览器扩展商店。 2. 搜索需要的插件或扩展。 3. 点击安装并依照浏览器的提示完成安装。 4. 在浏览器的扩展管理界面进行相干设置。
5.2.4 扩展和插件管理
浏览器通常提供扩展和插件管理界面,答应用户随时启用、禁用或删除已安装的扩展。
- **启用/禁用**:快速切换扩展功能的开关状态。
- **删除**:移除不再需要的扩展。
- **选项**:进入扩展的详细设置界面。
复制代码
5.2.5 应用场景分析
插件和扩展的利用场景广泛,从简单的主题更改到复杂的开辟工具,都能在不同水平上满足用户的个性化需求。
- **办公人员**:使用文档编辑和在线会议工具插件,提高工作效率。
- **开发者**:利用开发者工具扩展进行网站调试和性能分析。
- **普通用户**:安装广告拦截器、视频下载工具等,优化浏览体验。
复制代码
5.2.6 潜伏问题与办理议略
尽管插件和扩展能够极大增强浏览器功能,但也存在潜伏的安全风险。因此,用户应该只从官方扩展商店安装,并定期更新,同时对扩展的权限进行严酷控制。
- **安全审查**:定期检查和审计已安装扩展的安全性。
- **权限管理**:只为必要的扩展提供高级权限。
- **更新维护**:保持扩展为最新版本,以获得最新的安全补丁。
复制代码
通过插件和扩展的应用,用户能够将自定义浏览器打造成为强大的工作和娱乐工具,同时必须留意管理其潜伏的风险。
6. 社区对开源项目标支持和贡献
开源项目标成功不仅取决于其代码质量,更依赖于背后强大的社区支持。一个生动的社区可以提供代码贡献、文档编写、问题反馈、利用推广等多种情势的支持。本章将详细介绍社区对开源项目标明白和支持,以及社区贡献的方式、意义和详细实例。
6.1 社区对开源项目标明白和支持
6.1.1 社区的概念和作用
社区***构成的集合。对于开源项目而言,社区成员可能包括开辟者、最终用户、测试者、文档编写者和推广者等。社区的主要作用在于维护项目生动度、提拔项目质量和推动项目发展。
6.1.2 社区对开源项目标明白和支持
社区对开源项目标明白是多层面的。从贡献者角度看,他们明白到通过共同参与项目可以提拔个人能力、扩大影响力,并偶然机与天下各地的偕行交流。从用户角度看,开源项目提供了透明性和可定制性,增加了软件的信任度。社区成员通过参与讨论、提出发起、贡献代码和文档等方式对项目进行支持。
6.2 社区对开源项目标贡献
6.2.1 社区贡献的方式和意义
社区成员可以通过多种方式对开源项目做出贡献,包括但不限于:
代码贡献
:修复bug、添加新功能、提拔性能。
文档编写
:编写安装文档、用户手册、API文档等。
测试反馈
:提供测试报告、利用反馈和改进发起。
推广宣传
:通过文章、视频、交际媒体等方式推广项目。
资金捐赠
:为项目运行提供必要的经济支持。
这些贡献对开源项目而言至关重要,因为它们直接关系到项目标生存和发展。社区的支持可以资助项目更快速地发现和办理问题,增强项目标吸引力和生命力。
6.2.2 社区贡献的实例和效果分析
实例分析
以Iceraven浏览器为例,社区通过不同方式对其做出了重要贡献。例如,一位社区开辟者修复了一个影响用户体验的性能问题;一位志愿者翻译了用户手册,使其能够覆盖更广泛的用户群体;一位用户在论坛上提供了详细的反馈,资助定位了一个难以复现的bug。这些贡献虽然来自于不同的成员,但都对Iceraven浏览器的发展产生了积极的影响。
效果分析
社区贡献的效果可以从多个方面进行评估:
代码质量
:通过社区贡献的代码,项目能够更频仍地更新,功能得以增强,bug得以修复。
用户满足度
:社区的积极参与可以提拔用户对产品的信任感和满足度。
项目着名度
:社区成员通过推广活动,可以提拔项目标着名度和影响力。
通过这些效果,开源项目能够实现自我增值,形成一个可持续发展的良性循环。
社区支持和贡献的详细操作
为了更好地支持和贡献开源项目,社区成员可以接纳以下详细步调:
加入社区
:通过开源项目官网或社区平台加入,成为项目标一员。
参与讨论
:在社区论坛或邮件列表中参与讨论,提出问题或发起。
编写文档
:为项目编写或翻译文档,资助其他用户更好地明白和利用产品。
测试与反馈
:下载最新版本进行测试,并向开辟者提供反馈。
贡献代码
:修复已知问题或开辟新功能,并通过pull request提交给项目维护者。
社区支持和贡献的案例展示
下面展示一些社区成员对开源项目贡献的案例:
| 项目名称 | 贡献者 | 贡献内容 | 影响 |
|----------|--------|----------|------|
| Iceraven | 用户A | 修复性能问题 | 提升软件运行效率 |
| | 用户B | 翻译用户手册 | 扩大项目覆盖范围 |
| | 用户C | 提供bug反馈 | 帮助开发者定位问题 |
复制代码
社区支持和贡献的重要性
社区对开源项目标贡献是项目成功不可或缺的部分。通过社区成员的共同努力,开源项目不仅能够在技术上不断进步,而且在用户接受度和市场份额上也会得到提拔。社区贡献的多样性和广泛性,为开源项目注入了源源不断的活力。
在本章节中,我们详细探讨了社区对开源项目标支持和贡献,包括社区的概念、作用、贡献方式和意义。通过实例和效果分析,以及详细的操作步调和案例展示,我们相识到了社区成员怎样通过不同方式为开源项目标发展做出贡献,并熟悉到了这种支持和贡献的重要性。通过持续的社区互助,开源项目标未来将更加光明。
7. Iceraven浏览器中的安全性和隐私掩护策略
在当今网络环境中,浏览器的安全性和隐私掩护是用户最为关注的两个方面。本章节将深入探讨Iceraven浏览器中所接纳的安全机制以及隐私掩护策略,以及怎样通过自定义设置来增强用户的网络浏览安全。
7.1 安全机制的实验和维护
Iceraven浏览器作为基于Firefox的浏览器,继续了其强大的安全机制。为了确保用户的网络安全,Iceraven在多个层面实验了安全步伐。
7.1.1 内容安全策略 (CSP)
内容安全策略是一种重要的安全机制,能够资助防备跨站脚本攻击(XSS)和数据注入攻击。Iceraven通过以下方法实现CSP:
策略声明
:通过HTTP响应头声明答应加载的资源类型和泉源。
脚本执行限制
:限制从何种源加载脚本,防止执行未经授权的代码。
安全限制
:对表单提交、插件利用等进行限制。
7.1.2 跟踪掩护和广告拦截
为了提拔用户的浏览体验,Iceraven在浏览器中集成了跟踪掩护功能。这些功能能够阻止第三方跟踪器对用户进行监视,淘汰广告的扰乱。
跟踪掩护列表
:用户可以自定义或利用预设的跟踪掩护列表,来阻止特定跟踪器。
广告拦截插件支持
:支持多种流行的广告拦截插件,用户可以根据自己的需求安装和配置。
7.2 隐私掩护策略的实验
隐私掩护已经成为浏览器不可或缺的一部分,Iceraven在掩护用户隐私方面也做出了显着的努力。
7.2.1 隐私模式的增强
隐私模式,也称为无痕浏览模式,能够阻止浏览器记载用户的浏览历史和cookies。Iceraven进一步增强了这一模式:
更长时间的掩护
:即使在浏览器关闭后,隐私模式下的会话数据仍被掩护。
默认启用跨域跟踪限制
:对第三方跟踪器接纳更严酷的限制,以防止追踪跨域请求。
7.2.2 自定义隐私设置
用户可以根据自己的隐私需求,对Iceraven的隐私设置进行自定义调整。
隐私和安全设置面板
:一个会合的地方答应用户选择是否启用或禁用某些跟踪掩护功能。
第三方cookie管理
:用户可以控制是否答应来自第三方网站的cookies。
7.3 自定义策略的实现
除了Iceraven默认提供的安全和隐私策略,用户还可以通过安装额外的插件或进行高级设置来自定义自己的安全和隐私配置。
7.3.1 插件的选择与配置
加密通讯插件
:利用SSL/TLS加密通讯,包管数据传输的安全性。
行为分析拦截插件
:一些插件能够检测并拦截可疑的行为或连接。
7.3.2 高级隐私设置操作示例
下面将展示怎样在Iceraven中设置一些高级隐私掩护步伐:
1. 打开Iceraven浏览器。
2. 进入“设置”菜单,找到“隐私和安全”部分。
3. 选择“隐私模式”并确保它被激活。
4. 进入“跟踪保护”设置,选择一个预设的跟踪保护列表,或创建自定义列表。
5. 在“Cookies和网站数据”中配置第三方cookies的处理方式。
复制代码
通过上述步调,用户可以更进一步地掩护自己的隐私和安全。这些自定义设置结合Iceraven内置的掩护步伐,可以为用户提供更高级别的网络浏览体验。
7.4 安全和隐私的未来预测
随着技术的发展和网络环境的日益复杂,浏览器的安全性和隐私掩护将不断面临新的挑战。Iceraven作为开源浏览器的一部分,能够快速响应并整合社区贡献的最新安全特性,从而持续提拔用户的安全性和隐私掩护水平。
通过上述章节的讨论,我们已经相识了Iceraven在安全性和隐私掩护方面的出色表现,以及用户怎样通过配置和插件来自定义这些安全特性。在下一章节中,我们将进一步探讨社区对于开源浏览器项目标支持和贡献。
本文还有配套的精品资源,点击获取
简介:OpenBrowser.zip 是一个开源浏览器项目,名为Iceraven,基于Android平台。它可能是从如Firefox或Chromium这样的流行开源浏览器项目中派生出来的。Iceraven浏览器为用户提供多标签功能,答应同时打开多个网页标签。这样的开源浏览器因其可扩展性和个性化选项而受到青睐,尤其在安卓平台上。用户可以安装插件来定制浏览体验,同时社区支持也为项目标持续改进提供了动力。
本文还有配套的精品资源,点击获取
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4