简介

APK 文件只能包含一个 AndroidManifest.xml 文件,但 Android Studio 项目可以包含多个文件(通过主源集、构建变体和导入的库提供)。因此,在构建应用时,Gradle 构建会将所有清单文件合并到一个封装到 APK 的清单文件中。

清单合并工具通过遵循某些合并启发式算法,并遵守您通过特殊 XML 属性定义的合并首选项,来合并各个文件中的所有 XML 元素 。 本页介绍清单合并的工作方式以及如何应用合并首选项来解决合并冲突。

合并优先级

合并工具根据每个清单文件的优先级将所有清单文件按顺序合并到一个文件中。 例如,如果您有 3 个清单文件,则会先将优先级最低的清单合并到优先级第 2 高的清单中,然后再将合并后的清单合并到优先级最高的清单中(如图 1 所示)。

这里写图片描述
图 1. 合并 3 个清单 文件(从优先级最低的文件(左)合并至优先级最高的文件(右))的流程

有 3 种基本的清单文件可以互相合并,它们的合并优先级如下(按优先级由高到低的顺序):

1、清单文件构建变体
如果您的变体有多个源集,则其清单优先级如下:

  1. 构建变体清单(如 src/demoDebug/)
  2. 构建类型清单(如 src/debug/)
  3. 产品定制清单(如 src/demo/)
    如果您使用的是定制维度,清单优先级将与每个维度在 flavorDimensions 属性中的列示顺序(按优先级由高到低的顺序排列)对应。

2、应用模块的主清单文件
3、所包括库中的清单文件
如果您有多个库,则其清单优先级与依赖顺序(库出现在 Gradle dependencies 块中的顺序)匹配。

注:这些是对所有源集都相同的合并优先级,如使用源集构建 中所述。

重要说明: build.gradle 文件中的构建配置将替换合并清单文件中的任何对应属性。 例如,build.gradle 文件中的minSdkVersion 将替换 清单元素中的匹配属性。 为了避免混淆,您只需省去 元素并在 build.gradle 文件中定义这些属性。

合并冲突启发式算法

合并工具可以在逻辑上将一个清单中的每个 XML 元素与另一个清单中的对应元素相匹配。

如果优先级较低的清单中的元素与优先级较高的清单中的任何元素均不匹配,则该元素将被添加至合并清单。 但是,如果有匹配元素,则合并工具会尝试将其中的所有属性合并到相同元素中。如果工具发现两个清单包含相同属性,但值不相同,则会出现合并冲突。

表 1 描述合并工具尝试将所有属性合并到同一元素时可能出现的结果。
表 1. 属性值的默认合并行为
这里写图片描述

但是,在某些情况下,合并工具会采取其他行为方式以避免合并冲突

  • 元素中的属性绝不合并—仅使用优先级最高的清单中的属性。
  • android:required 属性 > and 元素使用 OR 合并,因此如果出现冲突,系统将应用 “true” 并始终包括某个清单所需的功能或库。
  • 元素始终使用优先级较高的清单中的值,但以下情况除外:
  • 绝不会在清单之间匹配 元素。 每个元素都被视为唯一元素,并添加至合并清单中的常用父元素。
  • 元素始终使用优先级较高的清单中的值,但以下情况除外:

  1. 如果低优先级清单的 minSdkVersion 值较高,除非您应用 overrideLibrary 合并规则。
  2. 如果低优先级清单的 targetSdkVersion 值较低,合并工具将使用高优先级清单中的值,但也会添加任何必要的系统权限,以确保所导入的库继续正常工作(适用于较高的 Android 版本具有更多权限限制的情况)。 如需了解有关此行为的详细信息,请参阅有关隐式系统权限的部分。

对于属性之间的所有其他冲突,您将收到一则错误,并且必须通过在高优先级清单文件中添加特殊属性来指示合并工具如何解决此错误

