从微软发iPhone,聊聊企业设备管理
今天讲个上周的旧闻,微软给员工免费发iPhone。其实上周就有很多朋友私信问我,在知乎上邀请我回答相关话题,今天就抽点时间和大家一起聊聊这事。我不想讨论太多新闻本身,而是更想聊聊事件的主要原因——微软企业设备管理,以及直接原因——企业设备管理在中国大陆“安卓”设备上的困境。
为什么微软发iPhone 15
首先可以排除,微软是发福利,虽然历史上微软确实给员工发过手机,但那是微软自己的Windows Phone,可惜我也没赶上。
网上很多人说,是因为国内“安卓”手机(目前国内没有严格意义上的Android手机,各家大厂都在各显神通的自研系统,这里姑且允许我偷懒将这些设备统称为“安卓”手机吧)缺失谷歌GMS服务,所以“Microsoft Authenticator”无法正常使用,因此微软给员工发iPhone,这样员工可以正常使用“Microsoft Authenticator”(Apple的APNS在中国大陆是可以正常使用的)。这确实是原因之一,但光这个原因并不充分。因为,Microsoft Entra(以前的Azure AD)的MFA(多音字身份验证)支持多种验证方式,如果使用动态口令、短信、电话等,其实并不依赖谷歌GMS。
真正迫使微软给员工iPhone的原因是国内“安卓”手机无法完美支持自家的企业设备管理方案(EMS,也就是过去大家说的MDM和MAM的集合)“Intune”。
其实,不仅仅是微软自家的Intune不行,大部分EMS/MDM方案在国内“安卓”手机上都是困难重重,而大部分专家给出的Workaround(折中方案)都是换iOS,只是微软“慷慨”给员工发放的iPhone,有些企业就会让员工自掏腰包购买符合条件的设备,否则就会失去移动办公的便利性。
什么是企业终端管理?
刚才我反复提到“企业终端管理”,那什么是企业终端管理?下面我就以微软“Intune”为例,介绍什么是企业终端管理,企业终端管理可以做什么,企业终端管理有哪些价值?
什么是企业设备管理
企业设备管理是指通过一套综合性的方法和工具来管理、监控和保护企业内的所有计算设备,包括桌面电脑、笔记本、平板电脑和智能手机。企业设备管理旨在确保这些设备的安全性、合规性,并提升其使用效率,进而支持企业的业务目标。
企业设备管理的体系结构
企业设备管理的体系结构通常包括以下几个部分:
- 设备注册与配置:这一步骤涉及将设备加入到企业的管理系统中,并按照企业的安全和使用策略进行配置。
- 策略管理:管理和分发设备策略,包括安全策略(如密码要求、加密)、配置策略(如Wi-Fi、VPN设置)以及应用管理策略。
- 应用管理:分发和管理企业应用程序,确保员工能够访问必要的工具,同时防止未经授权的应用使用。
- 设备监控和报告:实时监控设备状态,收集使用数据,并生成报告,以便企业能够了解设备的健康状况和使用情况。
- 安全与合规管理:确保设备和数据的安全,通过监控合规性、实施安全策略和响应安全事件来保护企业资源。
企业设备管理能做什么
企业设备管理通过多种功能和服务,帮助企业更有效地管理其设备:
- 统一设备管理:通过集中管理工具,管理员可以对企业内的所有设备进行统一管理,无论这些设备是Windows、macOS、iOS还是Android系统。
- 安全保护:通过策略和配置管理,保护设备上的企业数据,防止数据泄露和未授权访问。
- 应用分发:确保员工能访问所需的应用,同时控制和监控应用的使用情况。
- 远程支持:提供远程诊断和故障排除功能,帮助IT团队快速解决设备问题。
- 合规性管理:监控设备的合规状态,确保其符合企业和行业的法规要求。
- 设备生命周期管理:从设备采购到报废,全程管理设备的使用和维护。
为什么企业需要设备管理
- 增强安全性:随着移动设备和远程工作的普及,企业面临更多的安全威胁。通过设备管理,可以确保设备上的数据安全,防止泄露和攻击。
- 提高生产力:设备管理确保员工能够顺利访问所需的工具和资源,减少技术问题对工作的干扰,提升工作效率。
- 成本控制:通过集中管理和监控,企业可以更有效地利用资源,降低设备维护和管理成本。
- 合规性和报告:确保设备符合行业和法律法规要求,提供详细的报告和监控,帮助企业满足审计和合规需求。
- 支持灵活办公:随着远程办公和移动办公的普及,企业设备管理变得尤为重要。它能够确保无论员工身处何地,都能安全地访问企业资源和数据。
企业设备管理是现代企业必不可少的一部分。通过使用 Microsoft Intune 等先进的管理工具,企业能够实现全面的设备管理,确保设备安全、提高生产力、降低成本,并满足合规要求。随着企业环境的不断变化,企业设备管理的重要性也将日益增加。
企业设备管理的“安卓”困境
通过上述介绍,相信大家对企业设备管理有了一个全面的认识,但这样一个好用的生产力工具却在国内“安卓”手机上碰壁了。下面,我继续以“Intune”为例,解释为什么大部分企业设备管理方案与国内“安卓”手机水土不服,如果想在国内使用企业管理设备,该如何办。
为什么“Intune”与国内“安卓”手机水土不服
接触企业设备管理十多年来,我经常被问及为什么Intune 等企业设备管理方案在中国大陆“安卓”手机上难以使用。这个问题的答案并非简单,涉及到技术、政策等多方面因素的复杂交织。
1. Google 移动服务 (GMS) 的缺失
这是 Intune 等企业设备管理方案在中国大陆“安卓”手机上无法正常工作的首要原因。Intune 等企业设备管理方案依赖 GMS 框架中的许多服务,例如 Google Play 服务、Firebase 云消息传递 (FCM) 等,来实现其核心功能,包括:
- 应用分发和管理: Intune 等企业设备管理方案通常通过 Google Play 商店分发企业应用,并利用 Play Protect 进行安全扫描。GMS 的缺失意味着企业无法通过 Intune 等企业设备管理方案在中国大陆“安卓”设备上部署应用,只能寻求替代方案,例如第三方应用商店或手动安装,这增加了管理成本和安全风险。
- 远程设备管理: Intune 等企业设备管理方案利用 FCM 推送通知来实现策略更新、远程擦除设备、锁定设备等功能。没有 FCM,这些功能将无法正常工作,企业无法有效地控制和保护移动设备。
- 数据同步和安全: Intune 等企业设备管理方案利用 GMS 提供的云服务进行数据同步和安全防护。GMS 的缺失会导致数据同步失败、安全策略无法及时更新等问题,降低设备安全性和数据保护能力。
2. Android Enterprise 的限制
Android Enterprise是一种用于企业设备管理的框架,依赖于 GMS 提供的服务。在中国大陆,由于 GMS 的缺失,Android Enterprise 也无法使用。这导致企业无法利用 Android Enterprise 提供的高级管理功能,如工作配置文件和设备策略管理。
3. 应用市场的限制
在中国大陆,Google Play 商店缺失,用户必须依赖本地应用市场(如华为应用市场、腾讯应用宝等)来下载和更新应用。然而,这些市场可能不提供最新版本的 Intune 等企业设备管理方案的客户端应用,或者应用更新不及时,导致用户无法获得最新的功能和安全补丁。
4. 旁加载应用的风险
由于无法通过官方应用市场获取 Intune 等企业设备管理方案的客户端应用,用户可能需要通过旁加载方式安装应用。旁加载应用存在以下风险:
安全风险:旁加载应用可能来自不受信任的来源,增加了恶意软件感染的风险。
更新和维护困难:旁加载应用不会自动接收更新和修复,用户需要手动更新,增加了维护的复杂性和安全隐患。
5. 网络连接问题
中国大陆复杂的网络环境和防火墙设置可能会阻碍 Intune 等企业设备管理方案与其云服务之间的通信。这会导致以下问题:
- 数据同步延迟: 设备信息、策略更新等数据无法及时同步到Intune 等企业设备管理方案云端,影响设备管理效率。
- 远程操作失败: 无法远程控制设备,例如远程擦除设备、锁定设备等。
- 应用下载和更新失败: 无法从Intune 等企业设备管理方案云端下载和更新应用。
6. 兼容性问题
中国大陆的安卓手机厂商众多,定制化系统版本繁多,与国际版本存在较大差异,这可能导致Intune 等企业设备管理方案与某些设备或系统版本不兼容,出现功能异常或无法使用的情况。例如,国内“安卓”系统对某些权限和API的限制可能会影响Intune 等企业设备管理方案的设备管理和安全策略实施。
7. 政策和监管环境
中国政府对数据安全和网络安全有着严格的监管政策,这可能会对 Intune 等海外企业设备管理方案的部署和使用造成限制。
解决方案与替代方案
那国内客户是不是就不能使用Intune 这类企业设备管理方案吗?这倒也不是,如果您的组织对设备管理有强烈需求,不妨考虑如下解决方案:
1、要求员工使用符合条件的移动设备
如微软一样,要求员工统一使用iOS设备,是解决上述问题的最佳方式。当然,你可以选择一些支持GMS的Android设备,例如部分三星、MOTO(联想)品牌的设备,但这样的设备目前越来越少,并且您还需要解决除GMS外的其他影响因素(例如网络、应用市场等),因此意义其实不大。
2、使用MAM替代MDM
应用保护策略 (也称为移动应用程序管理或 MAM) 是个人自带设备 (BYOD) 的绝佳选择。无需设备注册即可使用 APP,从而在不影响最终用户工作效率的情况下保护组织在个人设备上的数据。这也是微软官方对GMS缺失设备管理的推荐方案。但相较于MDM方案,我们需要考虑MAM的以下不足:
- 设备安全性不足:MAM主要集中在应用层面的管理,无法对设备本身进行全面的控制。这可能导致设备丢失或被盗时,无法进行远程擦除或锁定,增加了数据泄露的风险。
- 无法管理设备设置:管理员无法统一配置设备的网络、VPN、Wi-Fi和其他系统设置,这可能导致配置不一致,影响员工的工作效率和安全性。
- 不兼容的第三方应用:MAM的策略和功能可能不适用于所有第三方应用,特别是那些没有内置企业管理功能的应用。这限制了MAM的应用范围,企业可能无法完全控制所有使用的应用程序。
- 应用级别的策略配置复杂:由于MAM需要针对每个应用单独配置策略,这可能增加管理员的工作量,特别是在企业使用大量应用程序的情况下。
3、使用VDI方案
在当前企业设备管理中,传统方案面临着诸多挑战,尤其是在国内安卓设备因缺乏Google移动服务(GMS)而带来的困境。基于移动操作系统的虚拟桌面基础架构(VDI)技术(例如云手机)作为一种替代方案,能够有效解决这些问题。
基于移动操作系统的虚拟桌面基础架构(VDI)是一种将移动设备环境虚拟化的技术。通过VDI,用户可以在任何设备上访问虚拟的移动操作系统,无需依赖本地设备的硬件和软件环境。这意味着即使安卓设备没有GMS,用户仍然可以通过VDI访问所需的应用和服务。
优势:
- 统一的移动操作系统环境:VDI技术允许用户在任何设备上访问相同的移动操作系统环境,避免了因设备差异带来的兼容性问题。
- 更高的安全性:所有数据和应用都存储在服务器端,减少了设备丢失或被盗所带来的风险。管理员可以集中管理和更新虚拟移动操作系统,确保所有设备始终运行最新的安全补丁和软件版本。
- 灵活的资源管理:VDI技术具有良好的可扩展性,企业可以根据需求动态调整资源分配,满足不同用户和业务场景的需求。这不仅提高了资源利用率,还降低了硬件成本和维护费用。
- 解决GMS缺失问题:通过VDI,用户可以在没有GMS的安卓设备上访问所需的应用和服务,从而解决了因缺乏GMS而导致的功能限制。
- 更好的移动应用兼容性:基于移动操作系统的VDI专为运行移动应用而设计,能够更好地兼容和支持各种移动应用程序,而传统桌面VDI主要针对桌面应用,可能在运行移动应用时存在兼容性问题。
- 更高的便携性:移动操作系统VDI可以在智能手机、平板电脑等移动设备上无缝运行,用户可以随时随地访问虚拟环境。而传统桌面VDI通常需要较大的屏幕和键盘,便携性相对较差。
- 更低的硬件要求:移动操作系统VDI对本地设备的硬件要求较低,甚至可以在低端设备上流畅运行。这使得企业可以节省硬件成本,而传统桌面VDI通常需要较高性能的设备来保证流畅运行。
- 更好的用户体验:移动操作系统VDI提供了与本地移动设备相似的用户界面和操作体验,用户可以更容易适应和使用。而传统桌面VDI的用户界面和操作方式与移动设备存在较大差异,可能需要一定的学习和适应时间。
- 更灵活的使用场景:移动操作系统VDI可以适用于更多的使用场景,例如外勤工作、远程办公等,用户可以随时随地访问工作环境。而传统桌面VDI主要适用于固定办公场所,使用场景相对有限。
基于移动操作系统的VDI技术提供统一的移动操作系统环境、更高的安全性和灵活的资源管理,能够有效替代传统设备管理方案,解决国内安卓设备因没有GMS而带来的困境,为企业提供更高效、安全的设备管理解决方案。
总结
本文通过分析微软向员工发放iPhone 15的事件,深入探讨了企业设备管理(EMS)在中国大陆面临的挑战,尤其是“安卓”设备上Intune等方案的困境,指出了由于Google移动服务(GMS)缺失、Android Enterprise限制、应用市场限制、旁加载风险、网络连接问题、兼容性问题以及政策监管环境等因素造成的障碍,并提出了包括使用iOS设备、移动应用程序管理(MAM)和VDI解决方案来应对这些挑战,以确保企业数据安全和提高管理效率。
参考资料
https://learn.microsoft.com/zh-cn/mem/intune/fundamentals/what-is-device-management https://learn.microsoft.com/zh-cn/mem/intune/fundamentals/what-is-intune
相关文章:
从微软发iPhone,聊聊企业设备管理
今天讲个上周的旧闻,微软给员工免费发iPhone。其实上周就有很多朋友私信问我,在知乎上邀请我回答相关话题,今天就抽点时间和大家一起聊聊这事。我不想讨论太多新闻本身,而是更想聊聊事件的主要原因——微软企业设备管理࿰…...
抖音/腾讯/百度ocpm深度回传如何操作?广告投放双出价的投放技巧?
要实现抖音、腾讯和百度的OCPM(Optimized Cost Per Mille)深度回传,可以通过借助第三方平台,例如(转化宝)实现广告数据精准回传,如此之外,在广告投放过程中还需要注重这些方面。 转化…...
DPKG(Debian / Ubuntu包管理工具)的深入探索与使用
DPKG(Debian / Ubuntu包管理工具)的深入探索与使用 在Linux世界中,特别是基于Debian及其衍生系统(如Ubuntu)的环境中,dpkg是管理Debian软件包(.deb文件)的核心工具。它不仅用于安装…...
Godot学习笔记2——GDScript变量与函数
Godot使用的编程语言是GDS,语法上与python有些类似。 一、代码编写界面 在新建的Godot项目中,点击“创建根节点”中的“其他节点”,选择“Node”。 点击场景界面右上角的绿色加号,路径处重新命名,模板选择“Empty”&…...
golang开发环境搭建与踩坑记录
文章目录 一、安装下载1、go环境2、ide 二、基本使用1、运行2、结构体与方法函数指针3、闭包4、指针5、map6、接口7、异常 三、包管理1、go mod语法2、项目下载所有依赖 一、安装下载 1、go环境 下载地址:https://go.dev/dl/ 或者:https://golang.goog…...
单机、集群、分布式服务器比较:
1. 单机服务器的瓶颈: 单机服务器:一台服务器独立运行一个工程所需的全部的业务模块 受限于服务器硬件资源,所承受用户并发量受限,32位linux操作系统最大并发量为两万任一模块的变动和修改,都会导致整个项目代码重新编…...
NoSql选择题解
1. (单选题)以下不属于ACID原则的是( )。 A. 相对性 B. 原子性 C. 隔离性 D. 持久性 正确答案: A :相对性; 2. (单选题)以下NoSQL数据库中,哪个是内存数据库()。 A. Bigtable B. Redis C. Hbase D. MongoDB 正确答案: B :Redis; …...
国内新能源汽车芯片自给,承认差距,任重道远
【科技明说 | 科技热点关注】 据近日工信部电子五所元器件与材料研究院高级副院长罗道军表示,中国拥有最大的新能源车产能,芯片用量也是越来越多。但是芯片的自给率目前不到10%,是结构性的短缺。 中国拥有最大新能源车产能&#…...
反爬虫策略中的IP地址轮换如何实现?挑战与对策
当今互联网时代,各类网站、网络平台背后隐藏着大量数据,广告数据收集、市场数据收集都需要依托爬虫技术,但很多网站通过反爬虫技术限制或屏蔽爬虫的访问,这给数据收集带来不小的挑战。 为了规避这些反爬虫策略,开发人…...
AUTOSAR CAN网络Bus Load Reduction Mechanism
1. Bus Load Reduction Mechanism有什么用 根据AUTOSAR CanNM规范,NM PDU的发送周期由参数CanNmMsgCycleTime决定,并且属于同一个网络簇的所有NM节点该参数必须相同。如果不采取任何行动,这将导致总线负载问题,这取决于网络管理集群成员的数量。即使通过节点特定的定时参数…...
【LeetCode力扣】007. 整数反转(Python)
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示例 1: 输入…...
大数据之写入Doris数据问题
1. 解决Key columns should be a ordered prefix of the schema. KeyColumns[1] (starts from zero) is xxx, but 背景 create table if not exists XXX ( fathercorp varchar(50), id decimalv3(38,0) ) ENGINEOLAP UNIQUE KEY(id) COMMENT xxxx DISTRIBUTED BY HASH(id) BUC…...
HTML+echarts.js实现的炫酷金色风格可视化组件
模板下载地址: 炫酷金色风格可视化组件 (bootstrapmb.com)https://www.bootstrapmb.com/item/14888 一款炫酷金色风格可视化组件,统计图表使用Echarts.js,整体风格采用金黄色看起来很大气,设计是通用型的,可以用作任…...
【BUG】已解决: KeyboardInterrupt
已解决: KeyboardInterrupt 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷分享知识,武汉城市开发者社区主理人 擅长.net、C…...
iOS——MRC与ARC以及自动释放池深入底层学习
MRC与ARC再回顾 在前面,我们简单学了MRC与ARC。MRC指手动内存管理,需要开发者使用retain、release等手动管理对象的引用计数,确保对象在必要时被释放。ARC指自动内存管理,由编译器自动管理对象的引用计数,开发者不需要…...
OpenCV教程:cv2如何把两张图片的大小,设置成相同的宽高
-------------OpenCV教程集合------------- Python教程99:一起来初识OpenCV(一个跨平台的计算机视觉库) OpenCV教程01:图像的操作(读取显示保存属性获取和修改像素值) OpenCV教程02:图像处理…...
web前端 Vue 框架面试120题(五)
面试题 81 . 请简述Vue更新数组时触发视图更新的方法? 参考回答: push();pop();shift();unshift();splice();sort();reverse()面试题 82 . 简述如何使用Vue-router实现懒加载的方式…...
CV12_ONNX转RKNN模型(谛听盒子)
暂时简单整理一下: 1.在边缘设备上配置相关环境。 2.配置完成后,获取模型中间的输入输出结果,保存为npy格式。 3.将onnx格式的模型,以及中间输入输出文件传送到边缘设备上。 4.编写一个python文件用于转换模型格式,…...
k8s集群创建devops项目一直等待状态,没有发现host
问题分析: kubesphere在帮我们自动化创建一些智能自动化的额时候难免会发生一些小错误,devops-jenkins是一个部署也会生成一个容器组即pod,容器组的容器服务端口是 targetPort,容器组对外暴露的端口是port,拿devops-c…...
chatglm2-6b-prompt尝试
参考https://cloud.tencent.com/developer/article/2426296 chatglm2-6b,通过prompt来实现zero-shot/fewshot的自然语言处理任务 import json import re import os from modelscope.utils.constant import Tasks from modelscope import Model from modelscope.pi…...
vite+vue3项目初始化搭建
vitevue3项目初始化搭建 "nodejs": v18.19.0 "pnpm": 8.15.0 "vue": v3.4.21 "vite": v5.2.01.创建项目 Vite中文官网 pnpm create vitelatest项目名字:gd_web 选择框架:Vue3 选择语言:JavaScrip…...
使用 Vue3、Node.js、MySQL、Electron 和 Express 实现用户登录、文章管理和截屏功能
在现代 Web 开发中,前后端分离的架构已经成为主流。本文将详细介绍如何使用 Vue3、Node.js、MySQL、Electron 和 Express 实现一个完整的用户登录、文章管理和截屏功能的应用。我们将从项目的初始化开始,逐步实现各个功能模块,并提供详细的代…...
django中日志模块logging的配置和使用
一、文件的配置 settings.py文件中添加LOGGING块的配置,配置如下 # 日志记录 LOGGING {"version": 1,"disable_existing_loggers": False, # 用于确定在应用新的日志配置时是否禁用之前配置的日志器# 格式器"formatters": {"v…...
pyqt/pyside QTableWidget失去焦点后,选中的行仍高亮的显示
正常情况下pyqt/pyside的QTableWidget,点击input或者按钮失去焦点后 行的颜色消失了 如何在失去焦点时保持行的选中颜色,增加下面的代码: # 获取当前表格部件的调色板 p tableWidget.palette()# 获取活跃状态下的高亮颜色和高亮文本颜色&a…...
函数定义、合约与面向对象(以太坊solidity合约)
函数定义、合约与面向对象(以太坊solidity合约) 1-函数定义、构造与多态2-事件日志3-面向对象特征 1-函数定义、构造与多态 创建合约就是创建类,部署合约就是实例化 合约的方法还支持多态 还能使用第三方的库进行开发 整个合约部署后&…...
微服务:nacos
Nacos 由Alibaba推出的集成于SpringCloudAlibaba中的一款开源注册中心框架 主要功能: 注册中心 配置管理 nacos的安装和部署 nacos默认访问端口8848 docker pull nacos/nacos-server:1.2.0 docker run --env MODEstandalone --name nacos --restartalways -d -p 8848:8…...
前端css常用笔记
文章目录 一、样式二、vue笔记2.1、组件之间的通信2.1.1 子组件调用父组件的方法2.1.2 父组件调用子组件的方法2.1.3 孙组件调用祖父组件方法的实现 2.2、使用若依时,node_nodules越来越大的问题2.3、echart笔记 一、样式 1 文字与图标对不齐的解决方法 /**给icon加上这个样式即…...
WINUI或WPF灵活使用样式、控件模板、自定义控件、用户控件
在WINUI与WPF 中,控件模板(ControlTemplate)、样式(Style)、自定义控件(CustomControl)和用户控件(UserControl)都是构建复杂和灵活用户界面的重要工具,但它们…...
如何用EXCEL自动解方程/方程组?利用 矩阵乘法X=A-*B,X=mmult(minverse(A), B)
目录 问题的由来 1 数据 → 模拟分析 → 单变量求解 1.1 找一个单元格填入公式 1.2 功能入口 1.3 选择单变量求解,分别填入内容 1.4 求解 1.5 这个感觉用处不大 2 重点介绍,用EXCEL进行矩阵运算解方程的操作 2.1 运用EXCEL进行矩阵运算&…...
ComfyUI进阶:Comfyroll插件 (二)
前言: 学习ComfyUI是一场持久战,而Comfyroll Studio 是一款功能强大的自定义节点集合,专为 ComfyUI 用户打造,旨在提供更加丰富和专业的图像生成与编辑工具。借助这些节点,用户可以在静态图像的精细调整和动态动画的复…...
政府网站建设存在问题/教育培训机构排名前十
需求背景: 从规范商家行为和让商家感觉到平台和他们互动出发点。 流程图&消息来源 消息来源:运营活动,违规通知,充值通知等 产品维度消息中心设计: 技术设计: crm新建任务流程图 服务调用࿱…...
wordpress广告从哪获取/网络营销方式与工具有哪些
https://blog.csdn.net/hanchao5272/article/details/79435730 git log 退出方法: 英文状态下按Q...
电子商务网站建设的规划/网站推广宣传语
1. 为什么将 View 从别处粘贴进另一个View后无法添加约束? 在 Size 面板中将 Layout 属性改为 Inferred(Constraints)。此外,当一个 view 下面没有 Constraints 时,无法将别的 view 拖进这个 view。你可以从 Library 中随便拖一个控件到这个…...
设计一个网页要多少钱/太原seo优化公司
https://wiki.videolan.org/AndroidCompile/...
深圳网站建设公司jsp/百度指数在线查询
https://blog.csdn.net/vvyingning/article/details/76087148 https://jingyan.baidu.com/article/e4d08ffdace06e0fd2f60d39.html...
wordpress logged in/seo诊断方案
前文回顾事务处理的四种分离水平(隔离级别)分离水平的设置注意事项 非提交读取(脏读)不可重复读取幻象读取总结: 前文回顾 在上篇博文史上最简单MySQL教程详解(进阶篇)之锁与事务处理分离水平&…...