1. 插件代码都是现有业务代码,不能因为接入插件框架而需要修改代码(即需要插件框架无代码侵入性)。
  2. 在宿主的AndroidManifest.xml中只能注册有限数量(大约10个)的组件。宿主AndroidManifest过大会使宿主安装变慢,跨进程通信出错。
  3. 不能使用非公开API。

大方向的选择

其实我们早就在用一款也是基于代理组件转调插件组件的插件框架了。只不过这款插件框架用到了大量反射使用私有API,眼看着是不可能再Android 9.0上继续使用了。我们也调研了外界口碑最好的RePlugin。所以大概就这两种方向,一是用代理Activity作为壳子注册在宿主中真正运行起来,然后让它持有插件Activity,想办法在收到系统的生命周期方法调用时转调插件Activity的对应生命周期方法。二是Hack修改宿主PathClassLoader,让它能在收到系统查询AndroidManifest中注册的Activity的类时返回插件的Activity类。

方法二就是RePlugin的关键技术。它利用了JVM的特性。我也不太肯定这算不算是bug,总之ClassLoader的loadClass方法返回的实际类可以和它被要求加载的类名字不一样。举个例子,宿主的AndroidManifest.xml注册一个Activity名叫A,插件里有一个Activity名叫B。宿主代码或者apk中最终是没有A这个类的,只有在AndroidManifest中注册的一个名字而已。当想要加载插件Activity B时,就发出一个启动Activity A的Intent。系统收到这个Intent后会检查宿主安装的AndroidManifest信息,从中确定A是哪个apk安装的,就会找到宿主的PathClassLoader。然后系统就会试图从PathClassLoader中加载A这个类,然后作为Activity类型的对象使用(这很正常)。所以如果我们把宿主的PathClassLoader给Hack了,控制它的加载逻辑,让它收到这个加载调用时实际返回的是插件Activity B的类。由于B也真的是Activity的子类,所以系统拿回去当作Activity类型使用没有任何问题。这里再扩展一下,如果类C继承自类A,在加载C时也会去加载A,如果这时拿B当A返回的话,C收到B之后是会发现B的名字不是A而出错的。关于RePlugin这段关键技术的实现,当时调研时就发现实现的有些麻烦了。RePlugin选择复制一个PathClassLoader,然后替换系统持有的
PathClassLoader。所以复制PathClassLoader需要反射使用PathClassLoader的私有API,拿出来它里面的数据,替换系统持有的PathClassLoader也要反射修改私有API。我们当时已经实现了“全动态插件框架”,其中代理壳子Activity的动态化使用的方法也能解决这个问题,我们的选择是在宿主PathClassLoader上给它加一个parent ClassLoader。因为PathClassLoader也是一个有正常“双亲委派”逻辑的ClassLoader,它加载什么类都会先问自己parent ClassLoader先加载。所以我们加上去的这个parent ClassLoader也能完成RePlugin想要做的事。不过我们用它的目的是不希望壳子Activity打包在宿主占用宿主很多方法数,还不能更新。这一点以后可能再单独讲。关于这个替换实现,最近给RePlugin提了一个PR:github.com/Qihoo360/Re… ,有兴趣的同学可以看一下。

RePlugin的这种方案还有一点非常不适合我们的业务,就是宿主AndroidManifest中注册的“坑位”Activity,就是上面举例的Activity A,是不能同时供多个插件Activity使用的。就是我不能在宿主AndroidManifest中注册一个Activity A,然后让它同时支持插件Activity B和C。这是因为ClassLoader在loadClass的时候,收到的参数只有一个A的类名,我们没有办法传递更多信息,让ClassLoader能在这个loadClass的调用中区分出应该返回B还是应该返回C。所以这种方案需要在宿主中注册大量Activity,这对于我们的宿主来说是不可接受的。而方法一是用代理Activity持有插件Activity转调的方案,就可以在启动代理Activity时通过Intent传递很多参数,代理Activity通过Intent中的参数就能决定该构造一个B还是一个C。这就使得这种方案下壳子是可复用的。

