热门问题 升级64位架构指南
一、检验是否包含64位架构



APK构建打包时,原生库会根据ABI存储到不同的目录下:



在兼容64位和32位的硬件上,仅包含32位原生库的APP也可以正常运行,但是无法享受到64位架构带来的性能提升。
比如只包含armeabi-v7a或者armeabi原生库的APP都可以正常运行,但是如果包含arm64-v8a目录,则APP运行的原生库都会从arm64-v8a目录下加载。因此arm64-v8a和armeabi-v7a都存在的情况下,两个目录中的原生库数量要保持一致,如果APP加载armeabi-v7a目录中存在但是arm64-v8a目录中不存在的原生库会报错。


您可以通过以下几种方法评估是否需要适配64位架构:
1.1、检查代码
从代码角度检查是否需要进行64位架构适配,只有APP中使用了原生代码(C/C++)才需要进行64位适配,因为原生代码会被编译成运行在目标处理器的机器码。如果只有Java或者Kotlin代码则会自动适配好64位架构,不需要任何修改。
需要检查的原生代码包括APP中直接使用的以及引用的第三方库中使用的原生代码,如果第三方库中使用了原生代码,则需要和库提供方沟通进行64位适配。


1.2、使用APK分析器查看原生库
通过APK分析器可以查看APK中的目录结构和文件:
1)打开 Android Studio,然后打开任一项目;
2)从菜单中依次选择Build > Analyze APK:

3)选择您的 APK;
4)查看lib文件夹,您可以在其中找到“.so”文件。如果在您的应用中找不到任何“.so” 文件,则说明该应用不需要适配。如果有armeabi-v7a或x86目录,则说明您有 32 位 库;
5)检查是否arm64-v8a或x86_64文件夹中有类似的“.so”文件,如果32位的库都存 在对应的64位库则已经适配完成,否则需要进行开发适配。




1.3、解压APK查看原生库
您也可以直接解压apk,查看lib下的32位原生库是否有对应的64位原生库。比如通过下面zip命令查看apk中的so文件:
:: Command Line
zipinfo -1 YOUR_APK_FILE.apk | grep .so$
lib/armeabi-v7a/libmain.so
lib/armeabi-v7a/libmono.so
lib/armeabi-v7a/libunity.so
lib/arm64-v8a/libmain.so
lib/arm64-v8a/libmono.so
lib/arm64-v8a/libunity.so




二、如何使用 64 位库构建应用




下面针对构建 64 位库做出了相关的说明。不过,需要指出的是,以下内容仅介绍了如何构建在源代码的基础上可构建的代码和库。