不依赖于默认属性值。由于所有唯一属性都合并到相同元素中,如果高优先级清单实际上依赖于属性的默认值而不需要声明,则可能会导致意外结果。例如,如果高优先级清单不声明android:launchMode 属性,则会使用 “standard” 的默认值;但如果低优先级清单声明此属性具有其他值,该值将应用于合并清单(替代默认值)。因此,您应该按期望明确定义每个属性。

合并规则标记

合并规则标记是一个 XML 属性,可用于表达您对关于如何解决合并冲突或删除不需要的元素和属性的首选项。 您可以对整个元素或只对元素中的特定属性应用标记。

合并两个清单文件时,合并工具会在高优先级清单文件中寻找这些标记。

所有标记均属于 Android tools 命名空间,因此您必须先在 元素中声明此命名空间,如下文所示:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapp"xmlns:tools="http://schemas.android.com/tools">

节点标记

要向整个 XML 元素(给定清单元素中的所有元素及其所有子标记)应用合并规则,请使用以下属性:

tools:node=”merge”

如果使用合并冲突启发式算法时没有冲突,则合并此标记中的所有属性以及所有嵌套元素。这是元素的默认行为。

低优先级清单:

<activity android:name=”com.example.ActivityOne”android:windowSoftInputMode=”stateUnchanged”><intent-filter><action android:name="android.intent.action.SEND" /><category android:name="android.intent.category.DEFAULT" /></intent-filter>
</activity>

高优先级清单:

<activity android:name=”com.example.ActivityOne”android:screenOrientation=”portrait”tools:node="merge”>
</activity>

合并的清单结果:

<activity android:name=”com.example.ActivityOne”android:screenOrientation=”portrait”android:windowSoftInputMode=”stateUnchanged”><intent-filter><action android:name="android.intent.action.SEND" /><category android:name="android.intent.category.DEFAULT" /></intent-filter>
</activity>

tools:node=”merge-only-attributes”
仅合并此标记中的属性,不合并嵌套元素。
Low priority manifest:

<activity android:name=”com.example.ActivityOne”android:windowSoftInputMode=”stateUnchanged”><intent-filter><action android:name="android.intent.action.SEND" /><data android:type="image/*" /><category android:name="android.intent.category.DEFAULT" /></intent-filter>
</activity>

高优先级清单:

<activity android:name=”com.example.ActivityOne”android:screenOrientation=”portrait”tools:node="merge-only-attributes”>
</activity>

合并的清单结果:

<activity android:name=”com.example.ActivityOne”android:screenOrientation=”portrait”android:windowSoftInputMode=”stateUnchanged”>
</activity>

tools:node=”remove”
从合并清单中删除此元素。 尽管您似乎应该仅删除此元素,但如果您发现合并清单中有不需要的元素,则必须使用此选项。该选项由不受您控制的低优先级清单(如导入的库)提供。

Low priority manifest:

<activity-alias android:name=”com.example.alias”><meta-data android:name=”cow”android:value=”@string/moo”/><meta-data android:name=”duck”android:value=”@string/quack”/>
</activity-alias>

高优先级清单:

<activity-alias android:name=”com.example.alias”><meta-data android:name=”cow”tools:node=”remove”/>
</activity-alias>

合并的清单结果:

<activity-alias android:name=”com.example.alias”><meta-data android:name=”duck”android:value=”@string/quack”/>
</activity-alias>

tools:node=”removeAll”

与 tools:node=”remove” 类似,但它会删除与此元素类型相匹配的所有元素(同一父元素内)。

Low priority manifest:

<activity-alias android:name=”com.example.alias”><meta-data android:name=”cow”android:value=”@string/moo”/><meta-data android:name=”duck”android:value=”@string/quack”/>
</activity-alias>

高优先级清单:

<activity-alias android:name=”com.example.alias”><meta-data tools:node=”removeAll”/>
</activity-alias>

合并的清单结果:

<activity-alias android:name=”com.example.alias”>
</activity-alias>

tools:node=”replace”
完全替换低优先级元素。 也就是说,如果低优先级清单中有匹配元素,请将其忽略并完全按照其在此清单中显示样子来使用该元素。

