天天实时:csdn泄露数据(个人信息泄露处理方法) 关于垃圾回收器
对于众多 Android 程序员而言,在需求与应用性能之间,主要精力都会放到新需求的开发。随着项目复杂度的增加,应用性能越来越低,出现各种问题。程序员们奔波于各种“救火现场”,疲于奔命。本文作者 Aritra Roy 分享了自己在 Android 应用程序开发过程中所遇以及思考,针对内存泄漏提炼出一套可以应用于开发中的方法论。也许会让你的开发效率事半功倍。
作者 | Aritra Roy,Android 开发者
译者 | 罗昭成,责编 | 唐小引
(资料图片)
封图 | CSDN 付费下载自东方 IC
出品 | CSDN(ID:CSDNnews)
以下为译文:
我们都知道,写一个 Android 的应用很容易,但是要写一个高性能的应用可就不容易了。以我的个人经验来说,在 App 的开发过程中,主要的精力都会放在新功能、新模块、新组件的开发上。
开发过程中,看得见的 UI 比看不见的性能更能吸引我们的目光。所以我强制自己将“优化应用程序(如内存泄漏)”的优先级提高,并养成习惯。
长期以来,不关注性能,带来了很多的技术债。经过一年多的努力调整, 比起一年前,我有很多的心得体会。
对于很多开发者来说,内存泄漏都是一个老大难的问题。关于处理内存泄漏,你有可能会觉得太难,又或是太费时,又或者是觉得完全没有意义。但我要告诉你的是,事实并非如此。当你开始处理这些问题的时候,你会发现,这感觉超级棒。
在本篇文章中,我会以尽可能简单的方式讲解这些问题,即使你是一个初学者,也可以学习到如何构建一个高质量、高性能的应用。
垃圾回收
Java 是一个非常强大的语言。在 Android 中,我们几乎不会像 C / C++ 那样,手动分配和释放内存。因为 Java 会自动清理内存。
让我们来思考一个问题,如果 Java 内建的垃圾回收系统可以在我们不需要的时候自动回收内存,那我们为什么还需要关心内存呢?是因为垃圾回收机制不够完善吗?
当然不是,Java 垃圾回收机制当然是完善的。垃圾回收机制是可以正常工作,但是,如果我们的应用程序出现 Bug, 导致垃圾回收器不能正常检查出不需要的内存块,就会导致问题。
总体来说,是我们自己的代码错误导致垃圾回收不可用。不可否认,垃圾回收机制是 Java 最伟大的设计之一。
关于垃圾回收器
在处理内存问题之前,你需要了解垃圾回收器的工作原理。它的概念非常简单,但在它背后,有着极其复杂的逻辑。但是你也别担心,我们也只关心一些简单的概念。
如图所示,Android 或者 Java 应用程序都有一个起点,从对象的初始化,并且调用方法。我们可以认为,这个点就是图中的 “GC Roots”。有一些对象引用被 GC Roots 直接持有,剩下的则由它们自己创建并持有。
如此,整个引用链构成了内存树。垃圾回收器从 GC roots 开始,直接或间接的链接着其它的对象。当整个遍历结束,还有一些不能被访问到的对象,就是变成了垃圾,这些对象就会被垃圾回收器回收。
内存泄漏
到现在,你已经知道了垃圾回收的概念,也知道了垃圾回收在 Android 中是如何管理内存的。下面,我们将深入研究一下内存泄漏。
简单来说,内存泄漏是指你的对象已经使用结束,但是它却不能被释放掉。每个对象在完成它自己的生命周期过后,都需要从内存中清理出来。但是如果一个对象被另一个对象直接或间接的持有,垃圾回收器不能检查出它已经使用结束。朋友们,这样子就导致了内存泄漏。
值得庆幸的是,我们并不需要太担心所有的内存泄漏,因为并不是所有的内存泄漏都是有害的。有一些内存泄漏是无关痛痒(只泄漏几 KB 的内存),并且,在 Android Framwork 层也会有一些内存泄漏,但是你并不需要去修复,因为它们对 App 的性能影响微乎其微,你可以忽略。
但是有一些会引起 App 崩溃, 或者严重卡顿。这些都是需要你时刻注意的。
为什么要解决内存泄漏?
没有人会想使用一个又慢又占内存的应用。如果使用一段时间就会崩溃,你的用户也会“崩溃”掉,如果长时间出现这样子的问题,你的用户会毫不犹豫的卸载掉你的应用,并且再也不会使用它。
如果你的应用中存在内存泄漏,垃圾回收器不能回收不使用的内存,随着用户使用时间的增长,内存的占用会越来越多。如此下去,当系统不能在给它分配更多内存的时候,就会导致 OutOfMemoryError, 然后应用程序会崩溃掉。
垃圾回收有利有弊,垃圾回收是一庞大的系统,在应用中,尽可能少的让垃圾回收器运行,这样对应用体验会更好。
随着你的应用使用的堆内存逐渐增加,Short GC 就会触发,来保证立即清理无用对象。现在这些快速清理内存的 GC 运行在不同的线程中,这些 GC 不会导致你的应用变慢。
但是如果你的应用中存在严重的内存泄漏,Short GC 没有办法回收内存,并且占用内存持续增加,这将会导致 Larger GC 被触发。它会将整个应用程序挂起,阻塞大概 50~100ms,这会导致应用程序变慢并且有可能不能使用。
修复内存泄漏,减少对 App 的影响,给用户提供更好的体验。
如何发现内存泄漏?
现在,你已经认识到,你需要修复隐藏在你 App 中的内存泄漏。但是,我们如何才能找到它们呢?
Android Studio 为我们提供了一个非常强大的工具:Monitors。
通过它,你能看到网络、CPU、GPU、内存的使用情况。
在调试运行 App 的时候,要密切关注内存监视器。内存泄漏的第一个现象就是,在使用的过程中,内存一直增加,不能减少,即使你把 APP 退到后台也不能释放。内存分配监视器能够清楚的看到不同对象所占用的内存,可以清楚的知道哪个对象占用内存较多,需要处理。
但是,它本身还不够,它需要你指定时间,然后转存出对应的内存堆。这是一个很无趣的工作。
幸运的是,我们现在已经有更好的方式来实现。LeakCanary, 一个和 App 一起运行的库,它会在内存泄漏的时候,转存出内存信息,然后给我们发送一个通知并给我们一个有用的栈信息。
常见的内存泄漏
从我的经验来看,有很多相似且经常出现内存泄漏的问题,你在你每天的开发中,都有可能会遇到它们。一但你清楚了它们发生的时间、地点、原因 ,你就可以很轻松的修复它们。
未取消的 Listener很多时候,你在 Activity/Fragment 中注册了一个 Listener, 但是忘记取消注册了。如果你的运气不好,它很可能会引起一个严重的内存泄漏问题。一般来说,这些 Listener 的 注册与取消注册是同步出现的,在你使用的时候需要注册,在不使用的时候需要取消注册。
举个例子,当我们的应用程序需要获取定位的时候,需要使用 LocationManager,你会从系统服务中拿到它,并且给其设置一个地理位置更新的回调:
private void registerLocationUpdats {
mManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);mManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,TimeUnit.MINUTES.toMillis(1),
100,
this);
}
在代码中,可以看出来,使用了 Activity 自己来实现了地理位置更新的回调。LocationManager 会持有这个回调的引用。当你退出了这个页面,Android 系统会调用 onDestory ,但是垃圾回收器并不能清理掉它,因为 LocationManager 持有它的强引用。
当然,解决方案也很简单,就是在 onDestory 方法中,取消注册就可以了。
@Override
public voidonDestroy {
super.onDestroy;
if (mManager != ) {
mManager.removeUpdates(this);
}}
内部类内部类在 Java 和 Android 开发中经常用到,非常简单,但是如果使用不当,也会造成严重的内存泄漏。让我们先来看一个简单的例子:
public class BadActivity extends Activity {
private TextView mMessageView;
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_bad_activity);mMessageView = (TextView) findViewById(R.id.messageView);new LongRunningTask.execute;
}private class LongRunningTask extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
// 做一些耗时操作
return "Am finally done!";
}
@Override
protected voidonPostExecute(String result) {
mMessageView.setText(result);
}
}
}
这是一个很简单的 Activity 页面,在页面启动的时候,在后台启动了一个耗时的任务(比如说,复杂的数据库查询或者是很慢的网络)。等到任务执行结束,把拿到的结果显示到页面上。看起来,这样做并没有问题。事实上,非静态的内部类会隐式的持有外部类的引用(在这里,就是 Activity)。如果在耗时任务执行完之前,你旋转屏幕或者退出这个页面,垃圾回收器就不能从内存中清理掉 Activity 的实例。这个简单的问题会导致很严重的内存泄漏问题。
当然,解决方案也非常地简单,如下:
public class GoodActivity extends Activity {
private AsyncTask mLongRunningTask;
private TextView mMessageView;
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_good_activity);mMessageView = (TextView) findViewById(R.id.messageView);mLongRunningTask = new LongRunningTask(mMessageView).execute;
}@Override
protected voidonDestroy {
super.onDestroy;
mLongRunningTask.cancel(true);
}private static class LongRunningTask extends AsyncTask<Void, Void, String> {
private final WeakReference<TextView> messageViewReference;
publicLongRunningTask(TextView messageView) {
this.messageViewReference = new WeakReference<>(messageView);
}@Override
protected String doInBackground(Void... params) {
String message = ;if (!isCancelled) {
message = "I am finally done!";
}return message;
}@Override
protected voidonPostExecute(String result) {
TextView view = messageViewReference.get;if (view != ) {
view.setText(result);}}}}
正如你看到的代码,首先我将非静态内部类改成了静态内部类,这样它就不会持有外部类的引用了。当然,使用静态的内部类,非静态的变量就不能访问了。所以我们需要将 TextView 通过构造方法把它传过去。
在这里,我强烈推荐使用 WeakReference ,它能更好的避免引起内存泄漏。你应该去学习 Java 中关于不同引用类型的知识:
http://javarevisited.blogspot.in/2014/03/difference-between-weakreference-vs-softreference-phantom-strong-reference-java.html
匿名内部类匿名内部类也是在开发过程中经常使用到的一个东西,它的定义和使用都非常的简洁。但以我的经验来看,匿名内部类造成了大量的内存泄漏的问题。
匿名内部类与非静态内部类相似,造成内部类的原因也和上面说的一样。你有可能在好多地方都使用了匿名内部类,如果使用不当,会严重影响 App 的性能。
public class MoviesActivity extends Activity {
private TextView mNoOfMoviesThisWeek;
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_movies_activity);mNoOfMoviesThisWeek = (TextView) findViewById(R.id.no_of_movies_text_view);MoviesRepository repository = ((MoviesApp) getApplication).getRepository;repository.getMoviesThisWeek.enqueue(new Callback<List<Movie>> {
@Override
public voidonResponse(Call<List<Movie>> call,
Response<List<Movie>> response) {int numberOfMovies = response.body.size;
mNoOfMoviesThisWeek.setText("No of movies this week: " + String.valueOf(numberOfMovies));
}@Override
public voidonFailure(Call<List<Movie>> call, Throwable t) {
// Oops.
}
});
}
}
上面的例子中,我使用一个常用的网络库 Retrofit 发送了一个网络请求,然后在 TextView 中显示返回的结果。很明显,那个 Callback 对象持有 Activity 的引用。如果现在网络很慢,在网络响应回来之前,页面旋转或者关闭,就会导致 Activity 泄漏。
我强烈建议,在需要的时候,尽量使用静态的内部类,而非匿名内部类。当然,我的意思不是不在使用匿名内部类,如果你需要使用匿名内部类,你需要注意引起内存泄漏的问题,保证不会出现问题。
Bitmaps在应用中,你看到的所有图片都是 Bitmap 对象,包含了所有的像素数据。现在这些 Bitmap 数据非常的大,一个处理不好,就会引起 OOM, 造成 APP 崩溃。在 APP 中使用的图片资源生成的 Bitmap 会由系统进行管理,但是如果你需要自己处理 Bitmap ,要记住,使用完过后要调用 bitmap.recycle 来释放资源。
标签:
相关阅读
-
天天实时:csdn泄露数据(个人信息泄露处理方法) 关于垃圾回收器
对于众多Android程序员而言,在需求与应用性能之间,主要精力都会放到新需求的开发。随着项目复杂度的增...
2022-11-28 -
当前播报:联想显示器19寸型号(讲解联想thinkvision显示器尺寸)一起来看看
IT之家7月9日消息除ThinkVisionM14t便携显示器外,联想昨晚还发布了三款商用办公显示器:ThinkVisionP32...
2022-11-28 -
世界热点评!苹果4尺寸是多少英尺(简介iPhone 4屏幕大小及材料)
把时间调转回十年之前。2010年6月8日1:00,苹果公司在美国旧金山MosconeWest会展中心召开了“2010年苹...
2022-11-28 -
关键词筛选工具有哪些(新手必知这7个关键词工具:Ahrefs Site Explorer)
关键词的重要性不言而喻。无论是广告还是自然搜索排名都跟关键词有关,它关系着listing的权重,甚至会影...
2022-11-28 -
天天实时:csdn泄露数据(个人信息泄露处理方法) 关于垃圾回收器
对于众多Android程序员而言,在需求与应用性能之间,主要精力都会放到新需求的开发。随着项目复杂度的增...
2022-11-28 -
当前播报:联想显示器19寸型号(讲解联想thinkvision显示器尺寸)一起来看看
IT之家7月9日消息除ThinkVisionM14t便携显示器外,联想昨晚还发布了三款商用办公显示器:ThinkVisionP32...
2022-11-28 -
世界热点评!苹果4尺寸是多少英尺(简介iPhone 4屏幕大小及材料)
把时间调转回十年之前。2010年6月8日1:00,苹果公司在美国旧金山MosconeWest会展中心召开了“2010年苹...
2022-11-28 -
关键词筛选工具有哪些(新手必知这7个关键词工具:Ahrefs Site Explorer)
关键词的重要性不言而喻。无论是广告还是自然搜索排名都跟关键词有关,它关系着listing的权重,甚至会影...
2022-11-28 -
世界观天下!IDC:2026年中国IT安全市场投资规模将达319亿美元
C114讯11月28日消息(安迪)市场研究机构IDC发布的《IDCMarketForecast:中国网络安全市场预测,2022-2026...
2022-11-28 -
世界今日报丨iPhone6 Plus多少钱?iPhone6 Plus价格
iPhone6Plus多少钱?iPhone6Plus参考价格分别是16GB6088人民币,64GB6888人民币和128GB7788人民币。iPho...
2022-11-28 -
每日短讯:GWX.exe GWX.exe是什么进程 GWX程序的路径在哪?
GWX是什么进程?GWX是微软在KB3035583补丁中向Windows7 Windows8用户提供Windows10升级通知的一个软件...
2022-11-28 -
短讯!什么是Shader model 3.0 一起来看看
ShaderModel3 0的简写为SM3 0,SM3 0技术是DirectX9 0C级别显卡全面支持的一项特效。SM3 0在很大程...
2022-11-28 -
世界微资讯!华硕笔记本怎么分区 华硕笔记本分区方法 看完你就懂了
系统是win7或win8及win8 1。我们可以直接利用系统自带的磁盘管理进行分区。右击桌面上的计算机选择“管...
2022-11-28 -
天天速讯:英雄集结为荣耀开战,2022全民娱乐线上赛上海赛区报名开启
2022全民娱乐线上赛上海赛区将于12月1日正式拉开序幕,本次大赛由中国移动通信集团主办,咪咕互动娱乐有...
2022-11-28 -
环球焦点!峡谷之战一触即发,2022全民娱乐线上赛广州赛区报名进行时
英雄峡谷集结,大战一触即发。11月28日,2022全民娱乐线上赛广州赛区报名通道现已全面开启,本次大赛由...
2022-11-28
精彩推荐
阅读排行
相关词
- 天天亮点!电烤箱能做哪些食物 电烤箱食谱介绍 快跟小编学起来
- 全球焦点!隆胸后如何按摩手法 隆胸半年后还是硬怎么办
- 神十五乘组确定:费俊龙邓清明张陆 要做这六件事
- 环球简讯:我国民企完成首次卫星互联网5G信号测试
- 全球消息!房间的秘密结局有哪些一览
- 原神鹤观石板位置在哪?鹤观石板集齐后在哪里用?
- 世界今日报丨iPhone6 Plus多少钱?iPhone6 Plus价格
- 当前热文:一体机电脑好不好 一体机电脑的优势
- 世界观天下!IDC:2026年中国IT安全市场投资规模将达319亿美元
- 金融发展报告:创新应恪守“负责任金融“理念 警惕运用AI过度
- 天天滚动:集采终结天价,种植牙公司为何选择拥抱
- 前沿资讯!神十五航天员首次集体亮相:邓清明为“飞天”准备24年终圆梦
- 环球快资讯:中国工程院院士崔愷:城市更新“一地一策”,避免模式化、套路化
- 全球热议:《巫师3》次世代版新截图 杰洛特、希里如父如女
- 航海王热血航线布满碎石的灰白海岸在哪里?撒谎布的宝藏任务如何做?
- 全球即时:诺基亚c600怎么样 诺基亚c600参数配置 你觉得如何
- 金投赏丨宝尊集团首席营销官Joyce:品牌穿越自身周期,需要“韧性”的力量
- 焦点要闻:雷蛇曼巴眼镜蛇4g双模鼠标如何 (雷蛇曼巴眼镜蛇4g基本参数)
- 今日快讯:商务部:初步确定12个全国示范智慧商圈、16个全国示范智慧商店
- 环球快资讯丨iPad游戏下载排行榜 ipad游戏排行榜 你玩过哪几个?
- 今日热搜:诺基亚滑盖智能手机推荐以及报价 你觉得如何
- 巅峰之战再铸传奇,2022吉林移动云游戏电竞大赛总决赛华丽落幕
- 天天精选!宏观周报:央行降准0.25% “保交楼”专项借款加速落地
- 全球实时:我国高压直流输电 “变速箱”实现国产化
- 焦点快报!江苏联通与蜂巢能源达成5G+数字能源合作
- 全球视点!TikTok在北美推电商业务,要抢希音还是亚马逊的市场?
- 每日聚焦:IPADTV怎么用 Ipadtv遇到的问题及解决方法
- 焦点观察:战毒大结局 剧情简介
- 北京2022年下半年全国大学英语四、六级考试(笔试)延期举行
- 当前滚动:航天新征程 | 17年前太空翻筋斗,他将再度“飞天”!
- 最新消息:《JOJO群星之战R》将免费追加两名第六部角色
- 【全球快播报】Intel PM45芯片组是什么 下文带你了解
- qq飞车荣誉等级排行是怎样的?qq飞车荣誉有什么用途?
- 全球微动态丨骆文博刘福洋为啥分手,骆文博是跳什么舞的
- 天天速讯:英雄集结为荣耀开战,2022全民娱乐线上赛上海赛区报名开启
- 天天最新:开启绿茵传奇全新篇章,2022四川移动云游戏电竞大赛第一场线上赛顺利完赛
- 伪装者大结局是什么 汪曼春怎么样了
- 快资讯:峡谷王者荣耀登场,2022全民娱乐线上赛郑州赛区圆满收官
- 《最终幻想14》海德林咖啡餐厅营业中 主题餐品大放送
- 世界要闻:《糖豆人:终极挑战赛》联动街霸服装表情上线
- 首批北证50指数基金产品周二开售,相关成份股成市场关注焦点
- 滚动:侠盗猎车手5(GTA5)PC版作弊码秘籍 有三种方式可以实现
- 全球热推荐:三星S6多少钱_三星S6价格 三星S6手机好不好?
- 环球时讯:王海打假“疯狂小杨哥”,“罗生门”背后多少带货潜规则
- 载人航天办:欢迎其他国家航天员进入中国空间站开展实验
- 树先生是谁,《Hello!树先生》人物介绍
- DOTA2剑圣至宝怎么解锁?剑圣至宝和执剑泰斗有冲突吗?
- 视讯!还有什么等待还有什么悲哀是什么歌 谁唱的
- 微软:建议索尼将第一方游戏首发加入PS Plus
- 全球今亮点!电风扇扇叶越多越好吗?电风扇扇叶转不动是什么原因
- 速看:高性价比电脑k歌声卡推荐:华硕Xonar D-KARAX
- 梦幻西游暗影龙如何打?暗影龙任务在哪接?
- 全球新动态:打破传统,为什么说复合集流体是电池降本新方向?
- 【全球报资讯】吴玉相是谁演的,吴玉相的原型是谁 出自哪个作品
- 塞尔达传说神庙任务有多少个?塞尔达里面共有多少个神庙?
- 全球快看:免费打电话软件有什么(微信电话本)
- 【世界聚看点】索尼tx10怎么样 索尼tx10相机测评简介(外观测评)
- 【天天热闻】花千骨东方彧卿扮演者,一共有多少集?
- 屏蔽手机信号的方法大全 (手机信号屏蔽设备)
- 焦点滚动:swissgear是什么牌子 是哪个国家的品牌
- 视焦点讯!pigeon是什么牌子 你购买过这个品牌产品吗
- 热点聚焦:搓泥宝真的能搓掉身上的泥吗,搓泥宝好用吗,你有用过吗
- 每日焦点!云中歌结局孟珏死没死,云中歌主演是谁
- 环球快报:蔡卓宜的婚史,蔡卓宜离过婚吗?
- 郑现实和天真是什么电视剧,《天真碰到现实》结局
- 把脉天气 他们这样为神舟十五号发射选良辰
- 世界快看:谢怜花城第一次接吻在第几章,《天官赐福》人物介绍
- 韩庚以前的组合叫什么 为什么解散了
- 那英的老公是谁,那英个人资料介绍
- 伤感的歌曲-好听的伤感歌曲50首 你都听过吗
- 即时焦点:西游记三打白骨精是第几集 白骨精最后怎样了
- 世界今热点:王露露隋然宁馨要50万是第几集,结局好吗
- itunes备份文件在哪里?itunes备份很慢怎么办?
- 公元1年是中国哪一年?公元前后怎么计算?
- 借记卡是什么卡?16周岁能办什么银行卡?
- 柴犬和秋田犬的区别有哪些?养什么狗最省心?
- 德国汽车有哪些品牌?德国车和英国车哪个更好?
- 豪华越野车有哪些?顶级越野车排行榜一览
- 上海车牌如何拍卖?上海车牌拍卖价格走势是怎样的?
- 显示桌面快捷键是什么?两个窗口怎么来回切换?
- 苹果一体机散热怎么样?苹果一体机和台式机哪个好?
- 笔记本电脑主频是什么?笔记本主频高低影响什么?
- lol电脑配置要求高吗?如何检测电脑能不能玩lol?
- 电脑开机显示指令错误是怎么回事?错误代码怎么解决?
- nokia如何恢复出厂设置?手机恢复出厂设置还能找回照片吗?
- 国产笔记本电池品牌有哪些?笔记本电池容量在哪里看?
- 15.4寸笔记本尺寸是多少?16寸笔记本会不会太大?
- 电脑外观图片如何下载?电脑外观在哪里设置?
- windows安全报警是怎么回事?防火墙安全警报怎么关闭?
- 泾渭分明是发生在哪里的奇特景观?为什么泾水清渭水浑?
- 恐龙灭绝的原因有哪些?恐龙灭绝的陨石坑在哪?
- 乐府双璧指的是什么?古代乐府的职责有哪些?
- 杜甫被后世称为什么?杜甫的代表诗有哪些?
- 什么是物联网?学物联网专业可以找什么工作?
- 闻鸡起舞的主人公是谁?闻鸡起舞的背景故事是什么?
- 京沪高铁上市时间是什么时候?京沪高铁是国企还是央企?
- 东风金融官方客服电话,直达您的资金需求
- 58同城股票代码是多少?电子商务的上市公司有哪些?
- 网上银行有哪些?企业网上银行是什么?
- 银行卡号查询方式有哪些?微信绑卡怎么能看到全部卡号?
- 开通网上银行要钱吗?开通网银和不开通的区别有哪些?
- 余额宝和活期宝哪个好?中国银行理财产品哪一个好?
- 公司职位有哪些?公司高管职务排名顺序是怎样的?
- 董事长职责有哪些?一个企业有哪些高管职位?
- 一炷香的时间是多久?一盏茶是多长时间?
- 27日0时—24时,海南省新增感染者45例!
- 热议:三亚经济圈着力点在哪儿,将会干什么?
- 环球看点!《烟雨江湖》28日新副本上线
- 《暖雪》绝世武器图鉴&属性与神兵特效一览(5)
- 六朝古都是哪个城市?北京是五朝古都还是六朝古都?
- 2022年海南省三对三篮球公开赛收官 海南盛丰队获成人组冠军
- 《糖豆人:终极挑战赛》联动街霸服装表情上线
- 《极品飞车22》PS5版容量曝光 仅29.4GB
- 传颂之物的衍生游戏新作《义贼侦探诺斯里》公布
- 2022年11月27日0时-24时,海南新增感染者45例
- 【环球时快讯】《拥堵的城市》11月28日10时新服开启
- 《极品飞车22》PS5版容量曝光 仅29.4GB
- 海南椰岛拟定增约6.5亿元股票 意在更换实控人
- 世界视点!《街头霸王6》发布开发者比赛实机视频
- 微速讯:原神复原械画部件第六关通关方法
- 世界微动态丨《糖豆人:终极挑战赛》联动《街头霸王》 联动服装和表情上线
- Steam新一周销量榜 Deck再次登顶
- 每日看点!弯道弹球官网在哪下载 最新官方下载安装地址
- 《JOJO群星之战R》将免费追加两名第六部角色
- DC总裁确认华纳将来的游戏将和DC宇宙相连
- 速讯:星际火狐画师为Switch开发《欧米茄6》改编游戏
- 全球热头条丨《巫师3》次世代版新截图 杰洛特、希里如父如女
- 天天资讯:《JOJO群星之战R》将免费追加两名第六部角色
- 天天观热点:《巫师3》次世代版不支持跨平台同步成就 还得重玩一遍
- 环球聚焦:《巫师3》次世代版新截图公布 将于12月14日上线
- 《极品飞车22》PS5版容量曝光 仅29.4GB
- 《索尼克:未知边境》是未来索尼克系列的全新基础
- 百事通!Steam新一周销量榜出炉 Deck再次登顶
- 文旦和柚子的区别是什么?文旦比柚子贵吗?
- 手机锁屏密码忘了怎么解开?vivo怎么跳过密码打开手机?
- 行李箱尺寸有哪些?24寸和26寸行李箱哪个更实用?
- 全球微动态丨摩尔庄园手游旅行咩位置在哪
- 色彩三要素是什么?三原色基础知识了解一下
- 辰时是几点到几点?十二时辰顺口溜了解一下
- 三江源指的是哪三江?怒江的源头和终点在哪里?
- 创业播播播什么时候出 公测上线时间预告
- 长鼓舞是哪个民族的舞蹈?锅庄舞是什么民族的舞?
- google海外推广是什么?如何在google上免费推广?
- 引进博士、硕士、本科毕业生,海南落户购房补贴政策来了
- 关键词排名工具有哪些?关键词排名怎么做上去?
- 全球微头条丨《盾之勇者成名录浪潮》灵能之塔通关阵容选择
- 什么是竞价排名?竞价排名的主要作用有哪些?
- 环球焦点!《咸鱼之王》水上足球玩法指南
- 什么是出口结汇?出口结汇有哪些方法?
- 跨境购物网站有哪些?中国跨境电商有哪些平台?