2.1使用Android Studio或Gradle 进行构建
大多数Android Studio项目都使用Gradle作为底层构建系统,因此本部分适用于使用这两种工具进行构建的情况。针对原生代码进行构建很简单,只需将arm64-v8a和/或x86_64(视您要支持的架构而定)添加到应用“build.gradle”文件中的 ndk.abiFilters 设置中即可:
// Your app's build.gradle
apply plugin: 'com.android.app'
android {
compileSdkVersion 27
defaultConfig {
appId "com.google.example.64bit"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
// ...



2.2 使用CMake进行构建
如果您的应用是使用CMake构建的,那么您可以通过将 arm64-v8a 传递到“-DANDROID_ABI”参数来针对 64 位 ABI 进行构建:
cmake -DANDROID_ABI=arm64-v8a … or
cmake -DANDROID_ABI=x86_64 …
在使用externalNativeBuild 时,此方法无效。请参阅使用Gradle进行构建部分。



2.3 使用ndk-build 进行构建
如果您的应用是使用 ndk-build 构建的,那么您可以使用 APP_ABI 变量修改“Application.mk”文件,从而针对 64 位 ABI 进行构建:
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
在使用 externalNativeBuild 时,此方法无效。请参阅使用 Gradle 进行构建部分。



2.4 将32位代码移植到 64 位架构
如果您的代码已经可以在桌面或 iOS 平台上运行,那么您无需针对 Android 做额外的工作。如果这是第一次针对 64 位系统构建您的代码,那么您需要解决的主要问题是指针不再适合 int 这样的 32 位整数类型。您将需要更新以 int、unsigned 或 uint32_t 等类型存储指针的代码。在 Unix 系统上,long 对应的是指针大小,但在 Windows 上并非如此,因此您应该改用释意类型 uintptr_t 或 intptr_t。使用 ptrdiff_t 类型来存储两个指针之间的差异。您应该始终选择使用 <stdint.h> 中定义的特定固定宽度整数类型,而不是 int 或 long 等传统类型,即便对于非指针也应如此。使用以下编译器标记来捕捉代码在指针和整数之间转换不正确的情况:
-Werror=pointer-to-int-cast
-Werror=int-to-pointer-cast
-Werror=shorten-64-to-32、
具有 int 字段(包含指向 C/C++ 对象的指针)的 Java 类也有同样的问题。在 JNI 源代码中搜索 jint,并确保切换到 long(Java 端)和 jlong(C++ 端)。
注意:因指针被截断而引起的崩溃将表现为 SIGSEGV,其中错误地址的前 32 位全部为零。对于 64 位代码而言,隐式函数声明的危险性要高得多。C/C++ 假定隐式声明的函数(即编译器未检测到声明的函数)的返回值类型为 int。如果函数的实际返回值类型是指针,那么在 32 位系统上是可行的,因为在 32 位系统中指针的类型为 int,但在 64 位系统中,编译器会丢弃指针的前半部分。例如:
// This function returns a pointer:
// extern char* foo();
// If you don't include a header that declares it,
// when the compiler sees this:
char* result = foo();
// Instead of compiling that to:
result = foo();
// It compiles to something equivalent to:
result = foo() & 0xffffffff;
// Which will then cause a SIGSEGV if you try to dereference result.
以下编译器标记会将隐式函数声明警告变成错误,以便您能够更轻松地查找和解决此问题:-Werror=implicit-function-declaration如果您有内联汇编程序,您需要重新编写该程序或使用普通的 C/C++ 实现。如果您对类型大小进行了硬编码(例如,8 或 16 字节),请使用等效的 sizeof(T) 表达式(例如 sizeof(void*))来替换它们。如果需要有条件地编译不同于 64 位的 32 位代码,则对于一般性的 32/64 差异,您可以使用 #if defined(LP64);对于 Android 支持的具体架构,可以使用 arm、aarch64 (arm64)、i386 (x86) 和 x86_64。您需要调整类似 printf 或 scanf 的函数的格式字符串,因为如果使用传统的格式说明符,您无法以一种对 32 位和 64 位设备都正确的方式来指定 64 位类型。您可利用 <inttypes.h> 中的 PRI 和 SCN 宏来解决此问题,PRIxPTR 和 SCNxPTR 分别用于写入/读取十六进制指针,PRId64 和 SCNd64 分别用于以可移植的方式写入/读取 64 位值。在移位时,您可能需要使用 1ULL 来获取要移位的 64 位常数,而不能使用仅支持 32 位的 1。



2.5 利用 Android App Bundle 减少大小增加量
为您的应用添加 64 位架构支持可能会导致 APK 的大小增加。我们强烈建议您利用 Android APP Bundle 功能,以尽量减小因在同一 APK 中同时包含 32 位和 64 位原生代码而对 APK 大小产生的影响。实际上,将应用改为使用 Android App Bundle 可以缩减 APK 的大小,使其比现在更小。



2.6   RenderScript的64位适配
如果您的应用使用 RenderScript 并且是通过较低版本的Android工具构建的,该应用可能会需要进行64位架构适配。使用版本低于21.0.0的构建工具时,编译器可能会将生成的位码放到外部.bc文件中。64 位架构不再支持这些旧的.bc文件,因此,如果您的APK中有这类文件,就会进行适配处理。
要解决此问题,请移除项目中的所有.bc文件,将环境升级到build-tools-21.0.0或更高版本,并将Android Studio中的renderscriptTargetApi设为21+,以指示编译器不要生成.bc文件。然后,重新构建您的应用,检查是否有.bc文件,再将应用上架。


2.7 Unity 开发者Unity自版本2018.2和2017.4.16开始提供 64 位支持。
如果您发现自己使用的Unity版本不支持64位架构,请确定要升级到的版本,并按照 Unity 提供的指南迁移您的环境,确保将您的应用升级到可构建 64 位库的版本。Unity 建议您升级到该编辑器的最新 LTS 版本,以获取最新的功能和更新。
下面的图表概述了 Unity 的各个版本以及您应该采取的措施:




如果您使用的 Unity 版本支持 64 位的 Android 库,那么您可以通过调整构建设置来生成 64 位版本的应用。您还需要使用 IL2CPP 后端作为 Scripting Backend。要为构建 64 位架构而设置 Unity 项目,请按以下步骤操作:
1)转到 Build Settings,然后确认 Unity 标志是否显示在 Platform 下的 Android 旁边,以确保您是在针对 Android 进行构建。
a.如果 Unity 标志未显示在 Android 平台旁边,请选择 Android,然后点击 Switch Platform。
2)点击 Player Settings



3)依次转到Player Settings Panel > Settings for Android > Other Settings > Configuration
4)将Scripting Backend设为IL2CPP。
5)依次选择Target Architecture > ARM64复选框。
6)启动构建
针对 ARM64 进行构建需要您专门针对该平台构建您的所有资源。请按照 Unity 的指南来缩减 APK 大小。




三、测试


在64位硬件上安装
首先验证APP在64位硬件上可以正常安装,执行如下adb install命令

:: Command Line
# A successful install:
> adb install --abi armeabi-v7a YOUR_APK_FILE.apk
Success
# If your APK does not have the 64-bit libraries:
> adb install --abi arm64-v8a YOUR_APK_FILE.apk
adb: failed to install YOUR_APK_FILE.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
# If your device does not support 64-bit, an emulator, for example:
> adb install --abi arm64-v8a YOUR_APK_FILE.apk
ABI arm64-v8a not supported on this device

