Android源码目录packages\providers下的应用是下载,通话等内置基本应用提供数据存储和操作的provider应用,本文章将针对ContactsProvider源码的架构和实现展开分析。(注:本文使用使用android4.0版本进行分析)

1、架构设计

ContactsProvider中数据操作基类是AbstractContactsProvider.java(参见frameworks\ex\common\java\com\android\common\content\SQLiteContentProvider.java),它继承ContentProvider.java实现SQLiteTransactionListener.java,类结构如下图所示:



图 1 provider结构图

        该类是抽象基类,在里面实现了父类的insert、delete和update三个抽象方法,在这三个方法中在其中使用了事务对数据库进行操作。该类设计时,使用了模板模式模板方法为insertInTransaction,updateInTransaction和deleteInTransaction。该类在对数据库进行事务操作的同时,对子类开放了onRollback,onCommit等事物回调方法,子类可以根据自己的业务特点进行扩展。增删改查的调用过程如下图23 4所示:


图2  插入操作

图 3 更新操作


图 4 删除操作

  在整个设计中有两个类继承了AbstractContactsProvider.java,一个是ContactsProvider2.java,我们在调用系统的联系人数据时基本都是调用该类,里面封装了所有联系人的数据操作。第二个是ProfileProvider.java,该类是ContactsProvider2.java的委托类。这三个类的类间关系如下图5所示:


图 5 类间关系图

  类ContactsTransaction.java是对事务的管理类,主要对进行的事务进行管理,类似一个事务池。是AbstractContactsProvider.java中事务处理的核心类。

         DataRowHandler.java是数据处理抽象类,实现了对数据的增删改操作,子类有如下几个:

[java] viewplaincopy
  1. DataRowHandlerForCommonDataKind.java  
  2. DataRowHandlerForCustomMimetype.java  
  3. DataRowHandlerForEmail.java  
  4. DataRowHandlerForGroupMembership.java  
  5. DataRowHandlerForIm.java  
  6. DataRowHandlerForNickname.java  
  7. DataRowHandlerForNote.java  
  8. DataRowHandlerForOrganization.java  
  9. DataRowHandlerForPhoneNumber.java  
  10. DataRowHandlerForPhoto.java  
  11. DataRowHandlerForStructuredName.java  
  12. DataRowHandlerForStructuredPostal.java  

这些子类在ContactsProvider2#initDataRowHandlers中初始化

[java] viewplaincopy
  1. private void initDataRowHandlers(Map<String, DataRowHandler> handlerMap,  
  2.         ContactsDatabaseHelper dbHelper, ContactAggregator contactAggregator,  
  3.         PhotoStore photoStore) {  
  4.     Context context = getContext();  
  5.     handlerMap.put(Email.CONTENT_ITEM_TYPE,  
  6.             new DataRowHandlerForEmail(context, dbHelper, contactAggregator));  
  7.     handlerMap.put(Im.CONTENT_ITEM_TYPE,  
  8.             new DataRowHandlerForIm(context, dbHelper, contactAggregator));  
  9.     handlerMap.put(Organization.CONTENT_ITEM_TYPE,  
  10.             new DataRowHandlerForOrganization(context, dbHelper, contactAggregator));  
  11.     handlerMap.put(Phone.CONTENT_ITEM_TYPE,  
  12.             new DataRowHandlerForPhoneNumber(context, dbHelper, contactAggregator));  
  13.     handlerMap.put(Nickname.CONTENT_ITEM_TYPE,  
  14.             new DataRowHandlerForNickname(context, dbHelper, contactAggregator));  
  15.     handlerMap.put(StructuredName.CONTENT_ITEM_TYPE,  
  16.             new DataRowHandlerForStructuredName(context, dbHelper, contactAggregator,  
  17.                     mNameSplitter, mNameLookupBuilder));  
  18.     handlerMap.put(StructuredPostal.CONTENT_ITEM_TYPE,  
  19.             new DataRowHandlerForStructuredPostal(context, dbHelper, contactAggregator,  
  20.                     mPostalSplitter));  
  21.     handlerMap.put(GroupMembership.CONTENT_ITEM_TYPE,  
  22.             new DataRowHandlerForGroupMembership(context, dbHelper, contactAggregator,  
  23.                     mGroupIdCache));  
  24.     handlerMap.put(Photo.CONTENT_ITEM_TYPE,  
  25.             new DataRowHandlerForPhoto(context, dbHelper, contactAggregator, photoStore));  
  26.     handlerMap.put(Note.CONTENT_ITEM_TYPE,  
  27.             new DataRowHandlerForNote(context, dbHelper, contactAggregator));  
  28. }  