还有一点就是我们在旧框架上就已经设计了“全动态插件框架”,所以基于方法一的方向上开发新插件框架,我们可以不修改宿主的任何代码,不跟宿主版本就能更新插件框架。关于这一点,后续文章再解析。

所以我们探索的方向就这样确定在方法一这个方向上了。

旧框架为什么要用反射、要用私有API?

我们的旧框架就是代理Activity转调插件Activity的方案,市面上还有很多插件框架也是这种方案。大家只是在实现转调的手段上不一样。这里就不深入分析它们都是怎么实现的了,总之就是一个目的,让插件Activity能收到生命周期回调。我们的旧框架和其他一些框架有一种这样的方案,就是让壳子Activity直接反射调用插件Activity对应的生命周期方法。这样做要解决一个额外的问题。

Activity被系统构造出实例之后,并不是直接调用onCreate方法的。首先会调用它的attach方法。attach方法实际上就是Activity的初始化方法,系统通过这个方法向Activity注入一些私有变量,比如Window、ActivityThread等等。插件Activity由于是我们壳子Activity自己new出来的,所以系统不会调用插件Activity的attach方法初始化它。Activity如果没有初始化就被调用了onCreate会有什么问题呢?我们前面说了我们的一个前提是插件Activity要求也要能正常编译安装运行,所以插件Activity的onCreate方法里一定写了super.onCreate()调用。我们还要求对插件代码无侵入性,所以也不能在这个调用外面包一层“if (不是插件模式)"。那么在插件环境下,这个super.onCreate()就一定会执行。Activity基类的onCreate方法就会使用那些应该初始化过的私有变量,但是现在它们没有初始化。所以这一类插件框架方案就要解决这个问题。所以要么是反射调用attach方法,传入从壳子Activity拿到的私有变量,比如说反射出壳子Activity的ActivityThread对象,传给插件Activity的attach方法。要么就干脆直接用反射枚举读写壳子Activity和插件Activity的私有变量,把它们写成一样的完成这个初始化。所以这就是为什么旧框架需要使用反射和私有API。

Shadow如何解决的插件Activity生命周期问题

实际上通过前面的分析,我们发现其实根本不需要插件Activity执行super.onCreate()方法。明确了这个方案原本的目的,就是在宿主中注册并启动一个壳子Activity,这个壳子Activity什么都不自己做,想办法让插件Activity的各个生命周期方法实现代码成为壳子Activity的各个生命周期实现方法的代码。因此我们根本不需要插件Activity是一个系统Activity的子类。我们只是因为需要插件Activity还能正常安装运行,才导致它是一个真正的系统Activity子类的。

我们也知道如果不要求对插件代码无侵入性,也不要求插件能独立安装运行,实际上是可以把让插件Activity不用继承系统Activity了,就简单继承一个普通类就行了。这个普通类上定义一些跟系统Activity类一样的生命周期方法,实现成空实现,然后这些生命周期方法可以设置成public的,这样壳子Activity以这个普通类类型持有插件Activity就可以直接调用插件Activity的生命周期方法了。这样实现既不用反射也不用私有API。

而我们实际上是不需要插件的apk能独立安装运行的,我们希望插件能独立安装运行的本质目的是节省人力,不要维护两套代码。所以看起来,这里只要引入AOP手段,通过AOP编程修改插件Activity的父类,把插件Activity的父类从系统Activity改成我们想要的普通类就行了。

我们先不说这个AOP手段怎么实现,因为问题还没彻底搞清。我们是真的想让A持有B,A收到什么调用就转调B的什么调用吗?这是我们的真正目的吗?不是的。单纯的只是让插件Activity中的super.onCreate()调用失效,并不完美。因为这跟插件Activity正常安装运行时还有点不一样。现在插件Activity的onCreate方法的代码就相当于是壳子Activity的onCreate方法的代码的一部分了。比如:

class ShadowActivity {
public void onCreate(Bundle savedInstanceState) {
}
}

class PluginActivity extends ShadowActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println(“Hello World!”);
}
}

class ContainerActivity extends Activity {
ShadowActivity pluginActivity;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
pluginActivity.onCreate(savedInstanceState);
}
}