Low priority manifest:

<activity-alias android:name=”com.example.alias”><meta-data android:name=”cow”android:value=”@string/moo”/><meta-data android:name=”duck”android:value=”@string/quack”/>
</activity-alias>

高优先级清单:

<activity-alias android:name=”com.example.alias”tools:node=”replace”><meta-data android:name=”fox”android:value=”@string/dingeringeding”/>
</activity-alias>

合并的清单结果:

<activity-alias android:name=”com.example.alias”><meta-data android:name=”fox”android:value=”@string/dingeringeding”/>
</activity-alias>

tools:node=”strict”

当此元素在低优先级清单中的情况与在高优先级清单中的情况不完全匹配时生成构建故障(除非已通过其他合并规则标记解决)。
这将替换合并冲突启发式算法。 例如,如果低优先级清单仅包括额外属性,则构建将会失败(而默认行为会向合并清单添加额外属性)。

Low priority manifest:

<activity android:name=”com.example.ActivityOne”android:windowSoftInputMode=”stateUnchanged”><intent-filter><action android:name="android.intent.action.SEND" /><category android:name="android.intent.category.DEFAULT" /></intent-filter>
</activity>

High priority manifest:

android:windowSoftInputMode=”stateUnchanged”><intent-filter><action android:name="android.intent.action.SEND" /><category android:name="android.intent.category.DEFAULT" /></intent-filter>
</activity>
High priority manifest:<activity android:name=”com.example.ActivityOne”android:screenOrientation=”portrait”tools:node="strict”>
</activity>

这会生成清单合并错误。两个清单元素在严格模式下也完全无法区分。 因此,您必须应用其他合并规则标记来解决这些差异。 (通常,这两个元素会完全地合并在一起,如以上 tools:node=”merge” 示例所示)。

属性标记

要改为仅向清单标记中的特定属性应用合并规则,请使用以下属性。每个属性接受一个或多个属性名称(包括属性命名空间),并以逗号分隔。

Low priority manifest:

<activity android:name=”com.example.ActivityOne”android:windowSoftInputMode=”stateUnchanged”>

高优先级清单:

<activity android:name=”com.example.ActivityOne”android:screenOrientation=”portrait”tools:remove=”android:windowSoftInputMode”>

合并的清单结果:

<activity android:name=”com.example.ActivityOne”android:screenOrientation=”portrait”>

tools:replace=”attr, …”

将低优先级清单中的指定属性替换为 此清单中的属性。 换言之,始终保持 高优先级清单的值。

Low priority manifest:

<activity android:name=”com.example.ActivityOne”android:theme=”@oldtheme”android:exported=”false”android:windowSoftInputMode=”stateUnchanged”>

高优先级清单:

<activity android:name=”com.example.ActivityOne”android:theme=”@newtheme”android:exported=”true”android:screenOrientation=”portrait”tools:replace=”android:theme,android:exported”>

合并的清单结果:

<activity android:name=”com.example.ActivityOne”android:theme=”@newtheme”android:exported=”true”android:screenOrientation=”portrait”android:windowSoftInputMode=”stateUnchanged”>

tools:strict=”attr, …”

当这些属性在低优先级清单中的情况与 在高优先级 清单中的不完全匹配时生成构建故障。 这是所有属性的默认行为,具有 合并冲突启发式算法中介绍的特殊行为的属性除外

Low priority manifest:

activity android:name=”com.example.ActivityOne”android:screenOrientation=”landscape”>
</activity>

High priority manifest:

<activity android:name=”com.example.ActivityOne”android:screenOrientation=”portrait”tools:strict="android:screenOrientation”>
</activity>

这会生成清单合并错误。 您必须应用其他合并规则标记来解决冲突。 (请谨记:这是默认行为,因此如果您删除 tools:strict=”screenOrientation”,上面的示例将具有相同的结果。)

您也可以对一个元素应用多个标记,如下所示。

Low priority manifest:

<activity android:name=”com.example.ActivityOne”android:theme=”@oldtheme”android:exported=”false”android:allowTaskReparenting="true"android:windowSoftInputMode=”stateUnchanged”>

高优先级清单:

<activity android:name=”com.example.ActivityOne”android:theme=”@newtheme”android:exported=”true”android:screenOrientation=”portrait”tools:replace=”android:theme,android:exported”tools:remove=”android:windowSoftInputMode”>

Merged manifest result:

<activity android:name=”com.example.ActivityOne”android:theme=”@newtheme”android:exported=”true”android:allowTaskReparenting="true"android:screenOrientation=”portrait”>

标记选择器

如果您想仅对某个特定的导入库应用合并规则标记,请添加具有库包名称的 tools:selector 属性。

例如,对于下面的清单,仅在低优先级清单文件来自 com.example.lib1 库时应用 remove 合并规则。

<permission android:name="permissionOne"tools:node="remove"tools:selector="com.example.lib1">

如果低优先级清单来自其他源,系统将会忽略 remove 合并规则。

对于所导入库,将替换

默认情况下,导入 minSdkVersion 值高于主清单文件的库时会出错,

而且无法导入该库。 要使合并工具忽略此冲突并导入库,同时保持应用的低 minSdkVersion 值,请将 overrideLibrary 属性添加至 标记。属性值可以是一个或多个库包名称(以逗号分隔),指明可能替换主清单的 minSdkVersion 的库。

例如,如果应用的主清单按如下所示应用 overrideLibrary:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.app"xmlns:tools="http://schemas.android.com/tools"><uses-sdk android:targetSdkVersion="22" android:minSdkVersion="2"tools:overrideLibrary="com.example.lib1, com.example.lib2"/>
...

则一下清单可以合并,并且不会出现与 <uses-sdk> 标记相关的错误,合并清单将保留应用清单中的 minSdkVersion=”2”。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.lib1"><uses-sdk android:minSdkVersion="4" />
...

隐式系统权限

在最近的 Android 版本中,应用曾经可以自由访问的某些 Android API 已受 系统 权限限制。 为了避免中断预期会访问这些 API 的应用,最近的 Android 版本允许应用在无权限的情况下继续访问这些 API,前提是它们已将 targetSdkVersion 设置为低于添加限制的版本的值。此行为有效地向应用授予了隐式 权限,以允许访问 API。 因此,这可能会对具有不同 targetSdkVersion 值的合并清单产生以下影响。

如果低优先级清单文件提供隐式权限的 targetSdkVersion 值较低,而且高优先级清单没有相同的隐式权限(由于其 targetSdkVersion 等于或高于添加限制的版本),合并工具将向合并清单显式添加系统权限。

例如,如果您的应用将 targetSdkVersion 设置为 4 或更高值,并且导入了将 targetSdkVersion 设置为 3 或更低值的库,合并工具会将 WRITE_EXTERNAL_STORAGE 权限添加至合并清单。 表 2 列出了可以添加至合并清单的所有可能权限。

注:如果您将应用的 targetSdkVersion 设置为 23 或更高值,则必须在应用尝试访问受这些权限保护的 API 时为任何危险权限执行运行时权限请求。 如需获得更多指导

表 2. 合并工具可添加至合并清单的权限列表

targetSdkVersion 是 3 或更低值
这里写图片描述

会检查合并清单并查找冲突

即使在构建 APK 之前,也可以预览合并清单,具体方法是:在 Android Studio 中打开您的 AndroidManifest.xml 文件,然后单击编辑器底部的 Merged Manifest 选项卡。

Merged Manifest 视图在左侧显示合并清单的结果,在右侧显示每个合并清单文件的相关信息,如图 2 所示。从低优先级文件中合并的元素在左侧以不同颜色突出显示。 每种颜色的关键字在右侧的 Manifest Sources 下方指定。

这里写图片描述

属于构建的一部分但不构成元素或属性的清单文件列在右侧的 Other Manifest Files 下方。