智能解答

联系我们

微信公众号

九游开放平台公众号

关注微信公众号
看更多推送内容

限时填问卷吐槽赢话费

确认协议

TOP

九游开放平台合作协议 查看

1、更新内容:在“6 结算”增加6.3的内容;在“13 声明、陈述与保证” 增加13.2.6的内容;修改“19 其它约定 19.3 协议期限及优先合作”的内容,具体内容详见协议正文。

2、请务必在2023年5月6日前完成签署,若对协议内容有疑问,请联系商务经理进行沟通。

3、您认可并同意自您完成签署更新协议后,该协议对所有合作游戏均产生约束力。

九游开放平台合作协议(更新)

导言:

欢迎您使用本开放平台提供的技术服务!

《九游开放平台合作协议》(以下简称:本协议)是您(以下简称:甲方)与广州爱九游信息技术有限公司(以下简称:乙方)之间关于利用乙方的软件和技术向甲方的游戏提供技术服务的法律协议。您应当阅读并遵守本协议之约定,请您务必审慎阅读、充分理解各条款内容,特别是免除或者限制责任的条款。双方确认前述条款并非属于《中华人民共和国民法典》第四百九十七条规定的“不合理地免除或者减轻其责任、加重对方责任、限制对方主要权利”的条款,并同意该条款的合法性及有效性。

请在阅读并接受本协议及相关协议、规则等所有条款后使用乙方按照本协议提供的技术服务。您使用乙方按照本协议提供的技术服务,即视为您已阅读并同意本协议、规则等的约束。 您有违反本协议的任何行为时,乙方有权依照违反情况,限制、中止或终止向您提供本服务,并有权追究您的相关责任。

九游网站首页下方可查看到的用户协议及所有本网站已经发布的或将来可能发布的各类规则、声明等各项规范网站运营及明确本公司和用户权利义务、责任的文件资料。所有规则、声明等均为本合作协议不可分割的一部分,与本合作协议具有同等法律效力。

现甲、乙双方经友好协商,就合作游戏软件在九游开放平台上进行发布及运营之事宜达成本协议。

1 名词解释:

本协议中,除非双方另有约定,下列术语的含义如下:

1、合作游戏软件(或合作游戏、游戏):指甲方拥有独立、完整著作权或者经合法授权获得的网络游戏的服务器端、最终客户端程序及其文档等,包括合作游戏的现有版本及未来的升级版本。

2、乙方平台:乙方及其关联公司自有及与第三方联合运营的各种软件、产品、技术和平台。

3、技术服务:指通过乙方平台,为合作游戏软件提供技术通道以及使合作游戏软件更广泛被用户接触的服务,包括为甲方提供自助的游戏上传通道、自助生成宣传页面、自助信息发布、存储、搜索等网络技术服务。

4、技术检测:指对于合作游戏软件进行的技术检测,旨在检查合作游戏软件是否正常运转、工作秩序是否良好、是否存在缺陷或不足等。

2 合作目的

甲方拥有先进的手机游戏软件;乙方拥有优质的、完善的技术服务。甲方授权乙方通过其平台对合作游戏软件提供技术服务,并向乙方给付技术服务费用。

本协议中的合作游戏由甲方自主开发完成或由甲方自该游戏的相关权利人处获得合法授权,甲方依法对其(包括但不限于游戏软件、游戏内容、游戏内各元素等)享有全部著作权或合法的授权,并享有在乙方平台上进行营销、宣传、推广和运营该游戏所需的所有其它合法权利。甲方保证在乙方平台上发布、营销、宣传、推广和运营该游戏不存在侵犯任何第三方的合法权益(包括但不限于第三方的著作权、商标权及其它知识产权或合法权利),也无需取得任何第三方的同意,并不会使甲方受到任何第三方的追责。

若该游戏是根据他人作品改编、演绎或该游戏中涉及使用他人享有著作权的作品、或他人商标、肖像及其他合法权利的,甲方须已取得相关权利人的完整授权,保证可以在乙方平台上发布、营销、宣传、推广和运营该游戏,乙方不会因此受到任何第三方的追责(包括但不限于有关著作权、商标权及其它知识产权或其它合法权利方面的追责)。

乙方提供游戏发布平台、运营系统等中立的平台技术服务,甲方提供游戏内容及运行的软件技术支持,并自主在乙方平台上发布、运营、推广其游戏,乙方依约获得相应技术服务费用。

甲方同意和理解:九游开放平台是一个中立的平台服务提供者,乙方仅通过九游开放平台向甲方提供中立的技术支持服务,以供甲方在中立的九游开放平台上自主发布、运营、推广其游戏。