这些子类在getDataRowHandler方法中中通过mimetype进行调用:

[java] viewplaincopy
  1. public DataRowHandler getDataRowHandler(final String mimeType) {  
  2.     if (inProfileMode()) {  
  3.         return getDataRowHandlerForProfile(mimeType);  
  4.     }  
  5.     DataRowHandler handler = mDataRowHandlers.get(mimeType);  
  6.     if (handler == null) {  
  7.         handler = new DataRowHandlerForCustomMimetype(  
  8.                 getContext(), mContactsHelper, mContactAggregator, mimeType);  
  9.         mDataRowHandlers.put(mimeType, handler);  
  10.     }  
  11.     return handler;  
  12. }  

getDataRowHandler方法在insertData,deleteData和updateData方法中被调用。

[java] viewplaincopy
  1. /** 
  2.     * Inserts an item in the data table 
  3.     * 
  4.     * @param values the values for the new row 
  5.     * @return the row ID of the newly created row 
  6.     */  
  7.    private long insertData(ContentValues values, boolean callerIsSyncAdapter) {  
  8.        long id = 0;  
  9.        mValues.clear();  
  10.        mValues.putAll(values);  
  11.   
  12.        long rawContactId = mValues.getAsLong(Data.RAW_CONTACT_ID);  
  13.   
  14.        // Replace package with internal mapping  
  15.        final String packageName = mValues.getAsString(Data.RES_PACKAGE);  
  16.        if (packageName != null) {  
  17.            mValues.put(DataColumns.PACKAGE_ID, mDbHelper.get().getPackageId(packageName));  
  18.        }  
  19.        mValues.remove(Data.RES_PACKAGE);  
  20.   
  21.        // Replace mimetype with internal mapping  
  22.        final String mimeType = mValues.getAsString(Data.MIMETYPE);  
  23.        if (TextUtils.isEmpty(mimeType)) {  
  24.            throw new IllegalArgumentException(Data.MIMETYPE + " is required");  
  25.        }  
  26.   
  27.        mValues.put(DataColumns.MIMETYPE_ID, mDbHelper.get().getMimeTypeId(mimeType));  
  28.        mValues.remove(Data.MIMETYPE);  
  29.   
  30.        DataRowHandler rowHandler = <span style="color: rgb(102, 102, 204);">getDataRowHandler(mimeType)</span>;  
  31.        id = rowHandler.insert(mActiveDb.get(), mTransactionContext.get(), rawContactId, mValues);  
  32.        if (!callerIsSyncAdapter) {  
  33.            mTransactionContext.get().markRawContactDirty(rawContactId);  
  34.        }  
  35.        mTransactionContext.get().rawContactUpdated(rawContactId);  
  36.        return id;  
  37.    }  

所有数据的mimetype都被存储在表Tables.MIMETYPES中,该只有两个字段_id和mimetype。

[java] viewplaincopy
  1. db.execSQL("CREATE TABLE " + Tables.MIMETYPES + " ("  
  2.               + MimetypesColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"  
  3.               + MimetypesColumns.MIMETYPE + " TEXT NOT NULL" + ");");  

Tables.MIMETYPES表数据的存储是在ContactsDatabaseHelper#lookupAndCacheId中进行的,具体调用过程如下图 6 所示:


图 6 mimetype数据调用流程图

2、表结构

ContactsProvider 中共创建了25张表,

[java] viewplaincopy
  1. public static final String CONTACTS = "contacts";  
  2. public static final String RAW_CONTACTS = "raw_contacts";  
  3. public static final String STREAM_ITEMS = "stream_items";  
  4. public static final String STREAM_ITEM_PHOTOS = "stream_item_photos";  
  5. public static final String PHOTO_FILES = "photo_files";  
  6. public static final String PACKAGES = "packages";  
  7. public static final String MIMETYPES = "mimetypes";  
  8. public static final String PHONE_LOOKUP = "phone_lookup";  
  9. public static final String NAME_LOOKUP = "name_lookup";  
  10. public static final String AGGREGATION_EXCEPTIONS = "agg_exceptions";  
  11. public static final String SETTINGS = "settings";  
  12. public static final String DATA = "data";  
  13. public static final String GROUPS = "groups";  
  14. public static final String PRESENCE = "presence";  
  15. public static final String AGGREGATED_PRESENCE = "agg_presence";  
  16. public static final String NICKNAME_LOOKUP = "nickname_lookup";  
  17. public static final String CALLS = "calls";  
  18. public static final String STATUS_UPDATES = "status_updates";  
  19. public static final String PROPERTIES = "properties";  
  20. public static final String ACCOUNTS = "accounts";  
  21. public static final String VISIBLE_CONTACTS = "visible_contacts";  
  22. public static final String DIRECTORIES = "directories";  
  23. public static final String DEFAULT_DIRECTORY = "default_directory";  
  24. public static final String SEARCH_INDEX = "search_index";  
  25. public static final String VOICEMAIL_STATUS = "voicemail_status";  

