如何偷Android的快递偷电脑内存条

Android 总是内存不足,该怎么办啊?
招聘信息:
之前在征集有用功选题的时候,我们收到被提到很多次的问题一则:「Android 手机用着总是内存不够,有解决方案没?」我们经常说到内存不够用,似乎市面上也提供了各种各样的办法。悬浮窗杀进程、绿色守护、或者直接手动一个个关闭后台应用,这些操作是否能让手机重焕黄油般顺滑的青春?不如先卖个关子。Android 的手机内存是什么?有很多技术词汇可以描述手机 RAM,也就是手机内存。为了方便这篇文章的理解,我们只需要知道,内存能以最快的速度存储临时信息。俗话说「远亲不如近邻」,当我们真的有急事时,从其他城市甚至国家赶来帮忙当然不够快,而「近邻」就是内存了,它能第一时间用最快地速度帮你解决问题。所以当我们在给自己美颜或 P 图时,处理的照片和运行的应用,都发生在内存中,这样才能保证一切功能都足够流畅。只有磨完皮,放大完眼睛直到你满意后,你的内存才能小憩一下。所以你看,内存越多,往往就能够做到更多的事情,比如打开更多的网页、运行更多的 App,而需要随时切换应用时,当然也需要大容量的内存。需要注意的是,目前旗舰 Android 机内存也在 4G 左右,所以当别人说到手机的「32G 内存」时,那自然不是 RAM 啦,起码这两年不是。Android 是如何处理内存和应用的?在 Windows 系统中,我们也许希望能够腾出更多内存去完成工作,因为一旦内存宣布已满,Windows 则会傲娇地拿硬盘替补内存,当然速度也会慢很多。如此推理下来,那 Android 也要避免这样的情况,时刻腾内存咯?答案是:完全不需要!对于 Android 系统,Google 早已准备好了足够智能的分配方法,内存不够时也能自动回收。有时候,Android 甚至刻意让应用提前加载到内存中,只为能够被用户随时调用。还记得之前说的吗?内存拥有最快的读取速度,而一分一秒都影响用户体验的今天,把应用们放在内存里,当然也是一件好事。在这里,内存就相当于工作用的书桌,相比书柜(也就是手机储存),虽然堆满资料和文具,但你总能方便地第一时间使用他们,而贴心的 Android 会帮你做好收拾桌面这件事。不过,Android 之前的内存把控水平也没有想象中那么好。从 Android 2.3,直到今天的棉花糖的 Android 6.0,才开始被大家表扬。一张广为流传的图,就是拿来吐槽 Android 5.1 之前的内存回收问题:桌面悬浮球,我每隔五分钟清一次,这样还卡?我们经常说,Android 想要永葆年轻,全靠折腾。但折腾有度,更要有方法,如果你看过某些科普文,也许你会觉得所谓自动杀进程、内存加速是件不好不坏,又无可厚非的事情。可别这么想,也许他们真的只是在帮倒忙。且不说一个偌大的悬浮框占据了本身就不大屏幕,Android 的内置储存也和传统的电脑硬盘机制不同,采用的闪存技术更加类似于固态硬盘,自然不需要额外去整理。另外,硬件的读取次数也是有限的,随着一次次清理,存储硬件的寿命也一点点被耗进,自然也会越来越慢。如果你是原生控,或者反感杂乱的桌面,也许下图这样的桌面并不适合你:还有一点,当我们杀进程时,其实只能在表面上关闭他们。下一次收到通知、或者人为重新打开,甚至因为各种各样的情况被唤醒时,忙碌的 Android 又要将这些应用重新放上内存中。还记得吗,只有内存是最快的,而从内置储存调用一个应用,当然速度也会跟不上。最让人头疼的是,大部分自动清理内存的应用,注意是「自动」,它们本身也需要消耗一部分内存和 CPU,以便他们随时监控、杀死其他应用,而且还是常驻后台的。在实际的测验中,他们不仅表现得无效,对于电池和手机储存寿命也产生了很大的消耗。而折腾完这一切后,就这样没有任何回报地伤害了自己的爱机,当然处女座心中的满足感可以例外。实际可行的办法虽然我们完全不需要额外的应用帮我们杀进程、清理内存,但 Android 的内存越大越好确是事实。换个角度去理解:内存越紧张,自然体验和速度都会相应下降。在「系统设置」-「应用程序」-「正在运行」中,你能看到目前的内存占用情况。如果选择尝鲜 Android 6.0 系统,则会提供更加详细地报告,包括当前内存使用情况评价,固定时间段中内存占用情况等。当然,谁都不希望看到内存永远不够用、手机时常卡、切回应用发现已经被后台杀掉的情况,以下是一些实际可行的办法:1. 禁用/卸载应用程序、禁用动画、动态壁纸:占用内存最多的就是应用程序,请果断禁用或者卸载那些不需要的应用吧。Android 4.0 以上的系统,都可以在「系统设置」-「应用程序」-「全部」中选择并停用不需要的内置应用,而不需要 root,他们也不会再占据你的内存。当你需要时可以方便地还原而不会丢失。但要小心,不是所有不需要的应用都可以禁用,在停用前请确保不会影响系统的稳定。Android 5.0 之后系统动画已足够优雅,但如果内存持续吃紧,在设置中找到「开发者模式」(找不到的同学,在「关于手机」中找到「版本号」,连续点击 7 次即可解除封印),将其中「窗口动画缩放」、「过渡动画缩放」和「动画程序时长缩放」三项都关闭,它们就再也不会偷到一点内存。当然,如果你都设成 0.5x,在观感上也许会觉得更加流畅。不用担心,打开开发者选项后,除非人为调整了其中的参数,它的开启不会对手机产生任何影响。别忘了桌面小部件和动态壁纸,他们频繁的刷新也随时在吃内存。所以合理地规划桌面小部件的数量,自然也是优化内存的重要一步。但由于每个人的使用习惯不同,所以这里不做更多要求。2. 选择更加轻量级的替代品:这里不提流氓应用,毕竟选择正确的应用市场(诸如 AppSo 永远优先推荐的 Google Play)可以避开大部分。接下来主要针对的,是那些不够安分的应用们:因为各种原因,它们热衷于互相唤醒、采用陈旧的接口且强占后台。当然,崇尚自由的 Android 用户怎么可能束手无策呢。拥有复杂架构的产品,对于内存的占用自然也不会少。如果你留心我们往期的 Android 部分文章,你能发现足够多的优质产品,它们不仅能够完美替代那些复杂的产品,设计上更加美观,当然也足够轻量。这里带着情怀提供一个不够客观的辨别方法:如果这款应用采用了 Material Design 风格,那它对你的手机也许会更加友好。而相比许多国内大厂产品,一旦你掌握了搭梯子技能后,Google 服务也会成为绝赞的替代品。3. 冰箱 Ice Box + 绿色守护:也许你的手机管家已经让你关闭了应用的开机自启,但其实这样的作用并不大。对于许多大厂应用,它们唤醒的方式可比你想象的要丰富得多,甚至连上 Wi-Fi 也能成为它唤醒的理由。还有一点需要强调的是,由于 Android 的内存机制,许多本没有必要的后台服务,或者推送服务,因为优先级较高,不仅耗电,对于内存的占用也不少。所以对于这些不老实却又无法割舍的应用,冰箱 Ice Box 和绿色守护这两款应用一定能帮到你。先说前者,冰箱 Ice Box 名副其实,它能将你不喜欢却偶尔不得不用的应用冷藏起来,毕竟 Android 系统还不能「停用」非系统应用。比如说,某些银行应用,图标丑到不忍放在首页,却又总是占着一部分内存,你就可以选择用冰箱将它们「停用」,相当于被临时删除,而不会丢失原本的数据,需要时直接从冷宫里召回来就行。这样做的好处,等于为不常用的应用额外归档,而不需要时他们会完全消失,对手机不会产生任何影响。一旦需要时,即点即开又能顺场地使用,也就不用再强迫症地装完删、删完又装。而后者绿色守护,早已在 Android 的玩家圈子中拥有不错的名气。如果说那些清理内存的悬浮球们,是为了杀死进程,那绿色守护则是一边杀死他们,同时又确保他们不会「诈尸」,不再悄悄唤醒自己并偷走剩下的内存。当然,这样的说法太粗鲁,我们管这个步骤叫做「绿色化」。不过,「绿色化」一个应用,意味着我们确实希望它在不启动的时候休眠,而这款应用的后台功能也会随之停止。所以对于有用的推送(比如微信的消息提醒等)、系统应用以及输入法等常用应用,请谨慎对待。由于篇幅限制,这两款应用的具体原理和操作方法请各位自行搜索。对于 AppSo 的 Android 老读者来说,使用起来一定不会觉得困扰。需要注意的是,两款应用都需要 root 权限。4. 最后的暗器 My Android Tools:上面的两款应用,都在不同程度阻止了不安分应用的「非必要占内存」行为。而 My Android Tools 则不太一样。一款应用中包含了不同的服务,而它将从内部对应用进行开刀,把不老实或非必要却占内存的部分全部切掉。换句话说,通过手动调试,让用户自行「精简」一款应用。举个例子,对于 QQ 的会员功能、钱包、网上营业厅,还有部分无用唤醒,都不是基本功能,甚至可能永远都不会用上,通过这款工具就能轻松地关闭他们(当然也能随时复原)。处理后的 QQ 占据的内存也只有之前的一半了,且丝毫不影响核心功能。当然,为应用动手术这件事情,也要求一定的技术积累,对于没有经验的新手,一定要了解这样的操作可能带来应用不稳定的风险。推荐新手去知乎或其他平台搜索关键词「My Android Tools」,详尽的手把手教程一定能解答许多困扰。5. 选择一个更好的 ROM至此,我们通过软件方面的努力,已经能让小内存的 Android 机器缓一口气了,但最后别忘了系统升级这件事。我们经常遇到三星剩余 600M 的内存却依然卡顿,而换成 CM 系统(由 Cyanogen 团队开发的一款开源 Android 系统)低内存机却十分流畅的情况。毕竟系统底层的改动和优化,还有不同开发者对于内存机制的安排,对于试用体验的提升也非常大。如果有条件,且乐于折腾刷机这件事,请务必升级到更高级的系统。毕竟 512MB 在 2015 年依旧顺滑的神话,也是从 Android 4.4 之后才开始的。Android 4.4 以上的系统,不仅能够解决内存泄露的问题,同时还自带 ART 模式,能给低内存手机带来明显的速度提升。(Android 5.0 版本的系统存在内存泄露的问题隐患,需要注意。)6. 最后一个办法:直接换手机许多人都会感到困扰:为什么我的手机总是越用越慢呢?许多时候我们会通过软件上的操作,去对抗手机越来越卡的问题。但很多时候,我们也忽略了硬件的损耗,尤其是手机储存模块的消耗,随着长时间的使用,老化和损耗不可避免。而许多手机厂家为产品定位时,对于手机的生命周期设计也就在一两年左右。所以当老手机总觉得内存不够,经常一卡一卡的,花点钱换一台 4G 内存的手机也是不错的选择。毕竟内存、电池这些东西,就应该拿来为你服务,不是吗?
微信扫一扫
订阅每日移动开发及APP推广热点资讯公众号:CocoaChina
您还没有登录!请或
点击量4558点击量2429点击量2075点击量2048点击量1886点击量1809点击量1746点击量1729点击量1657
&2018 Chukong Technologies,Inc.
京公网安备89gamekiller的实现原理是什么?如何在android跨进程读取另一个app的内存数据 - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。2被浏览610分享邀请回答11 条评论分享收藏感谢收起写回答Android防止内存泄漏的八种方法(下)
在上一篇中,我们讨论了八种容易发生内存泄漏的代码。其中,尤其严重的是泄漏Activity对象,因为它占用了大量系统内存。不管内存泄漏的代码表现形式如何,其核心问题在于:
在Activity生命周期之外仍持有其引用。
幸运的是,一旦泄漏发生且被定位到了,修复方法是相当简单的。
Static Actitivities
private static MainA
void setStaticActivity() {
activity = this;
构造静态变量持有Activity对象很容易造成内存泄漏,因为静态变量是全局存在的,所以当MainActivity生命周期结束时,引用仍被持有。这种写法开发者是有理由来使用的,所以我们需要正确的释放引用让垃圾回收机制在它被销毁的同时将其回收。
Android提供了特殊的Set集合
允许开发者控制引用的“强度”。Activity对象泄漏是由于需要被销毁时,仍然被强引用着,只要强引用存在就无法被回收。
可以用弱引用代替强引用。.
弱引用不会阻止对象的内存释放,所以即使有弱引用的存在,该对象也可以被回收。
private static WeakReference&MainActivity& activityR
void setStaticActivity() {
activityReference = new WeakReference&MainActivity&(this);
Static Views
静态变量持有View
private static V
void setStaticView() {
view = findViewById(R.id.sv_button);
由于View持有其宿主Activity的引用,导致的问题与Activity一样严重。弱引用是个有效的解决方法,然而还有另一种方法是在生命周期结束时清除引用,Activity#onDestory()方法就很适合把引用置空。
private static V
public void onDestroy() {
super.onDestroy();
if (view != null) {
unsetStaticView();
void unsetStaticView() {
view = null;
Inner Class
private static O
void createInnerClass() {
class InnerClass {
inner = new InnerClass();
与上述两种情况相似,开发者必须注意少用非静态内部类,因为持有外部类的隐式引用,容易导致意料之外的泄漏。然而内部类可以访问外部类的私有变量,只要我们注意引用的生命周期,就可以避免意外的发生。
避免静态变量
这样持有内部类的成员变量是可以的。
void createInnerClass() {
class InnerClass {
inner = new InnerClass();
Anonymous Classes
前面我们看到的都是持有全局生命周期的静态成员变量引起的,直接或间接通过链式引用Activity导致的泄漏。这次我们用AsyncTask
void startAsyncTask() {
new AsyncTask&Void, Void, Void&() {
@Override protected Void doInBackground(Void... params) {
while(true);
}.execute();
void createHandler() {
new Handler() {
@Override public void handleMessage(Message message) {
super.handleMessage(message);
}.postDelayed(new Runnable() {
@Override public void run() {
while(true);
}, Long.MAX_VALUE && 1);
void scheduleTimer() {
new Timer().schedule(new TimerTask() {
public void run() {
while(true);
}, Long.MAX_VALUE && 1);
全部都是因为导致的。匿名类是特殊的内部类——写法更为简洁。当需要一次性特殊的子类时,Java提供的语法糖能让表达式最少化。这种很赞很偷懒的写法容易导致泄漏。正如使用内部类一样,只要不跨越生命周期,内部类是完全没问题的。但是,这些类是用于产生后台线程的,这些Java线程是全局的,而且持有创建者的引用(即匿名类的引用),而匿名类又持有外部类的引用。线程是可能长时间运行的,所以一直持有Activity的引用导致当销毁时无法回收。
这次我们不能通过移除静态成员变量解决,因为线程是于应用生命周期相关的。为了避免泄漏,我们必须舍弃简洁偷懒的写法,把子类声明为静态内部类。
静态内部类不持有外部类的引用,打破了链式引用。
所以对于AsyncTask
private static class NimbleTask extends AsyncTask&Void, Void, Void& {
@Override protected Void doInBackground(Void... params) {
while(true);
void startAsyncTask() {
new NimbleTask().execute();
private static class NimbleHandler extends Handler {
@Override public void handleMessage(Message message) {
super.handleMessage(message);
private static class NimbleRunnable implements Runnable {
@Override public void run() {
while(true);
void createHandler() {
new NimbleHandler().postDelayed(new NimbleRunnable(), Long.MAX_VALUE && 1);
private static class NimbleTimerTask extends TimerTask {
@Override public void run() {
while(true);
void scheduleTimer() {
new Timer().schedule(new NimbleTimerTask(), Long.MAX_VALUE && 1);
但是,如果你坚持使用匿名类,只要在生命周期结束时中断线程就可以。
private Thread thread;
public void onDestroy() {
super.onDestroy();
if (thread != null) {
thread.interrupt();
void spawnThread() {
thread = new Thread() {
@Override public void run() {
while (!isInterrupted()) {
thread.start();
Sensor Manager
void registerListener() {
SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ALL);
sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_FASTEST);
使用Android系统服务不当容易导致泄漏,为了Activity与服务交互,我们把Activity作为监听器,引用链在传递事件和回调中形成了。只要Activity维持注册监听状态,引用就会一直持有,内存就不会被释放。
在Activity结束时注销监听器
private SensorManager sensorM
public void onDestroy() {
super.onDestroy();
if (sensor != null) {
unregisterListener();
void unregisterListener() {
sensorManager.unregisterListener(this, sensor);
Activity泄漏的案例我们已经都走过一遍了,其他都大同小异。建议日后遇到类似的情况时,就使用相应的解决方法。内存泄漏只要发生过一次,通过详细的检查,很容易解决并防范于未然。
是时候做最佳实践者了!
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!平板/笔记本
HiLink生态产品
终端云服务专区
再也不吃内存?Android 6.0将引入墓碑机制
&独步江湖&
来自:浏览器
手机内存一直感觉不够用,不要怕,福利到啦!
由于安卓系统运行机制的缺陷,要想运行流畅就必须要有足够的内存。虽然谷歌宣传512MB足以,但这仅仅是系统空载而言,一旦手机同时运行很多APP,再多的内存也能被吃光。
1_副本.png (139.04 KB, 下载次数: 1)
09:45 上传
5月28日凌晨,谷歌正式发布了Android M(6.0开发者预览版),声称将有效的“降低内存占用”。事实果真如此吗?马上为你揭开答案。
2.png (37.9 KB, 下载次数: 0)
09:46 上传
每一次Android有新版本发布时,都会有消息说512MB内存足够了,但每次都成为泡影。从Androi.3到5.1,512MB内存的确能够保证系统流畅。但安装了软件之后,一切都变了。别说512MB内存了,1GB内存都照样卡。
从Android 2.3到5.1,谷歌一直对Android进行优化,从“黄油计划”到“ART模式”。不过改变的不过是操作系统本身而已,它并不能对厂商的软件进行优化,真正决定系统流畅程度的是第三方软件,尤其是微信、QQ以及浏览器等常用的应用程序。
3_副本.png (98.4 KB, 下载次数: 1)
09:45 上传
因为安卓系统的开放性,加上很多APP无需上架谷歌商店就能发布,这就造成了手机APP质量良莠不齐的现象。很多软件的开发都是怎么赚钱怎么来,除了集成大量广告SDK外,还滥用系统权限。所以绝大多数的手机APP,除了开机自启动,还经常在后台偷偷运行。
既然没办法在上架应用商店之前卡住这些流氓APP,谷歌决定从系统底层入手。在Android 6.0中,谷歌官方还将对内存管理进行进一步的优化。对于非社交类的APP,安卓6.0会启用“墓碑机制”,后台运行时将不再占用内存。升级到安卓6.0后,512MB内存都可以流畅到爆。
4_副本.jpg (38.37 KB, 下载次数: 0)
09:47 上传
与此前的“黄油计划”和“ART模式”相比,Android6.0的墓碑机制才是真正的治本之道。Android6.0将不再过分在意系统本身的流畅度,而是把注意力放在了第三方APP上,因为这有把这些不安分的APP给管好了,才不至于把原本就很流畅的系统给拖慢。
5_副本.jpg (11 KB, 下载次数: 0)
09:46 上传
墓碑机制的引入,Android 6.0将拥有媲美WP与iOS系统的流畅性,你的手机再也不用担心内存不够用了。小伙伴们,欢呼吧!
width:100%">
&渐入佳境&
来自:浏览器
只有华为自己的系统可以拯救安卓。
width:100%">
&已臻大成&
来自:浏览器
马克,留个脚印
苦逼的生活
width:100%">
&自成一派&
来自:浏览器
这个留个脚印
width:100%">
&炉火纯青&
来自:浏览器
墓碑?是啥
width:100%">
&炉火纯青&
来自:浏览器
很奇怪iOS系统用的是什么机制?可以做到那么流畅
width:100%">
&登堂入室&
来自:浏览器
很奇怪iOS系统用的是什么机制?可以做到那么流畅
IOS后台不象安卓一下,强制运行那么多,IOS只运行他要用的,一切听从主人指挥,关了的就从后台直接关了。
width:100%">
&炉火纯青&
来自:浏览器
gui.1 发表于
IOS后台不象安卓一下,强制运行那么多,IOS只运行他要用的,一切听从主人指挥,关了的就从后台直接关了。 ...
刚刚发现mate7的内存机制挺奇怪的,好像程序已经关闭了,但是又好像固定在关闭那一刻,在多任务窗口打开的程序就是在退到后台时的界面,可以运行但不能后退
width:100%">
&炉火纯青&
来自:浏览器
gui.1 发表于
IOS后台不象安卓一下,强制运行那么多,IOS只运行他要用的,一切听从主人指挥,关了的就从后台直接关了。 ...
但是苹果用几年不用清理**都不会卡,安卓就不行了,为啥哦
width:100%">
&登堂入室&
来自:浏览器
花之海1979 发表于
但是苹果用几年不用清理**都不会卡,安卓就不行了,为啥哦
安卓关了,后台还给你存着各种**,能不卡吗?
width:100%">
1000万花粉
纪念花粉俱乐部注册花粉数超过1000万
好基友勋章
花粉好机友,注册时间大于99天
随手拍毕业季(上)P20pro随手拍p10镜头下的小生灵华为P20伴我新疆徒步行3清晨时光
花粉客户端
Make it Possible
Make your device special
华为云空间
Huawei cloud services
音乐播放器
Huawei Music
Huawei Vmall
关注花粉俱乐部
举报邮箱:
|关注花粉俱乐部:
增值电信业务经营许可证:苏B2-号|
Copyright (C)
华为软件技术有限公司 版权所有 保留一切权利为什么安卓手机1GB内存会不够用?真相惊人
同样是1GB内存,iPhone手机不卡,WP手机也不卡,而Android手机却会卡,甚至内存上升至2GB,如果优化不到位还会有卡的情况。然而,这到底是为什么呢?
一、安卓运行机制的先天不足
安卓手机应用都是通过Java来完成,而用户关闭应用的时候度要涉及一个过程,那就是Java垃圾收集机制,也就是说如果一个用户要关闭应用,在这中间Java垃圾收集需要大量的内存来工作(大约是4-8倍)。
如果你同时打开了很多个APP,但手机内存又不够用的话,系统就会将上一个APP缓存到起来,释放出内存给你现在的APP用。当你切换APP的时候,又重复上面的这个过程。这样一来,APP之间的切换速度和运行速度自然就慢下来了,也就是我们所说的卡和慢。
理论上就算是512MB内存的安卓机都能同时运行很多个软件,但你会发现你会发现你在切换这些软件的时候会很慢很慢。这年头还能玩转512MB内存的安卓用户,已经算得上玩机高手了。
对于不折腾手机的用户来说,1G内存是出于凑合着能用的水平,实在说不上能有什么好的体验。反观iPhone,因为iOS系统的运行机制和优化机制都很到位,自然不会有卡的问题了。
二、无良的APP榨干手机内存
从Android 2.3到5.0,系统运行512MB内存并不卡,很多机子256MB内存都跑的嗖嗖的,但是如果你安装了APP之后,就是另外一回事了。
用过微信的安卓用户可能都知道,算你退出了软件,它还是有进程在后台驻留,而且经常都是开机偷偷启动。更让人恼火的是,你清理内存杀进程都没用。有时候你发现自己明明没有打开过微信,竟然也能收到微信的消息推送。
▲图:刚开机内存就被后台进程吃光了
安卓1G内存都不够用,无良的APP脱不了干系。微信只是冰山一角,在国产APP中,相当大一部分应用不启动就在后台占用内存,QQ、微博、贴吧等无一不是如此。很多APP开发者滥用安卓权限,为的是能时时刻刻能控制你的手机。
另外,这几年以来,很多APP的功能没有增加,体积反倒是暴涨。而苹果则不同,iPhone的软件都是在苹果商店下载的。苹果对APP上架极为严格,开发者不但不能滥用权限,反倒要绞尽脑汁去把APP优化到极致。
======关于数码辣评======
数码辣评,移动互联网、智能硬件行业自媒体。
品牌/厂家/媒体合作,请微博@数码辣评。
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点

我要回帖

更多关于 ios偷内存 的文章

 

随机推荐