上面的ShadowActivity就是我们前面说的普通类。仔细看一下是不是就相当于ContainerActivity原本就实现成这样:

class ContainerActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println(“Hello World!”);
}
}

只要PluginActivity是动态加载的,就相当于ContainerActivity的实现是动态的。但是如果原本PluginActivity的代码是这样的呢?

class PluginActivity extends ShadowActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
savedInstanceState.clear();
super.onCreate(savedInstanceState);
}
}

显然这种代码在正常安装运行时和插件环境运行时就不一样了。因为变成了:
;
super.onCreate(savedInstanceState);
}
}

显然这种代码在正常安装运行时和插件环境运行时就不一样了。因为变成了:

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

相关文章

  1. 感动满满:北京沙龙PPT诚意献上

    编者按:上周六,DBA社群再度与一群热爱学习的小伙伴以及乐于分享的技术大牛欢聚帝都。这一次,除了一如既往的干货连连,更多了一份因热爱而真挚、因分享而快乐的感动。本文是DBA社群联合发起人杨建荣老师于沙龙结束当天写下的回顾感…...

    2024/4/13 22:51:53
  2. java基础巩固-宇宙第一AiYWM:为了维持生计,多高(多线程与高并发)_Part2~整起(线程与进程篇)

    上回打手(线程)由于第一关卡中的三个里屋都被其他打手占用,所以在那等呀等~等呀等,便睡了过去。多高之线程篇,点这里去学一下线程呗 小胡和敏小言:停,你别先给我嘚吧嘚嘚吧嘚唧唧歪歪&#xff0…...

    2024/4/13 22:51:48
  3. openjudge:多少种取法

    描述 给定三个正整数m,n,s问从1到m这m个数里面取n个不同的数&#xff0c;使它们和是s,有多少种取法 输入 多组数据 输入的第一行是整数t&#xff0c;表示有t组数据 此后有t行&#xff0c;每行是一组数据 每组数据就是三个正整数&#xff0c;m,n, s ( n < 10,s < 20) …...

    2024/4/13 22:52:08
  4. 数据结构-线性表(考研篇)

    线性表 定义 具有相同数据类型的n个数据元素的有限序列&#xff08;有次序&#xff09; 几个概念&#xff1a; ai是线性表中“第i个”元素线性表中的位序a1是表头元素&#xff0c;an是表尾元素除第一个元素外&#xff0c;每个元素有且仅有一个直接前驱。除最后一个元素外&a…...

    2024/4/13 22:51:38
  5. 【哈佛大学:计算生物学 生物信息学】学习记录(一)

    第一部分 —— 关于计算生物学 & 生物信息学 & 本课程内容 &#xff08;1&#xff09;Protein Wave 【技术】Sanger测序了一个蛋白质序列 【算法】Needleman-Wunsch algorithm 【数据库】PDB&#xff08;Protein Data Bank&#xff0c;蛋白质3D结构数据库&#xff09…...

    2024/4/20 4:26:14
  6. 回归分析-线性回归-检验-模型

    OLS&#xff1a;最小二乘法 通过预测变量的加权和来预测量化的因变量&#xff0c;其中权重是通过数据估计而得的参数 数据特征&#xff1a;  正态性 对于固定的自变量值&#xff0c;因变量值成正态分布。  独立性 Yi值之间相互独立。  线性 因变量与自变量之间为线性相关…...

    2024/4/13 22:51:48
  7. EasyExcel导出自定义合并单元格 策略 个人理解

    目录 EasyExcel 版本 POI合并单元格--CellRangeAddress 自定义策略 自定义单元格样式 CellStyle&#xff1a; 自定义单元格合并Handler 1. 根据指定的列进行合并 &#xff0c; 向上合并相同内容单元格 2. 根据指定的列进行合并 &#xff0c; 向上合并相同内容单元格 …...

    2024/5/6 6:42:14
  8. 神经网络:前馈和反向传播解释和优化

    深度学习 神经网络&#xff1a;前馈和反向传播解释和优化 什么是神经网络&#xff1f;开发人员应该了解反向传播&#xff0c;以找出他们的代码有时不起作用的原因。反向传播数学的视觉和脚踏实地的解释。 卡斯帕汉森 理学硕士 AI 学生 DTU。这是我的机器学习之旅“从零开始”…...

    2024/4/20 5:51:26
  9. 《前端学习之二 CSS基础|CSDN创作打卡》

    &#x1f4d2;博客首页&#xff1a;男星的博客 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; ❤️ 期待一起交流&#xff01; &#x1f64f;作者水平很有限&#xff0c;如果发现错误&#xff0c;求告知&#xff0c;多谢&#xff01; &#x…...

    2024/4/13 22:51:53
  10. 五、linux学习——重定向和文本处理的命令(编译型和解释型语言、cpython和pypy、标准输入和标准输出、proc和文件描述符)

    1、编译型和解释型的区别 编译型&#xff1a;一次性编译成二进制文件&#xff0c;然后去执行二进制文件&#xff0c;跟源代码文件没有关系了。源代码文件进行了修改&#xff0c;必须要重新编译&#xff0c;生成新的二进制文件&#xff0c;然后执行新的二进制文件。 解释型&am…...

    2024/4/13 22:51:48
  11. 【RPA之家转载】深化RPA应用助力提质增效

    RPA之家&#xff08;RPA之家|RPA|RPA新闻|RPA案例|RPA应用|RPA咨询|RPA培训|RPA认证|RPA教程&#xff09;是中国具有影响力的RPA垂直交流社区&#xff0c;社区汇聚了RPA领域的各类从业人员。其中包括RPA开发工程师、售前工程师、业务分析师、架构师、运维工程师、项目管理、项目…...

    2024/4/13 22:51:38
  12. 【2-1链表】链表数据结构分析总结

    转公众号&#xff1a;代码随想录 什么是链表&#xff0c;链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点是又两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后一个节点的指针域指向null&…...

    2024/4/18 10:37:32
  13. CSDN~BLOG目录

    目中目|录中录网站&#xff08;收藏夹&#xff09;【网站汇总】安装教程系列【网站汇总】一些OJ平台【网站汇总】杂计算机视觉【CV】Anaconda安装教程【CV】Python下载安装及环境变量配置教程【CV】OpenCV&#xff08;基于Python&#xff09;学习笔记嵌入式【网站汇总】单片机常…...

    2024/4/7 18:48:37
  14. Excel(1)

    Excel使用(1) 十五舟中人 一&#xff0e;工作簿的新建&#xff0c;打开和保存 1.创建工作簿文件 文件&#xff0c;新建工作簿 点击主页面空白处新建 2.打开工作簿文件 文件&#xff0c;打开工作簿 CtrlO 3.保存工作簿文件 文件&#xff0c;保存或另存为 二&#xff0e;工作表的…...

    2024/4/13 22:52:39
  15. c++,stl容器,疑难未解问题:容器的sort排序算法传入的排序规则必须是<,>,而不能是<=,>=,否则运行报错,注意规避

    c&#xff0c;stl容器&#xff0c;疑难未解问题&#xff1a;容器的sort排序算法传入的排序规则只能是<,>&#xff0c;而不能是<,>&#xff0c;否则运行报错 问题&#xff1a; vector容器中&#xff0c;传入给sort排序函数的判断中如果是<,>这种&#xff0c;…...

    2024/4/13 22:52:54
  16. C语言—打印菱形,过程分析非常详细

    如何打印菱形&#xff0c;过程分析非常详细 思路&#xff1a; 要打印这个图形&#xff0c;我们应该一行行得去打印&#xff0c;每一行先打印空格&#xff0c;再打印星号&#xff0c;比如&#xff0c;第一行我们应该先打印3个空格再打印1个星号。 我们可以发现前四行空格数在减少…...

    2024/4/13 22:52:49
  17. 遇见Python | Day 12 字符串

    一、处理字符串 介绍Python提供的写入、打印和访问字符串的一些方法。 1、字符串字面量 在Python中&#xff0c;字符串的输入很简单&#xff0c;以单引号开始和结束。 2、双引号 考虑到要在字符串中使用单引号&#xff0c;但是输入Thats cool.是不行的&#xff0c;因为Pyth…...

    2024/4/13 22:52:34
  18. 1077 Kuchiguse

    1077 Kuchiguse The Japanese language is notorious for its sentence ending particles. Personal preference of such particles can be considered as a reflection of the speaker’s personality. Such a preference is called “Kuchiguse” and is often exaggerated …...

    2024/4/13 22:53:04
  19. javaScript 联系题(简易计算器)

    创建网页calculate.html&#xff0c;具体要求如下 制作一个如下图所示的表单当用户在运算符的下拉列表框中没有选择具体的运算符时&#xff0c;点击“”按钮&#xff0c;将在结果文本框中显示相应的提示&#xff0c;如下图所示当用户选择了具体的运算符之后&#xff0c;点击“”…...

    2024/4/13 22:52:49
  20. 费曼学习法

    该技巧主要包含四步&#xff1a; 第一步&#xff1a;假装把它&#xff08;知识、概念&#xff09;教给一个小孩子。 拿出一张白纸&#xff0c;在上方写下你想要学习的主题。想一下&#xff0c;如果你要把它教给一个孩子&#xff0c;你会讲哪些&#xff0c;并写下来。这里你的教…...

    2024/4/29 12:44:50