这些表数据对开发者开放的api在 \frameworks\base\core\java\android\provider\文件夹下,

[java] viewplaincopy
  1. CallLog.java  
  2. Contacts.java  
  3. ContactsContract.java  
  4. SocialContract.java  
  5. SyncConstValue.java  
  6. VoicemailContract.java  

由于数据查询涉及多个表间关系,大量数据的查询都是通过视图来完成的,创建了如下8个视图,而这几个视图是大家在调用api进行查询时显示的数据:

[java] viewplaincopy
  1. public interface Views {  
  2.     public static final String DATA = "view_data";  
  3.     public static final String RAW_CONTACTS = "view_raw_contacts";  
  4.     public static final String CONTACTS = "view_contacts";  
  5.     public static final String ENTITIES = "view_entities";  
  6.     public static final String RAW_ENTITIES = "view_raw_entities";  
  7.     public static final String GROUPS = "view_groups";  
  8.     public static final String DATA_USAGE_STAT = "view_data_usage_stat";  
  9.     public static final String STREAM_ITEMS = "view_stream_items";  
  10. }  

4、总结

ContactsProvder是provider源码中数据处理和架构比较全面的一个应用,可以将它的架构核心抽离出来供大家参考和借鉴,以下类构成了整个架构的核心类,可以重点研究:

[java] viewplaincopy
  1. AbstractContactsProvider.java  
  2. ContactAggregator.java  
  3. ContactsDatabaseHelper.java  
  4. ContactsProvider2.java  
  5. ContactsTransaction.java  
  6. TransactionContext.java 
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 精确计算base64文件大小(含测试文件和源码)

    苟且,诗与远方1.base64简介 Base64这个术语最初是在“MIME内容传输编码规范”中提出的。Base64不是一种加密算法,虽然编码后的字符串看起来有点加密的赶脚。它实际上是一种“二进制到文本”的编码方法,它能够将给定的任意二进制数据转换(映射)为ASCII字符串的形式,以便在…...

    2024/4/17 7:15:36
  2. Git拉取项目 Docker部署SpringCloud

    **图片请看我的博客** 从0开始,使用dockerfile将项目打包上传到服务器 以开源项目若依Cloud为例子项目地址:https://github.com/zhangmrit/ruoyi-clouddocker安装以及远程访问配置 1.安装依赖包: $ sudo yum install -y yum-utils device-mapper-persistent-data lvm22.安装D…...

    2024/4/17 7:15:36
  3. 计算机网络 p2p应用 知识点总结

    peer - to - peer没有服务器任意端系统之间直接通信节点阶段性接入internet节点可能更换ip地址 文件分发 BitTorrent协议参与交换文件块的文件形成一个组 torrent对于每一个torrent 有一个tracker跟踪参与torrent的节点文件被划分为256kb的chunk新加入的节点,向tracker注册,获…...

    2024/4/17 7:15:42
  4. 用英语写书给老外看

    我的英文新书《Coding Interview: Question,Analysis & Solutions》即将通过Apress出版社在国外出版发行。目前出版社已经开始为这本书做预售宣传,朋友们可以在出版社的网页上(http://www.apress.com/9781430247616)看到该书的信息。这本书以我之前出版的《剑指Offer:名…...

    2024/4/17 7:15:48
  5. python中base64

    base64模块使用base64编码方式, 会将得到的数据(bytes类型)的每3个字节扩展为4个字节.eg: b’123456789’ 这里就是9个字节.如果输入的字节数”多出”了1个, 编码后就在末尾加2个’=’.如果输入的字节数”多出”了2个, 编码后就在末尾加1个’=’.import base64a3 = b123 a4 = b…...

    2024/4/17 7:14:30
  6. 【程序人生】Java Web 开发脚手架调研

    文章目录Gitee Most Value Project铭飞BootDoRuoYijeecg-bootrenren-fast调研时间 2019.06.18Gitee Most Value Project铭飞 / MCMS 4.7.0 bootdo ruoyi 3.4 jeecg-boot renren-fast托管仓库 https://gitee.com/mingSoft/MCMS https://gitee.com/lcg0124/bootdo https://gitee…...

    2024/4/17 23:58:55
  7. Contacts Provider使用

    前言Contacts Provider是Android中一个强大并且灵活的组件,负责管理系统通讯录的数据,对外提供访问接口来对系统通讯录进行访问和操作。MainActivity.classpackage com.example.contactstest;import java.util.ArrayList; import java.util.List;import android.os.Bundle; i…...

    2024/4/30 23:51:27
  8. 基于知识提取的方法训练一个小网络

    背景介绍 方法介绍 1训练一个大模型2获取soft target label3训练一个小网络 参考文献 Hinton大牛的文章,关于如何得到一个又小又好的网络的。文章链接《Distilling the Knowledge in a Neural Network》—————————— 背景介绍 —————————— 大家都想要得到…...

    2024/4/17 7:16:00
  9. Java如何进行Base64的编码(Encode)与解码(Decode)?

    关于base64编码Encode和Decode编码的几种方式Base64是一种能将任意Binary资料用64种字元组合成字串的方法,而这个Binary资料和字串资料彼此之间是可以互相转换的,十分方便。在实际应用上,Base64除了能将Binary资料可视化之外,也常用来表示字串加密过后的内容。如果要使用Ja…...

    2024/4/17 7:16:48
  10. 如何解决路由器延迟问题

    问题场景好久不写BLOG了,最近搬家,重新办了网络,发现一样的路由器,到了这边ping值基本上没有个位数,于是尝试直接宽带拨号,ping值基本上都在3MS,但是连接路由器之后出现了异常,也就是说不是运营商的问题,中间尝试过各种网络上的方法都不管用,于是开始了下面的一个处理…...

    2024/4/27 18:19:37
  11. 若依源码分析(13)——定时任务监控

    文章目录定时任务监控界面 /monitor/jobpojo - sys_job 定时任务表SysJobController控制管理定时任务service层ISysJobServiceSysJobLogController控制定时任务日志记录 /monitor/jobLogservice层ISysJobLogServicequartz进行任务调度quartz服务模块结构核心API介绍ScheduleUt…...

    2024/4/17 7:17:12
  12. android api 完整通译之Contacts Provider (学习安卓必知的api,中英文对照)

    android api 完整翻译之Contacts Provider (学习安卓必知的api,中英文对照)Contacts Provider电话簿(注:联系人,联络人、通信录)提供者-------------------------------QUICKVIEW快速概览* Androids repository of information about people.* Android的关于人的信息的仓…...

    2024/4/17 7:16:42
  13. 迄今为止最深刻分析家乐福的文章—从商业模式、公司制度、公司文化三方面

    在写家乐福的商业模式前,我一直在思考以什么样的切入点来进入。作为一个世界500强的零售企业来说它的商业模式其实并不复杂,14年里基本上经过了4个重要的发展阶段,让我从这四个阶段开始谈谈我对家乐福商业模式的理解。 第一阶段:1995-1999年 开拓中国市场的生存阶段-店长…...

    2024/4/24 18:56:35
  14. 邮件附件base64解码的问题

    1、附件的BASE64编码中可能含有空白字符(回车(2个字符),tab,空白),从而导致用length计算出来的不是实际的base串长度。如一段串,反复出错,原串是以=结束,最后是一个回车,在word中,统计得到而在调试中得到的值却是33027,刚好等于32221+403*2。 2、base串规定,只有…...

    2024/4/17 7:16:30
  15. 《华为基本法》读书笔记

    《华为基本法》分为6章,共103条:1、公司的宗旨 1.1、核心价值观 1.2、基本目标 1.3、公司成长 1.4、价值分配 2、基本经营政策 2.1、经营重点 2.2、研究与开发 2.3、市场营销 2.4、生产方式 3、基本组织政策 3.1、基本原则 3.2、组织结构 3.3、高层管…...

    2024/4/23 14:39:01
  16. SpringBoot 项目(若依脚手架)3

    前言:紧接着 上一章 “SpringBoot 项目(若依脚手架)2” 补充5.1.2.1 MessageUtils 工具类中,使用到的 SpringUtils 工具类package com.ruoyi.common.utils.spring;import org.springframework.aop.framework.AopContext; import org.springframework.beans.BeansException;…...

    2024/3/31 20:33:01
  17. 知识图谱之知识表示

    先上两个狠全面的综述或者叫总结:《知识表示学习研究进展》基于翻译模型(Trans系列)的知识表示学习 然后是清华大学开源OpenKE:知识表示学习平台“表示学习旨在将研究对象的语义信息表示为稠密低维实值向量,知识表示学习主要是面向知识图谱中的实体和关系进行表示学习。使…...

    2024/4/17 7:16:48
  18. android 组件使用()

    程序入口点类于win32程序里的WinMain函数,Android自然也有它的程序入口点。它通过在AndroidManifest.xml文件中配置来指明,可以看到名为NotesList的activity节点下有这样一个intent-filter,其action为android.intent.action.MAIN,Category指定为 android.intent.category.LAU…...

    2024/4/17 7:16:36
  19. 代码整洁之道(一)

    代码整洁之道(一)2017-11-07至2017-11-08前言我为什么会想买这本书??理由很模糊,却又很简单——为了更加简洁优美的代码。然而简洁优美的代码总是很少的,至少在我目前完成的一些项目中,无论是我还是队友,对于代码的整洁与规范都没有一个明确的认识,这也是我所厌恶的现…...

    2024/4/17 7:17:00
  20. 只有在中华帝都才能免费享受到的北大商业课程:财富定律与愿景规划

    如果你不在北京,只能说可惜了。这样的讲座,本来是很贵的商业课程。但到了北大,就变成了免费的公益课。本课程主题是愿景规划,说白了本质是项目管理。你可以看到其实新理论都是旧理论在不同领域发展的结果。主题:财富定律与愿景规划公开课时间:2014年11月2日19:00-22:00,…...

    2024/4/17 7:16:30

最新文章

  1. 黑马 - websocket搭建在线聊天室

    这里写自定义目录标题 一、消息推送常见方式二、websocket 是什么&#xff1f;三、websocket api的介绍1、客户端 &#xff08;浏览器&#xff09; 四、实现在线聊天室1、需求2、聊天室流程分析3、消息格式4、代码实现 一、消息推送常见方式 1、轮训方式 2、SSE&#xff08;…...

    2024/5/2 1:18:04
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. JSON.toJSONString格式化成json字符串时保留null属性

    String string JSON.toJSONString(map, SerializerFeature.WriteMapNullValue); 属性说明 QuoteFieldNames———-输出key时是否使用双引号,默认为true WriteMapNullValue——–是否输出值为null的字段,默认为false WriteNullNumberAsZero—-数值字段如果为null,输出为0,而…...

    2024/5/1 20:51:22
  4. 探索进程控制第一弹(进程终止、进程等待)

    文章目录 进程创建初识fork函数fork函数返回值fork常规用法fork调用失败的原因 写时拷贝进程终止进程终止是在做什么&#xff1f;进程终止的情况代码跑完&#xff0c;结果正确/不正确代码异常终止 如何终止 进程等待概述进程等待方法wait方法waitpid 进程创建 初识fork函数 在…...

    2024/5/1 13:05:31
  5. 实现窗口拖拽移动

    import Vue from "vue"; /* * 定义公共js里&#xff0c;在入口文件main.js中import&#xff1b; * 给elementUI的dialog上加上 v-dialogDrag 指令就可以实现弹窗的全屏和拉伸了。 */ // v-dialogDrag: 弹窗拖拽水平方向伸缩 Vue.directive(dialogDrag, { bind(e…...

    2024/4/29 7:59:43
  6. 【外汇早评】美通胀数据走低,美元调整

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

    2024/5/1 17:30:59
  7. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/4/30 18:14:14
  8. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/4/29 2:29:43
  9. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/4/30 18:21:48
  10. 【外汇早评】日本央行会议纪要不改日元强势

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

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

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

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

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

    2024/4/28 1:28:33
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

    2024/4/30 9:43:09
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

    2024/4/27 17:59:30
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

    2024/4/25 18:39:16
  16. 【外汇早评】美伊僵持,风险情绪继续升温

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

    2024/4/28 1:34:08
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

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

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

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

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

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

    2024/4/30 22:21:04
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

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

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

    2024/4/27 23:24:42
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

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

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

    2024/4/30 9:42:22
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/4/30 9:43:22
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

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

    2024/4/30 9:42:49
  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