因游戏及服务产生的任何纠纷、责任等,以及因甲方违反相关法律法规或本议约定引发的任何后果,均由甲方独立承担责任、赔偿损失,与乙方无关。如因甲方原因而侵害到乙方或他人权益的,甲方须自行承担全部责任和赔偿乙方由此遭受的一切损失。

3 合作游戏

合作游戏软件的名称及相关登记、备案信息以双方订立的《服务单》为准。

如甲方按照乙方之规定上传合作游戏软件,则视为甲方已经同意《服务单》之约定;如甲方上传的合作游戏软件通过了乙方的技术检测,则双方应按照本协议及《服务单》之约定履行各自的义务。

4 甲方责任

4.1 合作游戏软件的研发、更新及修改

甲方负责上传提供合作游戏软件并负责合作游戏软件的更新及修改,乙方有权对合作游戏软件提出技术建议。

4.2 合作游戏软件的合法性登记、备案等手续

甲方负责向相关部门办理合作游戏软件运营及出版的相关手续,具体包括但不限于办理合作游戏运营的登记、备案等手续及办理合作游戏的出版的登记、备案等手续。

4.3 合法合规制度的建立

甲方应按照国家法律法规规定在游戏中设置相关的制度,如《防沉迷制度》、《未成年人家长监护制度》等。

4.4 相关资料

甲方应根据以下内容,按照乙方平台的相关标准自助上传合作游戏的产品资料:

有关合作游戏软件的说明书、游戏展示页面搭建和展示所需的资料等;

游戏软件的更新内容,其中包括改进的技术及产品BUG、增加的内容、系统的改进等;

其它出于游戏软件展示所需要的资料等。

4.5 游戏收费及支付结算

甲方自行负责合作游戏软件的收费方案的设计,合作游戏所需的支付方式及技术服务由乙方提供或指定。乙方需为甲方提供支付服务的技术接口并协助甲方完成相关技术服务的搭建。

5 交付、测试、验收

5.1甲方应于本协议生效后10个工作日内,通过乙方平台上传合作游戏软件及相关资料。乙方有权对合作游戏软件进行形式审查,通过审查后向甲方提供技术服务。未经甲方书面同意,乙方不得对甲方提供的软件及资料进行任何修改。乙方对甲方资料的审核通过不代表乙方确认合作游戏软件或相关资料没有问题,甲方需要保证合作游戏软件及相关资料的合法性及不侵权。

5.2乙方应在收到甲方交付的游戏软件后10个工作日内进行技术检测,如游戏的相关技术检测标准不能达到乙方的技术服务标准,甲方需根据乙方的技术检测建议对游戏进行修改,直到达到技术服务标准并通过乙方的技术检测;内测期间产生的成本、损失等由甲方承担。合作游戏通过技术检测后,由双方决定乙方提供技术服务的具体日期。

6 结算

6.1 具体的结算以双方订立的《服务单》为准。

6.2 如甲方申请使用乙方提供或指定的其他技术服务,则需按照本协议及《服务单》之约定向乙方给付相关技术服务的使用费,具体的结算方式以双方订立的《服务单》为准。

6.3除本协议另有约定外,涉及用户退款事宜(包括但不限于未成年人用户退款、充值不到账等)由乙方单方决定,甲方同意并认可乙方处理退款事宜所涉及的退款金额在对账单中扣除后再按比例计算分成。

7 沟通机制

双方定期就本协议合作进行会议沟通,一般情况下由双方项目或技术负责人进行即可。如任何一方认为需要解决重大事项,可针对性地召开会议。原则上该方应当在会议召开前三个工作日内向对方发出通知,通知应当包括会议主题及需要双方参加的人员。

8 游戏质量保证

8.1甲方上传的合作游戏软件不得出现严重的程序错误(Bug),包括但不限于以下情况:

对甲乙双方均认为属于严重影响合作的同一技术问题,出现1%以上的活跃用户(即7天内有游戏操作记录的用户)投诉,且该问题甲方未能在24小时内解决的;

由于游戏本身的技术原因导致用户无法注册、无法支付,且甲方未能在24小时内解决的;

由于最终用户端游戏软件存在严重的技术程序错误的原因,游戏被迫停止运行,且甲方未能在24小时内解决的。

8.2甲方保证甲方上传的游戏内没有病毒、木马、后门、陷阱、复活节彩蛋、蠕虫病毒、时间炸弹等,或任何其它破坏、获取、泄漏系统数据、乙方数据或用户个人信息的程序,不会在运营过程中给乙方带来损失或其他障碍。在乙方提出游戏存在技术错误后,甲方应在最晚不迟于24小时内对该错误予以认定并修正。经双方一致认定属于严重的技术程序错误的,甲方保证最晚不迟于24小时内或其它双方认可的合理期限内修正游戏错误或提供程序补丁以保证游戏质量(包括但不限于完整性、正确性等)。

