首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

干货 | 携程机票 App KMM 跨端生产实践

2.2.2 双指令集合并问题 KMM Module 编译生成的 framework 文件最终是运行在真机设备上,即 arm64 格式,而开发阶段需要支持模拟器设备,即 x84_64 格式。...上面关于 MMKV 的封装是一种常规且较为简单的封装,在我们的实际工作内容中,对网络框架的封装与改造值得一提。 携程自研的网络框架并非标准的 HTTP 协议,底层有大量定制的协议等内容。...这个问题导致的直接结果就是同一份代码在能通过编译的情况下,在 Android 端可以正常运行,但在 iOS 端则会 crash。...4)此前协程挂起锁 Mutex 在 Kotlin/Native 上有 bug,无法正常生效(kotlinx.coroutines 1.4.2 版本后已修复)。...除了携程机票之外,阿里巴巴、腾讯、美团、快手等大厂也在积极进行 KMM 的尝试。我们的团队在之后的工作中将会进行更多的技术探索与输出,使自身的贡献及影响力在 Kotlin 技术社区内占有一席之地。

3.7K10

分层测试

它安装了一个测试用例套件作为在Android设备或仿真器上的应用程序,并提供用于执行测试的真实环境。 优点: 容易在最短的时间内编写测试脚本,易用性高。自动跟随当前activity。...缺点: 不能处理flash和web组件。在旧设备上会变得很慢。 由于不支持iOS设备,当自动化测试同时覆盖 android与iOS的情况时,测试会被中断。没有内置的记录和回放功能....优点: 测试场景是在Cucumber的帮助下,用可理解的英语句子写的。强大的Symbiote实时检查工具。 活跃的社区支持。 不断扩大中的库。 缺点:对手势的支持有限。 在设备上运行测试有点难。...它安装了一个测试用例套件作为在Android设备或仿真器上的应用程序,并提供用于执行测试的真实环境。 优点: 容易在最短的时间内编写测试脚本,易用性高。自动跟随当前activity。...缺点: 不能处理flash和web组件。在旧设备上会变得很慢。 由于不支持iOS设备,当自动化测试同时覆盖 android与iOS的情况时,测试会被中断。没有内置的记录和回放功能.

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

    monoTouch开发(1):win7 + vmware下安装mac os

    iPhone现在越来越火爆了,很多原本在PC上的互联网应用都纷纷推出了iPhone客户端(比如携程,新浪微博),iPhone的最佳开发环境是mac OS + iphone真机,一般情况下这个有点难满足。...1、准备工作,先到网上down下面这些软件   a、 vmware7.1 (虚拟机软件)   b、 darwin.iso 约24.8m (mac os系统的引导盘,没有这个无法进入安装,而且安装好以后,...也需要这个引导才能进入mac os,迅雷上就能找到)   c、 Mac.OSX.Snow.Leopard.v10.6.2(雪豹10.6)的DMG文件  约6.13G (迅雷或apple官网上就有) 2...注:如果不能正常引导到该界面,可尝试将虚拟机power off关掉,然后重新开启 6、在虚拟机保持开启的状态下,切换光盘,把dmg文件挂到光驱上 方法:右击虚拟机名称-->setting--> CD/DVD...注:有某些本本上(比如thinkpad t61p),按文中的方法死活就是进入不了安装界面,多半是不兼容,这时可以在其它PC机器上按上面的方法安装好,然后将安装好以后的所有文件复制到本本上,在vmware

    1.8K60

    iOS逆向(10)-越狱!越狱!远程连接登录手机

    iOS启动引导分为三种模式: 正常引导 恢复引导 固件更新引导 这里我们只对「正常模式」进行介绍,其他两种模式可以自己猜一猜。 1、图解启动链 ?...Boot Room在启动的过程中的地位至关重要,由于Boot Room只读特性,保证了iPhone上不能安装Android系统。...同理,在除了iPhone其他的设备上没有Boot Room,也就无法安装iOS系统。...Step 3、Low Level Bootloader LLB(Low Level Bootloader)不同于Boot ROM,它不是被内嵌在设备上的,而是在iOS系统中,同其他文件一样,是一种被加密的...正常引导模式中,iBoot调用fsboot()函数挂载iOS系统分区,定位内核,准备设备数并引导系统,如果引导失败,则进入恢复模式引导。 ” 以上三个步骤只要其中任何一个步骤验证失败,则启动失败。

    2.1K30

    将 Linux 移植到 M1 Mac 真的太难了!

    它的工作方式更类似于嵌入式平台(比如安卓手机,iOS 设备等),但是引入了许多特别的机制。...它是定制的苹果机制,从 iOS 设备的早期阶段慢慢发展起来的。...使用 m1n1 引导 Linux 的大致过程如下: 初始化主 CPU,并应用 chicken bit 设置,使其正常工作。...不过,多亏了我们给 CPU 中的苹果专有寄存器建立了文档,并且记录了 CPU正常工作所需的 chicken bit 序列,我们发现有一个特殊的寄存器可以用来覆盖该行为,保证WFI永远不会执行 power-gate...我们还获得了该芯片的硬件文档,这样我们就能改进驱动程序,并添加能够在 X1000 上正常工作的特性(如中断支持),同时添加支持 M1 所需的改动。

    3.1K20

    完美黑苹果功能自检手册

    音频设备里面除了自带的声卡以外,应该还可看到 HDMI 音频相关。 硬盘这块没的说,基本上大家都是正常的。...信息 如果你还有 iOS 设备的话,那么你的 macOS 上的短信应该可以正常发送的: 同理也应该可以正常接收: 如果你有 iOS 设备,网卡确定也是合格的话,依然不可以接收和发送短信的话,那么只需要如下配置一下就...OK 了,先在 macOS 上面对信息进行如下设置: 然后 iOS 这边进行如下设置: iCloud 围绕着 iCloud 等周边功能也应该可以正常使用: 隔空投送 在 iOS、iPadOS、macOS...设备直接互相传输文件,目前博通系列的免驱无线网卡都可以做到: 接力 macOS 上可以直接在程序坞的右下角直接打开 iOS 和 iPadOS 的系统级别应用: 跨设备粘贴 实际上 macOS 12.3...后面的通用控制更强大,再次之前只能简单的通过剪贴板跨设备粘贴文字之类的: 随航 这个和无线网卡有关,如果无线网卡免驱的话,理论上可以无线模式下随航,否则只能在有线模式下正常工作,随航的作用是将 iPad

    1.2K10

    苹果咋地使用群控软件iOS

    本章将详细指导如何有效使用iOS群控软件,以提升工作效率并简化大规模设备的操作流程。了解iOS群控软件功能概述:阐述群控软件的主要功能,如批量部署应用、同步执行指令、远程控制设备屏幕、数据同步备份等。...设备识别与注册:引导用户在群控软件界面上添加新设备,并完成对每个设备的身份认证与授权过程。基础设置与配置分组管理:根据业务需求将设备划分为不同的分组,便于针对性操作。...高级功能操作同步任务执行:详细介绍如何创建并执行同步脚本,例如批量登录账户、发送信息或执行特定操作序列。实时监控与反馈:讲解如何通过群控软件实时查看各个设备的状态、日志以及运行效果。...移动设备管理工作流:如批量推送公司政策、应用更新或设备安全策略。安全性与合规性注意事项隐私保护措施:强调遵守相关法律法规,在使用群控软件时尊重用户隐私,避免滥用。...通过本章详细的指南,您将能够熟练掌握iOS群控软件的使用方法,从而在实际工作场景中实现高效、精准的多设备控制与管理。

    72010

    干货 | 携程机票无线测试技术与效能提升

    作者简介 罗昭君,携程机票无线高级测试经理,负责机票移动端功能测试、自动化测试、平台开发等。从事开发、测试工作近12年,先后在阿里巴巴、携程任职。...二、测试前置 测试前置也可称为测试左移,它并不是单纯意义上的让测试人员和测试工作更早的介入。而是建立一整套全流程质保和全员质保的理念,这些工作更多的是需要测试人员去驱动和引导。...3)产品的PRD和开发人员的代码在结构上均需要优化可测试性。产品文档主要是在格式和逻辑梳理上方便进行场景分类测试。...2、服务接口测试 接口自动化技术相对成熟,在基本的框架层面上并没有太多的技术难度问题,主要将公司服务各种协议契约的序列化、报文发送接收解析处理类封装好,加上数据驱动和基本工具类,基于Nunit即可将接口测试代码基本跑起来...Appium在1.6.3开始对IOS新的自动化测试工具XCUITest进行支持,相比较IOS早先使用UIautomation测试,在控件识别的效率和稳定性上都有明显的提升。

    1K50

    黑群晖虚拟机安装

    当天在办公室工作电脑上处理的文档需要备份或者回家继续处理的,它已经自动的同步或备份到家里了。手机拍摄的照片,早已自动备份到了家里,根本无需自己做任何操作。...回到家里,想听音乐,用手机或iPad把存放在NAS上的音乐串流到无线音箱上随便听。家里三个人,想看1080p的高清电影,各自选择在电视,手机,电脑,还是iPad上看,连上NAS,一切随意。...完成就可以了 然后找到该虚拟机 点击编辑虚拟机设置,添加一个硬盘 这里注意 即将添加之前做好的synoboot.vmdk 引导磁盘 虚拟磁盘类型 SCSI(有些可能有模式,请选择 非永久 以免破坏引导磁盘导致不工作...本文这里点了 转换 最后检查作为引导的SCSI硬盘 虚拟设备节点顺序是否正确 这里虚拟设备节点 引导盘为 SCSI 0:3 将要安装系统的空白虚拟磁盘 虚拟设备节点 为 SCSI 0:2 这个是不正确的...引导盘为 SCSI 0:3 更改为 SCSI 0:0 如SCSI 0:0被占用 就先找到 是哪个设备占用的 把该设备 设备节点数值设置靠后 设置完成后 点击“确定”保存设置 我本地虚拟机使用SCSI不能搜索到服务器

    5.3K10

    一步一腳印的 iOS App 上架和更新流程

    APP Uploader APP开发助手-iOS APP上架到App Store的辅助工具,解决iOS APP上架繁琐费时的情况,帮助跨平台APP开发者上架苹果应用,在没有配置Mac苹果机的情况,实现iOS...打开”访达“,连接设备,如图,点击划线上面区域后,会展示出序列号及udid信息,然后点鼠标右键拷贝(拷贝的内容包含序列号、udid等,需手动再筛选udid)。 2、通过老版本iTunes获取。...打开iTunes,连接设备,如图,找到序列号,然后点击序列号,该栏会变成UDID,点击鼠标右键,拷贝UDID。...在同时多维度考核数据时,SLA 会达到正常标准,低于正常值时,评审员会收到邮件通知进行警告。...当然,在提审之前还有一些准备工作需要确保完成好: 要确保APP没有明显的崩溃和错误。 确保APP的可用性和完整性,不能是演示APP或demo。

    1.2K20

    干货 | 聊聊移动端安全加固

    越狱使得第三方管理工具可以完全访问iOS设备的所有目录,并可安装更改系统功能的插件和盗版的软件。...如果这些目录存在,则表示当前是越狱设备。 2.2 Hook检测 2.2.1 Hook概念 Hook(钩子),实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。...例如,正常的算法的汇编代码: 这样的汇编代码,可以在IDA中,通过IDA等分析工具,可以反编译出伪代码,攻击者可以很方便的进行分析,通过调试还原出代码的原始逻辑: 而我们在编译过程中,将汇编代码进行打乱重排...七、携程安全加固SDK的产品功能 7.1 种类齐全的设备信息 携程安全加固产品,经用户授权后,收集种类相对齐全的设备信息,通过设备信息,后端分析算法,可以高效辨别设备的真实性。...八、总结 在严峻的安全形势下,携程加固产品上线以来,取得了良好的效果,为安全部门和业务部门的风控和反爬虫工作,提供了强力的支持。

    1.4K20

    开源|携程机票 App KMM 跨端 KV 存储库 MMKV-Kotlin

    在原生移动端开发中,Android SDK 提供了 SharedPreferences,iOS 提供了 NSUserDefaults 用于 KV 存储功能,但这二者在性能要求较高的情况下不能满足需求。...例如 mmap 提供的内存-文件映射、数据根据 protobuf 协议序列化与反序列化、多进程实现等等。core 直接对外暴露 C++ API,在 Win32、POSIX 等系统上可由开发者直接使用。...但该 so 库是针对 Android 平台的二进制程序,并不能在开发者常用的 Windows 或 Mac 电脑上运行。...另外三个是 iOS 构建产物,分别对应:iphone 真机(iosarm64)、M1 & M2 芯片的 Mac 上的 iOS 模拟器(iossimulatorarm64)、Intel 芯片的 Mac 上的...iOS Widget实践 Trip.com APP QUIC应用和优化实践 降低20%链路耗时,Trip.com APP QUIC应用和优化实践 Flutter在携程复杂业务的高性能之旅  “携程技术

    1.8K20

    iOS 15问题汇总,该不该升级看完就知道了!

    苹果在WWDC 2021大会上发布了最新的iOS 15系统,新增并优化了许多服务和功能。相信很多果粉已经迫不及待地想要体验iOS 15测试版了。...但是iOS 15目前只发布了第一个开发者测试版,必然会存在一些错误和问题。 ios-15-bug.png iOS 15测试版在使用过程中都会遇到哪些问题呢?...接下来小编就和大家分享一下已升级的果粉反馈的iOS 15测试版问题和BUG,希望对大家升级iOS 15测试版提供一些参考。...许多新功能界面还没有汉化,只能显示英文 部分机型微信朋友圈不能发布视频 音乐播放器无法在控制中心或锁屏界面显示 辅助触控功能不灵敏,无法正常工作 唤醒功能不能调高显示屏亮度 Emojis在某些情况下不能正确显示...无法连接到WiFi网络 iPhone无法通过蓝牙连接汽车或耳机 内置的天气地图有Bug,无法正常显示 美团App无法使用相机扫一扫 携程、网易云音乐App无法打开 京东App文字重叠 B站视频的音量条不显示

    50820

    最新iOS设计规范二|7大应用架构

    iOS是运行于iPhone、iPad和iPod touch设备上、最常用的移动操作系统之一。作为互联网应用的开发者、产品经理、体验设计师,都应当理解并熟悉平台的设计规范。...这有利于提高我们的工作效率,保证用户良好的体验。 本文是iOS设计规范系列第二篇:7大应用架构。...(设计规范虽如此,但实际上大家基本都在用广告,大型APP比如微信QQ会用自己的品牌) 启动页采用适当的方向。如果您的应用同时支持纵向和横向模式,则应使用设备的当前方向启动。...提供新手引导帮助人们享受您的应用程序,而不仅仅是设置它。用户很高兴有机会了解更多有关您的应用程序的信息,但他们也希望它能够正常工作。所以避免在新手引导中出现设置或权限许可信息。 快速进入。...为了在你的应用中呈现自定义的模态内容,iOS 13和更高版本支持以下两种表现风格: (一) 工作表(卡片弹窗) 工作表演示样式显示为一张卡片,并覆盖在页面上。未被覆盖的区域变暗显示,无法进行交互。

    2.6K20

    说说最近官方公布的 Kotlin 的动态

    接下来的工作重点我们在之前的文章当中就曾经谈到,其实就是应用场景的挖掘,开发体验的优化和提升,以及多平台的完善和生态的建设。...KMM 运行在 iOS 上的实际上就是 Kotlin Native 的代码,通过 Kotlin MPP 与运行在 Android 上的 Kotlin Jvm 代码来共享逻辑。...最近随着 Kotlin 1.4 发布推出的 KMM 插件也支持了在 Android Studio 上直接运行 iOS 应用,启动 iOS 模拟器,甚至单步调试运行在 iOS 上的 Kotlin Native...也正是如此,Kotlin 协程的 Kotlin Native 版本迟迟没有正式推出多线程版本,在 iOS 上使用 Kotlin 协程目前还受制于所调用的 API 是否本身已经自己支持了异步以及回调的线程切换...Kotlin 目前尚不能像在 Android 上那样全面替代 Java,从目前以导出 Framework 的方式引入 iOS 工程的做法来看,Swift 和 Objective-C 暂时还是无法完全干掉的

    1.3K30

    干货 | 携程机票跨端跨框架 UI 自动化测试方案 Flybirds

    ] 中向 [] 查找 [] 的元素 在指定 选择器 的元素内 向指定方向滑动查找 指定选择器的元素 ALL 跳转到[] 跳转到指定的url地址 Android,Web 返回上一页 返回上一页面 Android...,Web 开始录屏 开始录制视频 Android,iOS 开始录屏超时[] 开始录屏并设置超时时间 Android,iOS 连接设备[] 连接测试设备 Android,iOS 启动APP[] 启动APP...1)请确保配置的测试设备能够正常连接 • Android: 执行命令 adb devices , 检查设备列表中是否包含测试设备 • iOS:以tidevice库举例,执行命令 tidevice...逐步新增功能和代码优化,非常欢迎您加入到我们的共建计划中,在 GitHub 上提出您的宝贵建议,以及在使用时遇到的一切问题,我们也会对此每周进行一次小版本的迭代。...携程机票前端安卓虚拟机测试集群建设实践 质量保障新手段,携程回归测试平台实践 应用SQL性能风险识别与预警,携程金融支付AppTrace落地实践  “携程技术”公众号   分享,交流,成长

    1.4K40

    iOS应用上架详细图文教程

    本期我们从iOS app上架流程开始梳理,详细了解下iOS app上架的那些事。...打开”访达“,连接设备,如图,点击划线上面区域后,会展示出序列号及udid信息,然后点鼠标右键拷贝(拷贝的内容包含序列号、udid等,需手动再筛选udid)。 ​...打开iTunes,连接设备,如图,找到序列号,然后点击序列号,该栏会变成UDID,点击鼠标右键,拷贝UDID。 ​...在同时多维度考核数据时,SLA 会达到正常标准,低于正常值时,评审员会收到邮件通知进行警告。...当然,在提审之前还有一些准备工作需要确保完成好: 要确保APP没有明显的崩溃和错误。 确保APP的可用性和完整性,不能是演示APP或demo。

    92230
    领券