最新文章

  1. QGraphicsView实现简易地图9『层级缩放显示底图』

    前文链接&#xff1a;QGraphicsView实现简易地图8『缓存视口周边瓦片』 前一篇文章解决了地图平移时&#xff0c;瓦片加载可能延时的问题&#xff0c;但是地图缩放仍然有延时&#xff0c;此时会先呈现蓝色空白背景&#xff0c;而后瓦片加载的现象。为此&#xff0c;需要在地图缩…...

    2024/5/6 9:34:51
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. 如何构建数据指标体系

    构建一套科学、完备且实用的数据分析指标体系是一项系统性的工程&#xff0c;其核心在于将业务理解、目标设定、度量标准选择、数据采集与整理、数据分析、指标体系构建、持续优化与改进等多个环节有机融合&#xff0c;以实现对业务状况的精准刻画、趋势预测及决策支持。以下是…...

    2024/5/4 6:23:20
  4. 【干货】零售商的商品规划策略

    商品规划&#xff0c;无疑是零售业的生命之源&#xff0c;是推动业务腾飞的强大引擎。一个精心策划的商品规划策略&#xff0c;不仅能帮助零售商在激烈的市场竞争中稳固立足&#xff0c;更能精准捕捉客户需求&#xff0c;实现利润最大化。以下&#xff0c;我们将深入探讨零售商…...

    2024/5/5 12:33:12
  5. 【stm32】I2C通信协议

    【stm32】I2C通信协议 概念及原理 如果我们想要读写寄存器来控制硬件电路&#xff0c;就至少需要定义两个字节数据 一个字节是我们要读写哪个寄存器&#xff0c;也就是指定寄存器的地址 另一个字节就是这个地址下存储寄存器的内容 写入内容就是控制电路&#xff0c;读出内容就…...

    2024/5/4 15:30:22
  6. 【外汇早评】美通胀数据走低,美元调整

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

    2024/5/4 23:54:56
  7. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/5/4 23:54:56
  8. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/5/4 23:54:56
  9. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/5/6 9:21:00
  10. 【外汇早评】日本央行会议纪要不改日元强势

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

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

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

    2024/5/4 23:55:05
  12. 【外汇早评】美欲与伊朗重谈协议

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

    2024/5/4 23:54:56
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

    2024/5/4 23:55:16
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

    2024/5/4 23:54:56
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

    2024/5/6 1:40:42
  16. 【外汇早评】美伊僵持,风险情绪继续升温

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

    2024/5/4 23:54:56
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

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

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

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

    2024/5/4 23:55:06
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/5/4 23:54:56
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

    2024/5/4 23:55:06
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

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

    2024/5/5 8:13:33
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

    2024/5/4 23:55:16
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

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

    2024/5/4 23:54:58
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/5/4 23:55:01
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

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

    2024/5/4 23:54:56
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

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

    2022/11/19 21:17:18
  27. 错误使用 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
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,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
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:16:58
  45. 如何在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