8.3乙方保证在乙方提供技术服务的过程中不会产生病毒、木马、后门、陷阱、复活节彩蛋、蠕虫病毒、时间炸弹等,或任何其他破坏、获取、泄漏系统数据、甲方数据或用户个人信息的程序,不会在运营过程中给甲方带来损失或其他障碍。在甲方提出游戏软件运行过程中存在错误后,乙方保证最晚不迟于48小时内或其它双方认可的合理期限内修正游戏软件错误或提供软件程序补丁以保证游戏软件的运行质量。

9 游戏运营所需的服务器、带宽资源及支持

9.1 服务器组架设

9.1.1甲方按照乙方要求,承担游戏软件运行所必须的所有硬件设备和宽带资源,在协议区域安装架设游戏服务器、数据库服务器、网络服务器和其他所需服务器,并将服务器置于适于提供游戏软件运行的在线网络环境之中。甲方上传提供的用于合作游戏软件运行的服务器内不得存在违法或者侵权的数据、内容或信息。

9.1.2双方在合作期间,需要标注合作游戏软件的用途,阶段性进行技术性复查。

9.2 日常维护

在本协议有效期内,甲方需要提供包括但不限于如下维护及支持工作:

9.2.1修正合作游戏的漏洞(bug)、缺陷等;

9.2.2协助乙方进行合作游戏的技术检测并提供技术支持;

9.2.3上传提供合作游戏的全部补丁;

9.2.4在双方约定的合作范围内不定期升级合作游戏软件。

9.2.5甲方对合作游戏进行的、有计划的技术维护和支持服务,需要提前3个工作日通知乙方;对于突发事件引起的维护和支持服务,甲方应在突发事件发生时马上通过有效方式通知乙方。

9.3 服务器的更换、割接

9.3.1甲方需要操作或是更换合作游戏的服务器,需要提前7个工作日通知乙方,提前做好解决更新方案并经双方沟通确认。

9.3.2合作游戏软件服务器出现IDC割接等情况时甲方需提前至少三个工作日以邮件方式通知乙方,并保证在相应的时间内恢复。

9.3.3合作游戏软件服务器出现不明攻击时,或是网络故障、丢包、资源不足时,甲方应马上通过有效方式通知乙方,并对IDC资源进行协调并通过邮件说明原因。

9.3.4甲方不得在未通知乙方的情况下对正在运行合作游戏软件的服务器进行断电、关机、更新硬件等,所有操作必须提前三个工作日通知乙方。

9.4 其他技术支持

9.4.1服务器端故障:甲方承诺保障服务器端在协议有效期内运转良好,网络通畅,并保障服务器软硬件以及数据的安全。如服务器端出现故障,在乙方提交问题的30分钟内,甲方应做出问题原因、解决时间的信息反馈。如属于IDC资源故障,甲方需在30分钟内向对乙方做出问题原因、解决时间的信息反馈。

9.4.2其他突发事件:涉及需技术支持的游戏中突发事件(例如重大客服问题、累计消费1000元及1000以上玩家虚拟财产被盗等等),甲方应该按照乙方要求提供详细的事件说明,甲方应该在自乙方提交问题起的4小时内做出突发事件类型、影响及解决时间的信息反馈,并应在1个工作日内解决。

9.4.3甲方有义务为乙方提供游戏软件运行后台管理查询系统及查询权限,供乙方查询。

10 数据

10.1 数据的归属

在合作期限内,乙方为合作游戏软件提供技术服务所产生的全部数据归乙方拥有,甲方应当定期或按照乙方的要求及期限完整提供数据。

10.2 数据的使用

为履行本协议之目的,或经乙方书面同意的情况下,甲方可使用技术服务数据。

11 客户服务

11.1 客服的建立

11.1.1合作游戏的客户服务由甲方客户服务人员负责管理。

11.1.2甲方客服人员在游戏中发送的(非技术或者产品问题)公告内容须先经过乙方接口人确认方可。

11.1.3关于用户通过乙方平台进行合作游戏软件的账号注册、支付等技术问题由乙方客服部门负责,游戏内(包括游戏登录)的问题由甲方客服部门负责。

11.1.4双方负责开发双方客服部门的沟通管理平台,所有客服问题统一汇总到该平台,并进行问题分类与跟踪。

11.2 客服内容

11.2.1受理用户通过不同渠道(包括客服电话及合作游戏网站、论坛等渠道)反馈的咨询,为用户做出正确解答;

11.2.2受理用户不同渠道反馈的投诉,记录投诉内容,并跟踪解决情况;

11.2.3收集用户信息并汇总整理,以完善用户投诉、咨询的资料库内容;

11.2.4对突发问题需及时通过电子邮件方式通知对方。

11.2.5如一方受理了另一方应负责解决的客服问题,应及时通过电子邮件方式通知对方并将问题转至对方受理。

11.3 客服服务标准

11.3.1六十分钟内有效响应用户的投诉及咨询;

11.3.2二十四小时内有效解决用户的投诉及咨询;

11.3.3三个工作日内通过有效的方式补偿用户的损失,如通过赠送合作游戏内虚拟道具的方式对用户给予补偿。

12 游戏停运及后续事宜