要查看有关元素来源的信息,请在左侧单击元素,详细信息将显示在右侧的 Merging Log 下方。

如果发生任何冲突,它们将显示在右侧的 Merging Errors 下方,并且包含有关如何使用 合并规则标记解决冲突的建议。 错误也会 打印在 Event Log 窗口(请选择 View > Tool Windows > Event Log)中。

如果您想要查看合并决策树的完整日志,则可以在模块的 build/outputs/logs/ 目录(名为 manifest-merger-buildVariant-report.txt)中查找该日志文件。

附录:合并策略

清单合并工具可以在逻辑上将某个清单中的每个 XML 元素与其他清单中的对应元素相匹配。 合并工具会使用“匹配关键字”匹配每个元素,匹配关键字可以是唯一的属性值(如 android:name或标记本身的天然唯一性(例如,只能有一个 元素)。 如果两个清单具有相同的 XML 元素,工具将采用三种合并策略中的一种来合并这两个元素:

1、合并

将所有非冲突属性合并到同一标记中, 然后按其各自的合并策略合并子元素。 如果任何属性 相互冲突,请使用合并规则标记将它们合并在一起。

2、仅合并子项

不整合或合并属性(仅保留 优先级最高的清单文件提供的属性)并按照其合并策略 合并子项。
3、保留
将元素“按原样”保留,然后将其添加至 合并文件中的常用父元素。 此策略仅在可接受相同元素的多个 声明时使用。

表 3. 清单元素合并策略和 合并关键字
拷贝

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 病毒分析——静态特征分析 及 动态行为分析

    一、静态特征分析 1、上传漏洞平台检测(简单实用的方法,但是这也仅供一个参考,尽量还是要自己去分析): 常用检测平台:微步在线、VT等可查看评论是否有安全专家分析结果,可查看可疑行为进行初步分析;若有报FSG壳病毒:Packer.FSG.A,可能加了FSG壳,exeinfo可能查不到壳,…...

    2024/4/17 12:36:48
  2. 使用vue-element-admin框架调用后端接口及跨域问题

    前言 vue-element-admin 官方git地址 https://github.com/PanJiaChen/vue-element-admin 进行开发需要调用外部接口, 而且还涉及到跨域的问题, 百度出来的全部都是说在config目录加proxyTable…emmm是拉同一个项目吗大兄弟, 哪来的config目录 解决 随便写一个测试接口 from fl…...

    2024/4/17 3:04:57
  3. Cocos2dx游戏开发笔记21:动手学习《Flappy Bird》

     懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 ) 《Flappy Bird》关于这个游戏骨头不多说了 直接开始学习吧(山寨不好听) 正好前段时间看了几个DEMO拿这个游戏练练手 开搞!报环境: vs2013+cocos2dx3.0beta2 首先下载apk,找到资源文件,裁剪几个图片:用脚…...

    2024/4/17 12:36:18
  4. 编译时没有任何错误,但是运行时就是提示“应用程序正常初始化失败”!!

    1. VC2003、 VC2005、 VC2008及其后续版本,对底层最基本的 CRT、 MFC、 ATL库都进行了重构,为了避免不同版本的库引起冲突,重构后的库文件一般放在C://windows/WinSxS 文件夹中 ,并用特定的文件夹 /文件名称进行标识;2. 与 VC6不同 , VC2003、 VC2005、 VC2008及其后续版本…...

    2024/4/11 14:56:06
  5. 二叉查找树(Binary Search Tree)的python实现及算法分析

    二叉查找树(BST) 特点:比父节点小的key都出现在左子树,比父节点大的key都出现在右子树。二叉查找树的python实现 class BinarySearchTree(object): def __init__(self, key): ##初始化self.key = keyself.left = Noneself.right = Nonedef find(self, x): if x == s…...

    2024/4/17 12:36:07
  6. 根据中文字符串查询拼音声母

    #region 汉字首字母列表 private static string[] strChineseCharList = { "A阿啊锕嗄厑哎哀唉埃挨溾锿鎄啀捱皑凒溰嘊敳皚癌毐昹嗳矮躷噯藹譪霭靄艾伌爱砹硋隘嗌塧嫒愛碍暧瑷僾壒嬡懓薆曖璦鴱皧瞹馤鑀鱫安侒峖桉氨庵谙萻腤鹌蓭誝鞌鞍…...

    2024/4/17 12:38:18
  7. linux shell实现URL 编码/解码

    (1)编码的两种方法june@~ 23:40:29>echo 手机 | tr -d \n | xxd -plain | sed s/\(..\)/%\1/g june@~ 23:40:29>echo 手机 |tr -d \n|od -An -tx1|tr %(2)解码的两个步骤:june@~ 23:50:11>url="要解码的URL地址"june@~23:50:11> printf $(ech…...

    2024/4/17 12:38:01
  8. 自动建库的安装程序制作方法

    <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&…...

    2024/4/19 21:36:06
  9. VC实现URL编解码

    //转换UTF8为中文 void UTF8ToGB(CString& szstr) {WCHAR* strSrc;TCHAR* szRes;int i = MultiByteToWideChar(CP_UTF8, 0, szstr, -1, NULL, 0);strSrc = new WCHAR[i + 1];MultiByteToWideChar(CP_UTF8, 0, szstr, -1, strSrc, i);i = WideCharToMultiByte(CP_ACP, 0, st…...

    2024/4/12 11:11:30
  10. [android]快速查看apk内androidmanifest文件内容

    aapt dump xmltree xxxx.apk AndroidManifest.xml...

    2024/4/17 12:38:32
  11. inno setup软件--教你如何制作一个漂亮的安装程序

    当我们制作好一个课件或程序的时候就会想给它做漂亮的安装程序,特别是用AUTHORWARE制作的课件,由于必须把XTRAS目录下相关的文件与可执行文件一起提供,这时我们就需要给课件制作安装程序。而且制作的安装程序应该能够进行反安装、能在桌面放置快捷图标、能在程序组创建组,最…...

    2024/4/13 0:57:35
  12. Asp.Net Core WebApi 身份验证、注册、用户管理

    Asp.Net Core WebApi身份验证、注册、用户管理用户服务用户实体、用户模型及数据上下文应用程序设置文件在Startup.cs中配置身份验证参考文献 用了两天的时间研究了在Asp.Net WebApi 项目中如何实现注册、登录、身份验证功能。此项目使用JWT(Json Web Token)来进行身份验证。…...

    2024/4/17 12:38:19
  13. 【Python成长之路】如何用2行代码将抖音视频设置成我的手机铃声

    哈喽大家好,我是鹏哥。今天想学习记录的内容是 —— 如何用python提取视频中的音频。~~~上课铃~~~1写在前面本来按我的性子和精力,一周一般只想写一篇博客;但是今天在刷抖音时,发现有个弹吉他的视频超级好听(抖音号:李森茂Sam),很想把它设置成我的手机铃声。但是我又不…...

    2024/4/17 12:37:01
  14. URL传递中文参数的编码与解码方式探讨

    URL传递中文参数时的几种处理方式,总结如下:1.将字符串转码:newString(“xxxxx”.getBytes("iso-8859-1"),"utf-8")这种转码方式有很大的弊端,因为它是使用指定的字符集将此String编码为byte 序列,并将结果存储到一个新的byte 数组中,然后通过使用指…...

    2024/4/17 12:38:07
  15. repo sync配合manifest下载旧版本代码

    有时为了复现问题,我们需要对前几天代码仓库中的代码打包 将当天打包用的manifest文件放到任何一套代码下的.repo/manifests/里面,假设这个文件名为pre_version.xml 然后执行 repo init -m pre_version.xml 接下来我们用命令 ll .repo/manifest.xml 查看打包所用的manifset,…...

    2024/4/17 12:36:54
  16. GBK

    GBK 汉字内码扩展规范编码表(二)全国信息技术标准化技术委员会汉字内码扩展规范(GBK)Chinese Internal Code Specification1.0 版(按分类顺序排列) ● GBK/1: GB2312非汉字符号 A1 0 1 2 3 4 5 6 7 8 9 A B C D E F A    、 。 ˉ ˇ 〃 々 — ~ ‖ ……...

    2024/4/17 12:38:01
  17. NSIS制作软件安装包

    NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。这如其名字所指出的那样,NSIS 是通过它的脚本语言来描述安装程序的行为和逻辑的。NSIS 的脚本语言和通常的编程语言有类似的结构和…...

    2024/4/17 12:38:07
  18. laravel API 如何写路由,如何测试

    仅作为我的记录。希望顺便也能帮到你 背景:laravel-admin框架。开发中我调用别人url 请求数据。别人也要调用我的借口,给我传递数据 那么问题来了!新手都是在项目下控制器里写逻辑代码,你请求别人没啥问题。别人请求你就会遇到登录拦截的问题。怎么办? laravel路由的文档一…...

    2024/4/17 12:38:25
  19. 【转】冒险岛私服架设教程(一) 试玩

    《冒险岛》是我接触得比较早的大型网游,也是印象最深刻的一个网游,它画面精美,背景音乐好听,我最喜欢这类游戏了。 记得那年是初三毕业,因为电脑配置低,基本上只玩《QQ堂》这种游戏。后来一次偶然的机会安装了冒险岛,一直玩到高一高二。不过我不是玩游戏的料,一两年…...

    2024/4/17 12:38:24
  20. [html5]离线存储

    H5的一个重要特性就是离线存储,所谓的离线存储就是将一些资源文件保存在本地,这样后续的页面重新加载将使用本地资源文件,在离线情况下可以继续访问web应用,同时通过一定的手法(更新相关文件或者使用相关API),可以更新、删除离线存储等操作; H5的离线存储使用一个manif…...

    2024/4/17 12:37:48

最新文章

  1. 从零开始学习Linux(4)----yum和vim

    1.Linux软件包管理器yum Linux中我们要进行工具/指令/程序&#xff0c;安装&#xff0c;检查卸载等&#xff0c;需要yum的软件 安装软件的方式&#xff1a; 源代码安装---交叉编译的工具rpm包直接安装yum/apt-get yum是我们Linux预装的一个指令&#xff0c;搜索&#xff0c;下…...

    2024/4/19 22:19:50
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. CrossOver玩游戏会损害电脑吗 CrossOver玩游戏会卡吗 Mac玩游戏 crossover24免费激活

    CrossOver是一款可以在macOS上运行Windows应用程序的软件&#xff0c;它利用了Wine技术&#xff0c;无需安装虚拟机或双系统&#xff0c;可以直接在苹果系统下运行Windows游戏。那么&#xff0c;使用CrossOver玩游戏会损害电脑吗&#xff1f;CrossOver玩游戏会卡吗&#xff1f;…...

    2024/4/17 10:00:41
  4. 金融数据_PySpark-3.0.3决策树(DecisionTreeClassifier)实例

    金融数据_PySpark-3.0.3决策树(DecisionTreeClassifier)实例 逻辑回归: 逻辑回归常被用于二分类问题, 比如涨跌预测。你可以将涨跌标记为类别, 然后使用逻辑回归进行训练。 决策树和随机森林: 决策树和随机森林是用于分类问题的强大模型。它们能够处理非线性关系, 并且对于特…...

    2024/4/18 9:17:38
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/19 14:24:02
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/19 18:20:22
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/19 11:57:31
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/19 11:57:31
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/19 11:57:52
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/19 11:57:53
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/19 11:58:14
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/19 11:58:20
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/19 11:58:32
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/19 11:58:39
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/19 11:58:51
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/19 18:09:34
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/19 11:59:15
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/19 11:59:23
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/19 11:59:44
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/19 11:59:48
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/19 12:00:06
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/19 16:57:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/19 12:00:25
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/19 12:00:40
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57