- Android源码解析 - Launcher启动流程
Whyn
Launcher概述我们知道,Android系统启动的最后一步,就是去启动一个桌面应用程序,这个应用程序就是Launcher。Launcher其实就是一个普通的App应用程序,只是它的功能是可以显示Android系统中所有已经安装的程序,然后提供用户点击相应的应用快捷图标就可以启动相关应用的功能······。那么,Launcher进程的具体启动流程是怎样的呢?我们下面就来结合源码进行分析。Laun
- OkHttp源码走心解析
蜗牛是不是牛
前言本文是对OkHttp开源库的一个详细解析,如果你觉得自己不够了解OkHttp,想进一步学习一下,相信本文对你会有所帮助。【Android源码解析】Android中高级架构进阶学习——百大框架源码解析Retrofit/OkHttp/Glide/RxJava/EventBus...._哔哩哔哩_bilibili本文包含了详细的请求流程分析、各大拦截器解读以及自己的一点反思总结,文章很长,欢迎大家一
- Android源码解析--享元设计模式,handler消息传递机制(基于Android API 33 SDK分析)
qfh-coder
android设计模式
文章目录Android源码解析--享元设计模式,handler消息传递机制(基于AndroidAPI33SDK分析)一.定义1.1享元模式Demo二.Android中源码实例分析Message三.Message的关联者Handler四.Android的消息机制五.子线程中创建Handler抛出异常Android源码解析–享元设计模式,handler消息传递机制(基于AndroidAPI33SDK分
- Android 源码解析: SharedPreferences的解析
Tai_Monster
Android开发笔记android微信
Android源码解析:SharedPreferences的解析导言SharedPreferences是Android中的一种轻量的数据持久化手段,可能也是我们在学习Android时接触到的第一种特殊的本地数据持久化手段,本篇文章就将从源码角度分析SharedPreferences的原理。源码分析一般我们使用SharedPreferences是这样使用的://sp的使用--写入数据valsp=ge
- Android源码进阶之Glide缓存机制原理详解
蜗牛是不是牛
前言Android缓存机制:如果没有缓存,在大量的网络请求从远程获取图片时会造成网络流量的浪费,加载速度较慢,用户体验不好;今天我们就来聊聊Glide的缓存机制B站100集视频教程【Android源码解析Retrofit/OkHttp/Glide/RxJava/EventBus....】:https://www.bilibili.com/video/BV1mT4y1R7F4?spm_id_from
- Android源码解析:Handler机制
Tai_Monster
Android开发笔记android
Android源码解析:Handler机制导言关于如何在Android中进行多线程通信,使用Handler机制是一个好方法。Android提供的Handler机制为我们提供了方便的方法进行线程间通信,具体来说,Handler将会绑定一个线程和Looper,Looper将MessageQueue中的Message取出给Handler进行处理。我们可以看一下这幅图先来有一个大概的印象:本篇文章将从源码
- android源码解析 -- ArrayList
PuddingGuo
【android源码解析】arraylist源码线程安全线程android
ArrayList简介ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(Listl)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArray
- Android源码解析之(二)Android异步消息机制
01_小小鱼_01
(一)Handler的常规使用方式publicclassMainActivityextendsAppCompatActivity{publicstaticfinalStringTAG=MainActivity.class.getSimpleName();privateTextViewtexttitle=null;/***在主线程中定义Handler,并实现对应的handleMessage方法*/p
- Android源码解析——Handler、Looper与MessageQueue
zhireshini233
Androidframeworkhandlerandroid
本文的目的是来分析下Android系统中以Handler、Looper、MessageQueue组成的异步消息处理机制,通过源码来了解整个消息处理流程的走向以及相关三者之间的关系需要先了解以下几个基本概念Handler:主线程或者子线程通过Handler向MessageQueue(消息队列)发送Message,以此来触发定时任务或者更新UIMessageQueue:通过Handler发送的消息并非
- Android 架构之OkHttp源码解读(上)
我爱田Hebe
前言在我们编写Android程序时,OkHttp已经成为了我们必不可少的部分,但我们往往知道OkHttp怎么用,不知其原理。在本篇中,我将通过如下方式带你深入其原理。OkHttp介绍OkHttp调用流程socket连接池复用机制高并发请求队列:任务分发责任链模式拦截器设计【Android源码解析】Android中高级架构进阶学习——百大框架源码解析Retrofit/OkHttp/Glide/RxJ
- Android源码解析onResume方法中获取不到View宽高
目录前言问题1、为什么onCreate和onResume中获取不到view的宽高?问题2、为什么View.post为什么可以获取View宽高?结论前言有一个经典的问题,我们在Activity的onCreate中可以获取View的宽高吗?onResume中呢?对于这类八股问题,只要看过都能很容易得出答案:不能。紧跟着追问一个,那为什么View.post为什么可以获取View宽高?今天来看看这些问题,
- 01.Gradle的使用
春江潮
*关于Gradle配置的小结关于Gradle配置的小结-推酷-Gradle基础配置Gradle基础-build.gradle最佳实践之buildConfigField-推酷*build.gradle配置参数详解-秦时明月-博客频道-CSDN.NETAndroid源码解析之(一)-->Android项目构建过程-一片枫叶的专栏-博客频道-CSDN.NETwww.tuicool.com/article
- Android源码解析之MethodAndArgsCaller
聪明叉
如果你看过ZygoteInit.java的main方法可能会对这个类不陌生,在Android8.1之前,其main方法都是类似以下这样:以下代码基于Android8.0publicstaticvoidmain(Stringargv[]){ZygoteServerzygoteServer=newZygoteServer();//Markzygotestart.Thisensuresthatthrea
- Android源码解析——Handler,定制移动app
「违规用户」
程序员架构移动开发android
publicstaticvoidmain(String[]args){···Looper.prepareMainLooper();ActivityThreadthread=newActivityThread();thread.attach(false);if(sMainThreadHandler==null){sMainThreadHandler=thread.getHandler();}if(f
- Android源码解析——Handler,凭借这份《数据结构与算法》核心文档
m0_66264655
程序员架构移动开发android
sendMessageAtTime()方法中在处理Message时,最终调用的是enqueueMessage()方法当中,需要注意msg.target=this这句代码,target对象指向了发送消息的主体,即Handler对象本身,即由Handler对象发给MessageQueue的消息最后还是要交由Handler对象本身来处理publicbooleansendMessageAtTime(Mes
- Android源码解析之(六)Activity启动过程
01_小小鱼_01
Android中,一个应用程序的开始是从ActivityThread.java中的main()方法开始的。publicstaticvoidmain(String[]args){...Looper.prepareMainLooper();//初始化Looper...ActivityThreadthread=newActivityThread();//实例化一个ActivityThreadthread
- RxAndroid 源码解析一
緦菍亭芷
参考学习:http://blog.csdn.net/starsliu/article/details/51038275RxAndroid源码解析一被观察者(主题,订阅内容执行者)Observable类OnSubscribe继承extendsAction1Action1extendsActionActionextendsFunction观察者(事件,订阅事件)Observer接口Subscriber
- Android源码解析之LruCache(内存缓存)
大虾啊啊啊
前言在实际开发中,我们经常要加载很多大图,大多数情况下都是从服务器中下载下来,然后显示到图片的控件中。这里就会存在一个问题,如果每次加载图片都要从网络上下载,这样就会导致效率非常慢,影响用户的体验。所以我们会想到可以把图片缓存到内存中,第二次之后加载图片就从内存中加载,这样效率就会很快。但是我们要知道,如果我们把大量的图片都存到内存中,当内存不足的时候,就会导致OOM。所以这样一来LruCache
- android源码解析 ---- camera 照相机 摄像机
android后端
一.camera启动一个activity启动调用流程: onCreate()-->onStart()-->onResume() onCreate():1.可添加所需布局文件,画界面。2.开启线程,启动硬件摄像头,调用CameraHolder.instance().open()得到一个android.hardwareCamera实例mCameraDeviceensureCameraDevic
- Android高级工程师每日一面试题精选!(1——15题)持续更新!
jett老师
导语我之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)现在陆续给大家分享出来!需要PDF版的可以查看我主页简介。或者在群文件夹中里,点击领取链接:【https://links.jia
- Android源码解析Window系列第(二)篇---Dialog加载绘制流程
LooperJing
转载请注明文章出处LooperJing!上一篇分析了一下Activity的Window创建过程和Window与Activity是如何关联到一起的,通过上一篇,我们对Window有了基本的认识。这一篇分享一下我对Dialog加载绘制流程的理解。首先创建一个Dialog,回顾下创建Dialog的流程。publicclassMainActivityextendsActivity{AlertDialoga
- Android源码解析Handler系列第(一)篇 --- Message全局池
LooperJing
转载请注明文章出处LooperJing!1、UI不能在子线程中更新是个伪命题我们常说UI需要在主线程中进行更新,子线程就不能更新UI吗?不是,我们并不是说不能在子线程中更新UI,而是说UI必须要在它的创建线程中进行更新,比如下面一段代码在子线程更新UI就不会报错。newThread(newRunnable(){@Overridepublicvoidrun(){TextViewtextView=ne
- 文章收藏夹
Lem0nNat1on
1.Android产品研发-->基类Activity2.Androidnative和h5混合开发几种常见的hybrid通信方式3.android产品研发系列4.android源码解析系列5.支付宝集成微信支付6.常用工具类7.AndroidMVP框架Demo8.一步一步实现Android的MVP框架9.Android快速开发框架10.AndroidUtils常用工具类11.FastAndroid安
- Android源码解析四大组件系列(七)---广播的发送过程
LooperJing
本篇文章的目录1、广播数据结构分析2、线程的切换3、processNextBroadcast分析3.1、处理并行广播3.2、处理Pending广播3.3、处理有序广播3.4、获取下一条广播3.5、检查是否是动态广播3.6、检查是否是静态广播3.7、启动进程,处理未发送的静态广播4、动态广播receiver处理5、静态广播receiver处理先了解一下广播的数据结构,然后在分析广播的处理过程。建议看
- Android源码解析之LayoutInflater
Aaron大宝剑
一、前言近来在开发时,经常使用到inflate方法加载视图布局,并且回调onFinishInflate方法进行一些初始化的操作。顿时心血来潮,想要探究一下Layoutinflater的原理,怎么就把XML格式的布局文件加载为布局的实例对象,对于一些特殊标签,例如,如何处理的,所以带着以下问题探究一下:LayoutInflater源码解析view的加载流程特殊标签,的处理view实际创建过程,从xm
- 源码分析_Android UI何时刷新_Choreographer
拙峰朽木
@(Android源码解析)高级UI系列:setContentView源码分析_看AppCompatActivity是如何实现兼容的源码分析_Activity是如何显示的?源码分析_AndroidUI何时刷新:ChoreographerrequestLayout和invalidate都干了些什么之前我们在分析Activity是如何显示的时候,看到它调用了requestLayout然后走了重新绘制流
- Android源码解析——Handler、Looper与MessageQueue
炙热是你
android
本文的目的是来分析下Android系统中以Handler、Looper、MessageQueue组成的异步消息处理机制,通过源码来了解整个消息处理流程的走向以及相关三者之间的关系需要先了解以下几个基本概念Handler:主线程或者子线程通过Handler向MessageQueue(消息队列)发送Message,以此来触发定时任务或者更新UIMessageQueue:通过Handler发送的消息并非
- Android源码解析——Handler、Looper与MessageQueue
炙热是你
android
本文的目的是来分析下Android系统中以Handler、Looper、MessageQueue组成的异步消息处理机制,通过源码来了解整个消息处理流程的走向以及相关三者之间的关系需要先了解以下几个基本概念Handler:主线程或者子线程通过Handler向MessageQueue(消息队列)发送Message,以此来触发定时任务或者更新UIMessageQueue:通过Handler发送的消息并非
- Android源码解析--Material Design之水波纹点击效果RippleEffect使用
Hankkin_Coding
android开发进阶Android源码解析
Android5.0已经出了好久了,但是目前市场上的App好像没有多少用5.0上面的一些效果,依旧延续着之前的控件使用,但是既然新的东西已经出来了,就必定会淘汰旧的不好的,所以我们要与时俱进。其中MaterialDesign真的很不错,其中有好多酷炫的动画,Android5.0的SwipeRefreshLayout会取代之前的PullToRefreshListView、RecyclerView,C
- Android源码解析--EventBus原理
open-Xu
Android源码解析androidEventBus
版权声明:本文为openXu原创文章【openXu的博客】,未经博主允许不得以任何形式转载目录1.EventBus使用
[email protected]()注册订阅者3.1查找订阅方法3.2subscribe()注册4.unregister()注销订阅5.post()发布事件6.事件分发HandlerPosterBackgroundPoster&&AsyncPoster7.粘性事件Sub
- Spring中@Value注解,需要注意的地方
无量
springbean@Valuexml
Spring 3以后,支持@Value注解的方式获取properties文件中的配置值,简化了读取配置文件的复杂操作
1、在applicationContext.xml文件(或引用文件中)中配置properties文件
<bean id="appProperty"
class="org.springframework.beans.fac
- mongoDB 分片
开窍的石头
mongodb
mongoDB的分片。要mongos查询数据时候 先查询configsvr看数据在那台shard上,configsvr上边放的是metar信息,指的是那条数据在那个片上。由此可以看出mongo在做分片的时候咱们至少要有一个configsvr,和两个以上的shard(片)信息。
第一步启动两台以上的mongo服务
&nb
- OVER(PARTITION BY)函数用法
0624chenhong
oracle
这篇写得很好,引自
http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html
OVER(PARTITION BY)函数用法
2010年10月26日
OVER(PARTITION BY)函数介绍
开窗函数 &nb
- Android开发中,ADB server didn't ACK 解决方法
一炮送你回车库
Android开发
首先通知:凡是安装360、豌豆荚、腾讯管家的全部卸载,然后再尝试。
一直没搞明白这个问题咋出现的,但今天看到一个方法,搞定了!原来是豌豆荚占用了 5037 端口导致。
参见原文章:一个豌豆荚引发的血案——关于ADB server didn't ACK的问题
简单来讲,首先将Windows任务进程中的豌豆荚干掉,如果还是不行,再继续按下列步骤排查。
&nb
- canvas中的像素绘制问题
换个号韩国红果果
JavaScriptcanvas
pixl的绘制,1.如果绘制点正处于相邻像素交叉线,绘制x像素的线宽,则从交叉线分别向前向后绘制x/2个像素,如果x/2是整数,则刚好填满x个像素,如果是小数,则先把整数格填满,再去绘制剩下的小数部分,绘制时,是将小数部分的颜色用来除以一个像素的宽度,颜色会变淡。所以要用整数坐标来画的话(即绘制点正处于相邻像素交叉线时),线宽必须是2的整数倍。否则会出现不饱满的像素。
2.如果绘制点为一个像素的
- 编码乱码问题
灵静志远
javajvmjsp编码
1、JVM中单个字符占用的字节长度跟编码方式有关,而默认编码方式又跟平台是一一对应的或说平台决定了默认字符编码方式;2、对于单个字符:ISO-8859-1单字节编码,GBK双字节编码,UTF-8三字节编码;因此中文平台(中文平台默认字符集编码GBK)下一个中文字符占2个字节,而英文平台(英文平台默认字符集编码Cp1252(类似于ISO-8859-1))。
3、getBytes()、getByte
- java 求几个月后的日期
darkranger
calendargetinstance
Date plandate = planDate.toDate();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(plandate);
// 取得三个月后时间
cal.add(Calendar.M
- 数据库设计的三大范式(通俗易懂)
aijuans
数据库复习
关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。数据库的设计范式是数据库设计所需要满足的规范。只有理解数据库的设计范式,才能设计出高效率、优雅的数据库,否则可能会设计出错误的数据库.
目前,主要有六种范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。满足最低要求的叫第一范式,简称1NF。在第一范式基础上进一步满足一些要求的为第二范式,简称2NF。其余依此类推。
- 想学工作流怎么入手
atongyeye
jbpm
工作流在工作中变得越来越重要,很多朋友想学工作流却不知如何入手。 很多朋友习惯性的这看一点,那了解一点,既不系统,也容易半途而废。好比学武功,最好的办法是有一本武功秘籍。研究明白,则犹如打通任督二脉。
系统学习工作流,很重要的一本书《JBPM工作流开发指南》。
本人苦苦学习两个月,基本上可以解决大部分流程问题。整理一下学习思路,有兴趣的朋友可以参考下。
1 首先要
- Context和SQLiteOpenHelper创建数据库
百合不是茶
androidContext创建数据库
一直以为安卓数据库的创建就是使用SQLiteOpenHelper创建,但是最近在android的一本书上看到了Context也可以创建数据库,下面我们一起分析这两种方式创建数据库的方式和区别,重点在SQLiteOpenHelper
一:SQLiteOpenHelper创建数据库:
1,SQLi
- 浅谈group by和distinct
bijian1013
oracle数据库group bydistinct
group by和distinct只了去重意义一样,但是group by应用范围更广泛些,如分组汇总或者从聚合函数里筛选数据等。
譬如:统计每id数并且只显示数大于3
select id ,count(id) from ta
- vi opertion
征客丶
macoprationvi
进入 command mode (命令行模式)
按 esc 键
再按 shift + 冒号
注:以下命令中 带 $ 【在命令行模式下进行】,不带 $ 【在非命令行模式下进行】
一、文件操作
1.1、强制退出不保存
$ q!
1.2、保存
$ w
1.3、保存并退出
$ wq
1.4、刷新或重新加载已打开的文件
$ e
二、光标移动
2.1、跳到指定行
数字
- 【Spark十四】深入Spark RDD第三部分RDD基本API
bit1129
spark
对于K/V类型的RDD,如下操作是什么含义?
val rdd = sc.parallelize(List(("A",3),("C",6),("A",1),("B",5))
rdd.reduceByKey(_+_).collect
reduceByKey在这里的操作,是把
- java类加载机制
BlueSkator
java虚拟机
java类加载机制
1.java类加载器的树状结构
引导类加载器
^
|
扩展类加载器
^
|
系统类加载器
java使用代理模式来完成类加载,java的类加载器也有类似于继承的关系,引导类是最顶层的加载器,它是所有类的根加载器,它负责加载java核心库。当一个类加载器接到装载类到虚拟机的请求时,通常会代理给父类加载器,若已经是根加载器了,就自己完成加载。
虚拟机区分一个Cla
- 动态添加文本框
BreakingBad
文本框
<script> var num=1; function AddInput() { var str=""; str+="<input 
- 读《研磨设计模式》-代码笔记-单例模式
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
public class Singleton {
}
/*
* 懒汉模式。注意,getInstance如果在多线程环境中调用,需要加上synchronized,否则存在线程不安全问题
*/
class LazySingleton
- iOS应用打包发布常见问题
chenhbc
iosiOS发布iOS上传iOS打包
这个月公司安排我一个人做iOS客户端开发,由于急着用,我先发布一个版本,由于第一次发布iOS应用,期间出了不少问题,记录于此。
1、使用Application Loader 发布时报错:Communication error.please use diagnostic mode to check connectivity.you need to have outbound acc
- 工作流复杂拓扑结构处理新思路
comsci
设计模式工作算法企业应用OO
我们走的设计路线和国外的产品不太一样,不一样在哪里呢? 国外的流程的设计思路是通过事先定义一整套规则(类似XPDL)来约束和控制流程图的复杂度(我对国外的产品了解不够多,仅仅是在有限的了解程度上面提出这样的看法),从而避免在流程引擎中处理这些复杂的图的问题,而我们却没有通过事先定义这样的复杂的规则来约束和降低用户自定义流程图的灵活性,这样一来,在引擎和流程流转控制这一个层面就会遇到很
- oracle 11g新特性Flashback data archive
daizj
oracle
1. 什么是flashback data archive
Flashback data archive是oracle 11g中引入的一个新特性。Flashback archive是一个新的数据库对象,用于存储一个或多表的历史数据。Flashback archive是一个逻辑对象,概念上类似于表空间。实际上flashback archive可以看作是存储一个或多个表的所有事务变化的逻辑空间。
- 多叉树:2-3-4树
dieslrae
树
平衡树多叉树,每个节点最多有4个子节点和3个数据项,2,3,4的含义是指一个节点可能含有的子节点的个数,效率比红黑树稍差.一般不允许出现重复关键字值.2-3-4树有以下特征:
1、有一个数据项的节点总是有2个子节点(称为2-节点)
2、有两个数据项的节点总是有3个子节点(称为3-节
- C语言学习七动态分配 malloc的使用
dcj3sjt126com
clanguagemalloc
/*
2013年3月15日15:16:24
malloc 就memory(内存) allocate(分配)的缩写
本程序没有实际含义,只是理解使用
*/
# include <stdio.h>
# include <malloc.h>
int main(void)
{
int i = 5; //分配了4个字节 静态分配
int * p
- Objective-C编码规范[译]
dcj3sjt126com
代码规范
原文链接 : The official raywenderlich.com Objective-C style guide
原文作者 : raywenderlich.com Team
译文出自 : raywenderlich.com Objective-C编码规范
译者 : Sam Lau
- 0.性能优化-目录
frank1234
性能优化
从今天开始笔者陆续发表一些性能测试相关的文章,主要是对自己前段时间学习的总结,由于水平有限,性能测试领域很深,本人理解的也比较浅,欢迎各位大咖批评指正。
主要内容包括:
一、性能测试指标
吞吐量、TPS、响应时间、负载、可扩展性、PV、思考时间
http://frank1234.iteye.com/blog/2180305
二、性能测试策略
生产环境相同 基准测试 预热等
htt
- Java父类取得子类传递的泛型参数Class类型
happyqing
java泛型父类子类Class
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.junit.Test;
abstract class BaseDao<T> {
public void getType() {
//Class<E> clazz =
- 跟我学SpringMVC目录汇总贴、PDF下载、源码下载
jinnianshilongnian
springMVC
----广告--------------------------------------------------------------
网站核心商详页开发
掌握Java技术,掌握并发/异步工具使用,熟悉spring、ibatis框架;
掌握数据库技术,表设计和索引优化,分库分表/读写分离;
了解缓存技术,熟练使用如Redis/Memcached等主流技术;
了解Ngin
- the HTTP rewrite module requires the PCRE library
流浪鱼
rewrite
./configure: error: the HTTP rewrite module requires the PCRE library.
模块依赖性Nginx需要依赖下面3个包
1. gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )
2. rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )
3. s
- 第12章 Ajax(中)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Optimize query with Query Stripping in Web Intelligence
blueoxygen
BO
http://wiki.sdn.sap.com/wiki/display/BOBJ/Optimize+query+with+Query+Stripping+in+Web+Intelligence
and a very straightfoward video
http://www.sdn.sap.com/irj/scn/events?rid=/library/uuid/40ec3a0c-936
- Java开发者写SQL时常犯的10个错误
tomcat_oracle
javasql
1、不用PreparedStatements 有意思的是,在JDBC出现了许多年后的今天,这个错误依然出现在博客、论坛和邮件列表中,即便要记住和理解它是一件很简单的事。开发者不使用PreparedStatements的原因可能有如下几个: 他们对PreparedStatements不了解 他们认为使用PreparedStatements太慢了 他们认为写Prepar
- 世纪互联与结盟有感
阿尔萨斯
10月10日,世纪互联与(Foxcon)签约成立合资公司,有感。
全球电子制造业巨头(全球500强企业)与世纪互联共同看好IDC、云计算等业务在中国的增长空间,双方迅速果断出手,在资本层面上达成合作,此举体现了全球电子制造业巨头对世纪互联IDC业务的欣赏与信任,另一方面反映出世纪互联目前良好的运营状况与广阔的发展前景。
众所周知,精于电子产品制造(世界第一),对于世纪互联而言,能够与结盟