12.1 公告

本协议生效后,无论何种情况导致本协议终止或提前终止、解除,甲方均应向乙方提供至少2个月(60日)的合作游戏软件停止运行缓冲期供乙方向用户发出公告。

12.2 停止注册及支付

合作游戏停止运行缓冲期起始时,乙方应当停止提供用户系统及支付系统服务。

双方权利条款
13 声明、陈述与保证

13.1 双方保证:甲乙双方互相向对方不可撤销地声明、陈述和保证如下:

13.1.1其有资格从事本协议项下之合作,而该合作符合其经营范围之规定。

13.1.2其签订、履行本协议不构成对第三方的违约或对第三方任何权利的侵犯,且不违反任何对其有约束力的法律文件的限制。

13.2 甲方保证:

13.2.1合作游戏在开发过程中使用的均是合法的商业软件,不存在限时、限次、功能受限或其他任何不合理的限制,不会对本协议项下合作游戏的使用造成负面影响;合作游戏程序介质在正常使用下不存在材料和工艺上的缺陷。

13.2.2甲方应完整、统一和准确地上传提供合作游戏软件、文档、技术资料及相关文件,能够满足合作游戏软件服务器安装、验收、运行和维护的要求,合作游戏软件的运行将符合该软件相关技术资料的指标要求。

13.2.3在本协议有效期内甲方对上传的合作游戏软件及相关资料拥有并将继续拥有的权利(包括但不限于所有版权、商标权、所有权及所有其他知识产权和专有权利)足以让甲方根据本协议的条款授权乙方履行本协议。

13.2.4甲方保证合作游戏软件、游戏内容、文档和许可不侵犯任何第三方的任何版权、专利、商标或其他权利(包括但不限于知识产权),足以让甲方根据本协议的条款授权乙方履行本协议。

13.2.5甲方保证合作游戏及其内容符合中国的法律、法规,不违反电子出版物有关规定的内容以及任何其他应予适用的法律规范;获得合作游戏有关的所有政府审批、同意、许可、授权、声明、备案和注册登记,以全面维持其有效性。

13.2.6合作期限内,甲方无论何种原因需提前终止合作的(包括但不限于合作期限内将合作游戏转让给其他第三方、丧失运营权等),乙方有权要求甲方按照乙方实际损失的2倍或人民币100万向乙方支付违约金,以较高者为准;乙方有权在甲方应得分成中先行扣减,不足部分甲方仍应支付;若涉及用户退款,费用由甲方承担,乙方有权在甲方应得分成中扣减,不足部分甲方应予补足。

13.3 乙方保证:

13.3.1乙方或其关联公司具有合法资格提供技术服务,乙方保证所获得的甲方全部程序及资料,仅限用于为合作游戏软件提供技术服务,否则甲方有权追究由此引起的损失。

13.3.2乙方无权对合作游戏服务器端程序做任意修改,而应向甲方提出修改意见,经甲方同意确认后,由甲方进行修改;因乙方的擅自改动造成程序或文档违反法律、法规规定,责任应由乙方承担。

13.3.3乙方保证由甲方资料中衍生出的作品、文字、图案,在制作时事先征得甲方书面同意,但衍生作品的权利归乙方所有,其使用不能侵犯甲方资料或作品的权利。乙方必须保证制作衍生作品时,不得制作有损于甲方的任何作品、文字、图案等,如乙方制作的衍生作品侵害到任意第三方利益,由此引发纠纷,由乙方自行解决,如给甲方带来影响和损失的,乙方负责消除影响并赔偿甲方损失。

13.3.4未经甲方同意,乙方不得擅自转让或处分合作游戏软件及资料,并不得将合作游戏软件及资料用于本协议目的以外的用途。乙方违反此规定应赔偿甲方由此造成的损失,并赔偿甲方因维权而支付的律师费、诉讼费、调查费、差旅费等。

14 双方权利义务

14.1 甲方权利义务

14.1.1 甲方有权按照本协议的约定监督乙方在授权范围内从事运营活动,未经甲方同意,乙方不得对合作游戏修改、更名、增加、删除、分割、反编译等行为。但乙方根据监管合规和业务自身业务考量更新、迭代接入合作游戏的SDK不受上述条款限制。

14.1.2 甲方应按照协议约定的内容及时间完成游戏及相关文件资料的交付。

14.1.3 如对游戏有更新程序或者补丁程序,甲方应及时通知乙方并按约定及时解决。

14.1.4 甲方应上传提供相关资质证明供乙方审核(例如:甲方的营业执照、游戏的著作权证书等)。

14.1.5 甲方有义务保证合作游戏软件的正常运行,如有各种故障、维护等影响合作游戏软件正常运行的状况,必须及时(维护需至少提前12小时,故障需在发生后12小时内)通知乙方。因通知不及时而对乙方造成的直接经济损失,由甲方全部承担。如因甲方原因导致合作游戏在一个月内无法正常运行时间累计超过24小时的,乙方有权单方面终止本协议,甲方应承担因此造成的全部经济损失。在前述情况下,如乙方代甲方进行了任何的退款或赔偿操作的,甲方应及时补偿,否则乙方有权自行扣除。

