不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了。android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实上他并不影响速度。相反加快了下次启动应用的速度。这本来就是android标榜的优势之一,如果人为去关闭进程,没有太大必要。特别是使用自动关进程的软件。(这里解决了大家非要关进程的误区!)
到这里有人会说了,那为什么内存少的时候运行大型程序会慢呢?其实很简单,在内存剩余不多时打开大型程序,会触发系统自身的调进程调度策略,这是十分消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。这种情况下系统并不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会拖慢系统。所以,论坛上有个更改内存阀值的程序可以有一定改善。但改动也可能带来一些问题,取决于值的设定。
那么,进程管理软件有无必要呢?有的。就是在运行大型程序之前,你可以手动关闭一些进程释放内存,可以显著的提高运行速度。但一些小程序,完全可交由系统自己管理。
谈到这里,可能有的朋友会问,如果不关程序是不是会更耗电。我就说说android后台的原理,你就明白了。android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗cpu资源,只保留了运行状态。所以为什么有的程序切出去重进会到主界面。但是,一个程序如果想要在后台处理些东西,如音乐播放,它就会开启一个服务。服务可在后台持续运行,所以在后台耗电的也只有带服务的应用了。这个在进程管理软件里能看到,标签是service。至于广播什么的我就不涉及了。所以没有带服务的应用在后台是完全不耗电的,没有必要关闭。这种设计本来就是一个非常好的设计,下次启动程序时,会更快,因为不需要读取界面资源,何必要关掉他们抹杀这个android的优点呢?(告诉我们如何合理使用进程管理软件)
还有一个,为什么android一个应用看起来那么耗内存。大家知道,android上的应用是java,当然需要虚拟机,而android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。(跟塞班也不一样,安卓不容易死机重启)
以上这些设计确保了android的稳定性,正常情况下最多单个程序崩溃,但整个系统不会崩溃,也永远没有内存不足的提示出现。大家可能是被windows毒害得太深了,总想保留更多的内存,但实际上这并不一定会提升速度,相反却丧失了程序启动快的这一系统特色,很没必要。大家不妨按我说的习惯来用用这个系统。
不过大多数人觉得,时间久了(几天吧)还是要打开你的任务管理器,清清更健康!
来源:http://www.eoeandroid.com/forum-viewthread-tid-37283-extra--highlight-%E7%A8%8B%E5%BA%8F%2B%E9%80%80%E5%87%BA-page-2.html
分享到:
相关推荐
4. **动画效果**: 为了提升用户体验,歌词通常会有滚动、淡入淡出等动画效果,这需要用到Android的动画框架。 5. **用户交互**: 用户应能手动调整歌词位置,或者通过触摸屏幕进行快进、快退,这需要监听用户事件并...
在使用ViewPager时,通常需要创建一个PagerAdapter子类,重写`instantiateItem()`、`destroyItem()`和`isViewFromObject()`方法,以便为每个页面创建并管理View。 手动切换是ViewPager的基本功能,用户可以通过左右...
2. **模型创建**:每个“旋转木马上的马匹”(即要展示的元素)都是一个3D模型,可能由多个三角形组成,通过`Model`类进行表示。这些模型需要通过`Vertices`、`Normals`和`Texture Coordinates`来定义。 3. **3D...
在Android平台上开发应用程序时,创建一个能够自动刷新WiFi列表并检测指定设备的App是一项实用功能。这个名为"android app自动刷新wifi列表并检测指定设备"的项目,利用了Android的WiFi管理和ListView组件来实现这一...
这时,我们需要用到`ViewPager`组件。`ViewPager`是Android Support Library的一部分,它可以用来创建一个可以左右滑动的页面容器,每个页面都可以包含不同的内容,比如一张图片。 在创建图片滑动浏览的过程中,...
聊天程序可能包括多个Activity,每个对应一个特定的功能,如登录Activity、主聊天Activity、个人资料Activity等。 3. **广播接收器(BroadcastReceiver)**:在Android系统中,应用可以通过BroadcastReceiver监听...
每个运行的Android程序都会对应一个正在运行的进程,通常在系统资源充足时,进程会持续运行,只有在特定条件下,如资源不足或手动强制退出时,系统才会关闭进程。 Android系统强调权限管理,应用程序通常只能访问与...
它内置了切换动画,但默认不开启,需要开发者手动设置。 3. **Animation**: 在Android中,图片滑动的效果通常会使用到动画。Android提供了多种动画API,如Property Animation和Tween Animation。在这个案例中,...
Android 进一步推进了 " 随时随地为每个人提供信息 " 这一企 业 目标的实现。 � Open Handset Alliance 汇集了多家业界巨头。运营商如: China Mobile 、 NTT DoCoMo 、 Vodafone 、 T-M obile 等;设备制造商如 ...
在这个项目中,你可能会用到Android Studio,这是一个强大的集成开发环境(IDE),提供了丰富的工具和库来简化开发流程。 迷宫小球游戏的核心机制包括小球的物理模拟和迷宫的生成。小球的物理模拟通常需要利用...
7. **主界面设计**:主界面通常会有一个ListView或RecyclerView来展示通讯录联系人列表,每个条目包含姓名、电话等信息。点击条目可以进入详情页,编辑按钮可以调用新的Activity来进行修改。 8. **Adapter与...
在Android开发过程中,有时我们需要对应用进行批量打包,特别是在测试、发布或者构建多个版本时,手动逐一打包会非常耗时且容易出错。此时,利用Android Shell命令进行批量打包就显得尤为重要。Android Shell批量...
通常,手动实现Parcelable接口时,我们需要为每个字段编写读写操作,这既耗时又容易出错。而通过这个插件,只需在类上添加`@Parcel`注解,然后右键选择“Generate” -> “Parcelable”,即可自动生成相关代码。 ...
它允许开发者为不同的分发渠道创建定制的应用程序包(APK),每个渠道包含特定的渠道ID或者参数,以便追踪应用程序的来源和下载效果。本文将详细探讨Android多渠道打包工具及其在美团和360平台的应用。 首先,我们...
在Android应用开发中,发布应用到不同的市场时,通常需要为每个市场创建具有特定标识(如渠道ID)的单独APK,以便跟踪不同渠道的下载数据。Ant作为Apache的一个构建工具,可以有效地帮助开发者实现这一目标。本资源...
除了连线,我们还需要在每个数据点上绘制小圆圈或其他形状,以标识数据的位置。这可以通过`Canvas.drawCircle()`方法实现,同样需要使用`Paint`设置填充色和边框色。 5. **手势监听**: 为了增加交互性,我们可能...
在Android开发中,通常我们会用到各种地图库,如Google Maps SDK for Android或者OpenStreetMap的Leaflet等。这些库允许开发者在应用程序中展示地图,并添加各种图层,包括点、线和多边形等地理对象。然而,将...
Android RSS阅读器的界面设计通常包括列表视图(ListView)或网格视图(GridView)展示RSS条目,每个条目可能包含一个标题、摘要和图片。`RecyclerView`是Android推荐的高效列表组件,源码可能使用它来展示数据。...
2. 设置服务的进程:在AndroidManifest.xml中,为每个服务指定不同的进程属性(android:process)。例如,可以设置主服务在"com.example.app:main"进程中,而守护服务在"com.example.app:guard"进程中。 3. 启动...
1. **Android UI布局**: Android应用程序的界面构建基于布局(Layouts),如线性布局(LinearLayout)、相对布局(RelativeLayout)、网格布局(GridLayout)、帧布局(FrameLayout)等。在这个案例中,宫格导航可能...