首页
学习
活动
专区
圈层
工具
发布

Facebook重写iOS版的Messenger,启动速度快2倍,核心代码减少84%

与之前的 iOS 版本相比,新版 Messenger 的启动速度提升到了两倍,体积缩减到了四分之一。...从今天开始,我们很高兴在接下来的几周内在全球范围内向 iOS 推送新版 Messenger。与之前的 iOS 版本相比,新版 Messenger 的启动速度提升到了两倍 *,体积仅为前者的四分之一。...无论设备类型或网络条件如何,小型应用的下载、安装、更新和启动速度都会更快。小型应用也更易于管理、更新、测试和优化。...因此我们退后一步,研究了如何应用过去十年中所学到的知识,以及我们对当今应用中用户需求的理解来行事。在研究了各个选项之后,我们决定越过表层的界面,深入研究应用本身的基础架构。...它的启动速度会更快,但仍将提供人们期望的,与旧版本相同的出色消息体验。但这仅仅是一个开始。 我们在重建 Messenger 方面所做的工作,将使我们在迈向未来的过程中能够继续创新和扩展消息体验。

90410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    FireEye:Hacking Team军火库中大量运用iOS假面攻击

    其中包括WhatsApp, Twitter, Facebook, Facebook Messenger, WeChat, Google Chrome, Viber, Blackberry Messenger...上图显示了经过重新打包的Facebook应用在运行时的行为,启动应用程序之后连续3次弹出请求访问照片,麦克风,以及联系人的警告。 ?...注入的dylib在真正的可执行文件中连接38个类中的52个敏感函数,所有连接的类方法都符合真实应用程序的关键功能。...这些信息包括: Skype, Wechat等中的语音通话记录 Skype, Whats App, Facebook messenger等中的短消息拦截 Chrome网站历史记录 电话 SMS/短信内容...我们鼓励iOS用户保持最快速度更新固件版本,以及验证应用程序的来源。 * 参考来源fireeye,译者/鸢尾 转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

    94050

    Android源码分析--应用程序启动

    应用程序的启动,又可称为根Activity的启动。但是在讲应用程序启动之前,我们有必要对应用程序进程(AppProcess)启动有所了解,那是因为启动一个应用程序首先要保证该应用程序的进程已经被启动。...AMS在启动应用程序时,会先检查应用程序进程是否存在,如果不存在就需要请求Zygote进程创建并启动应用程序进程。这里我不会贴上大段大段的代码,只是一些总结,并提供了相关源码的链接。...应用程序进程(AppProcess)启动 启动大纲 AMS发送启动应用程序进程请求. Zygote接收请求并创建应用程序进程....---- 应用程序(App)启动 讲完了应用程序进程(AppProcess)启动的相关内容后,接下来我们就来看看应用程序是如何一步一步启动的。 启动大纲 1.Launcher请求AMS。...---- 应用程序启动的进程关系图 应用程序启动的过程中,主要涉及了Launcher进程、SystemServer进程、Zygote进程和应用程序进程这四个进程,它们之间的关系如下。

    77020

    应用程序进程启动过程

    1.AMS在启动应用程序时会检查者应用程序需要的应用进程是否存在,不存在就会请求Zygote进程启动需要的应用程序进程 2.Zygote的Java框架层中会创建一个Server端的Socket,这个Socket...用来等待AMS请求Zygote来创建新的应用程序进程 3.Zygote进程通过fock自身创建应用程序进程,这样应用程序进程就会获得Zygote进程在启动时创建的虚拟机实例。...当然还创建了Binder线程池和消息循环,这样运行在应用进程中的应用程序就可以方便地使用Binder进行进程间通信以及处理消息了 应用程序进程启动过程 第一步:AMS发送启动应用程序进程请求 ?...第二步:Zygote接收请求并创建应用程序进程 ?...其中: 4.ZygoteInit类的zygoteInit方法会启动Binder线程池 5.将当前线程注册到Binder驱动程序中,这样我们创建的线程就加入了Binder线程池中,新创建的应用程序进程就支持

    80120

    Android应用程序进程启动过程(后篇)

    前言 在前篇中我们讲到了Android应用程序进程启动过程,这一篇我们来讲遗留的知识点:在应用程序进程创建过程中会启动Binder线程池以及在应用程序进程启动后会创建消息循环。...注释1调用PoolThread的run函数来启动一个启动一个新的线程。...根据上一篇文章我们得知,mMethod指的就是ActivityThread的main函数,mArgs 指的是应用程序进程的启动参数。...注释1处在当前应用程序进程中创建消息循环,注释2处创建ActivityThread,注释3处调用Looper的loop,使得Looper开始工作,开始处理消息。...可以看出,系统在应用程序进程启动完成后,就会创建一个消息循环,用来方便的使用Android的消息处理机制。

    82870

    「Spring和Kafka」如何在您的Spring启动应用程序中使用Kafka

    根据我的经验,我在这里提供了一个循序渐进的指南,介绍如何在Spring启动应用程序中包含Apache Kafka,以便您也可以开始利用它的优点。...先决条件 本文要求您拥有Confluent平台 手动安装使用ZIP和TAR档案 下载 解压缩它 按照逐步说明,您将在本地环境中启动和运行Kafka 我建议在您的开发中使用Confluent CLI来启动和运行...为了完整地显示我们创建的所有内容是如何工作的,我们需要创建一个具有单个端点的控制器。消息将被发布到这个端点,然后由我们的生产者进行处理。 然后,我们的使用者将以登录到控制台的方式捕获和处理它。...在不到10个步骤中,您就了解了将Apache Kafka添加到Spring启动项目是多么容易。...如果您遵循了这个指南,您现在就知道如何将Kafka集成到您的Spring Boot项目中,并且您已经准备好使用这个超级工具了! 谢谢大家关注,转发,点赞和点在看。

    1.9K30

    如何改善应用程序在 Linux 中的启动时间

    但是,我们仍然可以借助一些额外的应用程序和方法让它们启动更快一点。其中一个可用的这种应用程序就是 Preload。...在这篇详细的教程中,我们将去了解如何安装和使用 Preload,以改善应用程序在 Linux 中的启动时间。...在 Linux 中使用 Preload 改善应用程序启动时间 Preload 可以在 AUR 上找到。...Preload 显著影响启动时间。因为更多的应用程序要被预读到内存中,这将让你的系统启动运行时间更长。 你只有在每天都在大量的重新加载应用程序时,才能看到真正的差别。...因此,Preload 最适合开发人员和测试人员,他们每天都打开和关闭应用程序好多次。 关于 Preload 更多的信息和它是如何工作的,请阅读它的作者写的完整版的 Preload 论文。

    4.5K10

    某些应用程序无法启动,如何排查?

    点击“确定”保存更改,然后重新尝试启动应用程序。方法二:检查应用程序的安装完整性步骤:卸载并重新安装应用程序:打开“设置” -> “应用” -> “应用和功能”。找到问题应用程序,点击“卸载”。...查看应用程序日志:在左侧导航栏中展开“Windows日志” -> “应用程序”。查找与问题应用程序相关的错误日志,记录详细信息以帮助诊断问题。...测试是否可以正常启动。方法六:使用兼容模式运行应用程序步骤:右键单击应用程序快捷方式或可执行文件,选择“属性”。切换到“兼容性”选项卡:勾选“以兼容模式运行这个程序”。...点击“确定”保存更改,然后重新尝试启动应用程序。方法七:检查环境变量和路径设置步骤:打开“系统属性”窗口:按下Win + R键,输入sysdm.cpl ,然后按回车。...查看系统资源使用情况:如果CPU、内存或磁盘使用率过高,可能导致应用程序无法启动。关闭其他占用资源的应用程序,然后重新尝试启动目标应用程序。

    72710
    领券