14.2 乙方权利义务:

14.2.1 有权要求甲方按协议约定上传提供游戏及相关资料,并提供约定提供技术支持及培训。

14.2.2 未经甲方同意,不得对游戏进行修改、更名、增加、删除、分割、反编译等行为,但乙方根据监管合规和业务自身业务考量更新、迭代接入合作游戏的SDK不受上述条款限制。

14.2.3 于约定时间提供技术服务。

14.2.4 在协议有效期内,乙方有权对甲方的客户服务质量情况进行考核。

14.2.5 乙方负责运营并维护一套安全的技术服务系统。

14.2.6 乙方不得超出所约定的协议区域实施不利于游戏的活动或者是与本协议内容无关的活动。

14.2.7 如发生任何甲方违反本协议约定的情况,乙方均有权要求甲方在三个工作日内改正,如果甲方在乙方要求的期限内仍然不予改正,则乙方有权向甲方发出终止协议的通知,本协议自动终止。

15 保密条款

15.1 保密信息

保密信息是指双方采取保密措施的,具有经济价值的信息。包括但不限于:经营管理信息、技术资料信息、以一定形式表明的其他需保密的信息。

15.2 保密信息的使用及限制

接受方有权授予因业务需要而必须知悉保密信息的雇员(包括但不限于其分支机构的雇员)使用和接触保密信息,且该雇员知道并同意遵守本协议相关条款,通过履行其与接受方签订的适当的书面协议,足以使其依循本协议全部条款。接受方在未经披露方事先书面授权或同意,接受方不得:

向任何第三方披露任何保密信息;

为第三方利益使用保密信息;

非为实现本协议项下之目的使用保密信息。

15.3 保密期限

保密义务属于本协议履行的法定附随义务,保密义务不因本协议的终止而免除。除非披露方同意或符合法律规定的情形,接受方应当承担保密义务。

15.4 特别声明

乙方将开展与游戏接入相关的业务属于乙方的经营秘密,甲方应当严格保守秘密,未经乙方书面同意甲方不得披露与本协议相关的任何内容。

16 违约责任

16.1 缔约过失责任

甲乙双方均保证具有相应法定资格从事本协议项下之合作。如因本协议主体不适格而导致缔约过失或协议无效,适格方除有权以书面通知的方式单方解除本协议并要求违约方赔偿全部经济损失。

16.2 游戏软件合法性的违约责任

16.2.1甲方理解并同意:若乙方自行发现或根据相关部门的信息、权利人的投诉等发现甲方可能存在侵犯他人合法权益情形或违法情形,乙方有权根据一般人的认识自己进行独立判断,以认定甲方是否存在侵犯他人合法权益情形,若乙方经过判断认为甲方存在侵犯他人合法权益情形的,乙方有权随时单方采取以下一项或多项措施。

(1) 要求甲方立即更换、修改侵犯他人合法权益的相关内容;

(2) 对存在侵犯他人合法权益的游戏采取下线措施,即终止该游戏在九游开放平台的运营;若涉及用户退款,费用由甲方承担。乙方有权暂停结算并在甲方应得分成中扣减,不足部分甲方应予以补足。

(3) 造成乙方或他人损失的,甲方应自行承担全部责任。

(4) 其他甲方认为适合的处理措施。

16.2.2在乙方告知甲方或甲方自行得知甲方存在侵犯他人合法权益情形后,甲方可以在三个工作日内通过邮件以及书面形式向乙方提出申诉,乙方会参考申诉内容综合判断甲方是否存在侵犯他人合法权益的情形,但是申诉内容不会影响乙方最终进行自己的独立判断和采取相关措施。若乙方按照上述条款、本协议的其他相关约定或因甲方违反相关法律的规定,对甲方或甲方的游戏采取任何行为或措施,所引起的纠纷、责任等一概由甲方自行负责,造成甲方损失的,应由甲方自行全部承担,造成乙方或他人损失的,甲方也应自行承担全部责任,包括但不限于罚款、律师费、取证费、和解费用及法院判决的赔偿金额。

16.2.3 如因甲方未按照国家法律法规的规定就游戏履行登记、审批、备案等手续,给乙方造成损失的,甲方应当给予的赔偿,包括但不限于乙方因此遭受的实际损失、罚款等。

16.3 未经乙方许可增加支付服务或植入广告的违约责任

16.3.1 甲方在合作期间不得进行任何如下违规操作:

16.3.1.1通过升级等手段在游戏内设置非乙方支付渠道或诱导用户使用非乙方支付渠道;

16.3.1.2通过升级等手段强制用户切换非乙方游戏包下载或诱导用户到其他非乙方渠道下载游戏包;

16.3.2在未经乙方同意情况下在游戏内植入广告;

若甲方违反本条约定的,乙方有权采取以下一项或多项权利:

(1)甲方应按照乙方实际损失的2倍或人民币30万向乙方支付违约金,以较高者为准;乙方有权在甲方应得分成中先行扣减,不足部分甲方仍应支付;

(2)乙方有权将违反本合同约定的游戏包进行下架处理,若涉及用户退款,费用由甲方承担,乙方有权在甲方应得分成中扣减,不足部分甲方应予补足;

(3)乙方有权以单方终止本协议;

16.4 违反客户服务条款的违约责任

甲方违反本协议第11条项下之约定,乙方有权要求甲方在60分钟内予以整改并符合协议要求,否则乙方有权扣除甲方当月甲方分成收入的10%作为违约金。

16.5 一般违约责任

任何一方直接或间接违反本协议的任何条款,或不承担或不及时、充分地承担本协议项下其应承担的义务(即瑕疵履行),构成一般违约行为。守约方有权以书面通知违约方纠正其违约行为并采取充分、有效、及时的措施消除违约后果。违约方必须进行对瑕疵履行进行恢复原状或完整性补救,在违约方进行恢复原状或完整性补救的期间,需向守约方支付按当月应结算费用0.3%/天作为违约金。若违约行为超过30天未纠正,守约方有权解除合同,并要求违约方赔偿因此而产生的一切损失,包括但不限于因维权而支付的律师费、诉讼费、调查费、差旅费等。

17 不可抗力因素与情事变迁原则

17.1 不可抗力的定义

本协议中的不可抗力是指法定的不可抗力因素,即根据《中华人民共和国民法典》及相关最高人民法院司法解释所列之不可抗力因素。

17.2 不可抗力的处理

因出现不可抗力,导致任何一方无法行使或履行本协议项下之权利或义务时,在不可抗力相关事态存续的期间内,该方将不承担责任。但是该方有义务在二十四(24)小时内以书面形式通知另一方,并在十(10)日内以书面形式向对方送达受影响一方事故发生地点的有关政府机构或新闻媒体的证明文件证明事故的存在,方可免责。如因不可抗力因素的出现而导致本协议的无法履行或履行显失公平的,双方协商解决。

17.3 不可抗力的减损义务约定

在本协议期间内发生不可抗力的情况下,乙方及甲方应通过另行协议寻求合理的解决方案,同时,受影响一方应尽最大努力使不可抗力造成的负面影响减到最低。

17.4 情事变迁原则

当本协议签订生效后,在甲乙双方正常履行时发生了本协议不能预见的根本性变化的情况,令本协议不能履行或履行显失公平(即法定的情事变更原则),则在甲乙双方共同确认了该法律事实后,本协议可通过甲乙双方书面协商一致进行必要的可行性变更,如果甲乙双方未能达成上述协商一致,本协议即告终止,甲乙双方无须就该法律事实向对方承担违约责任。

18 争议解决

18.1 诉讼

凡因执行本协议所发生的,或与本协议有关的一切争议,双方应首先通过友好协商解决,如果协商不能解决,可以向乙方注册地法院提起民事诉讼。

18.2 履行与解释的适用

本协议的履行、解释均仅适用中华人民共和国现行有效的法律法规。

19 其它约定

19.1 非过错性解除本协议的条件

甲乙双方协商一致,并通过书面方式确定解除;

一方拥有的相关从业资格被政府行政部门取消或注销;

本协议到期;

任何一方主体因法定原因受到国家司法或行政机构的介入而导致权利受限,甚至主体资格灭失。

19.2 协议变更方式

乙方有权在必要时通过在网页上发出公告、规则等合理方式修改本协议条款以及补充协议的相关条款。甲方在使用乙方提供的技术服务时,应当及时查阅了解修改的内容,并自觉遵守本协议条款以补充协议的相关条款。甲方如继续使用本协议条款涉及的服务,则视为对修改内容的同意,当发生有关争议时,以最新的协议条款为准。甲方在不同意修改内容的情况下,有权停止使用本协议条款涉及的服务。

19.3 协议期限及优先合作

本协议自甲方点击同意之日生效,至双方履行完毕约定义务之日终止。

甲乙双方一致同意,本协议(不包含《服务单》)若有变更,以乙方平台发布的最新版本为准,无需双方重新签字盖章,最新版本对甲乙双方均有约束力。

就本协议或《服务单》所涉游戏乙方有优先合作权,并且保证所有游戏的更新版本(包括但不限于灰度、内测、公测版本、首发版本等)应当优先在九游开放平台所发布,本协议项下的游戏版本不迟于甲方及其他第三方在内的任何合作渠道、平台或网站。若甲方违反本条约定,乙方有权要求甲方按照乙方实际损失的2倍或人民币100万向乙方支付违约金,以较高者为准;乙方有权在甲方应得分成中先行扣减,不足部分甲方仍应支付;若涉及用户退款,费用由甲方承担,乙方有权在甲方应得分成中扣减,不足部分甲方应予补足。