文章编号:762时间:2024-02-19人气:
安卓系统开发在移动应用领域占据着重要地位,而后台任务管理及服务优化是影响用户体验和应用性能的关键因素之一。本文旨在探讨安卓系统开发中后台任务管理与服务优化方案,为开发人员提供更好的指导。
一、后台任务管理
在安卓系统中,后台任务是指在用户界面不可见的情况下运行的任务。良好的后台任务管理可以避免资源浪费、提升应用性能并延长设备电池寿命。以下是一些后台任务管理的策略和技巧:
1. 使用JobScheduler
JobScheduler是安卓系统提供的任务调度框架,可以帮助开发人员合理调度后台任务的执行时机,从而避免集中在一段时间内大量任务的执行,减少对系统资源的影响。
2. 限制后台任务的频率和时长
对于一些耗时较长的后台任务,可以限制其执行的频率和时长,避免长时间占用系统资源。可以通过设置合适的条件和触发器来控制任务执行的时机。
3. 使用WorkManager
WorkManager是谷歌推出的用于处理后台任务的库,具有灵活性和易用性,可以帮助开发人员更好地管理后台任务的执行,包括重试、延迟和约束条件等功能。
二、服务优化
服务是安卓应用中常用的组件之一,用于在后台执行长时间运行的任务。优化服务的运行有助于提升应用的性能和响应速度,以下是一些服务优化的建议:
1. 合理使用前台服务
前台服务是一种可以和用户交互的服务,优先级比较高,不容易被系统杀死。但是,过度使用前台服务可能会影响用户体验,开发人员需要权衡前台服务和后台服务之间的关系。
2. 使用IntentService
IntentService是一种专门用于处理异步任务的服务,可以帮助开发人员简化后台任务的管理和执行。不过需要注意的是,IntentService是单线程的,适合执行顺序性的任务。
3. 注意服务生命周期
开发人员需要注意服务的生命周期管理,合理地启动、停止和销毁服务,避免因为长时间运行而导致内存泄漏或性能问题。
三、总结
探索安卓系统开发中的后台任务管理与服务优化方案对于提升应用性能和用户体验至关重要。通过合理的任务调度和服务优化,可以有效减少资源消耗、降低系统压力,并延长设备电池寿命。开发人员应根据具体应用场景和需求选择适合的方案,不断优化并改进应用的后台任务管理和服务。
Android系统与其他操作系统有个很不一样的地方,就是其他操作系统尽可能移除不再活动的进程,从而尽可能保证多的内存空间,而Android系统却是反其道而行之,尽可能保留进程。 Android这样设计有什么优势呢?又是通过怎样的方法来管理这些被保留的进程的呢?Android用户又该如何正确使用手机从而更好发挥Android系统所特有的优势呢?本文将一一为您解开这些谜团。 本文的主要内容如下:一、Android进程管理的特殊设计 Linux系统对进程的管理方式是一旦进程活动停止,系统就会结束该进程。 尽管Android基于Linux Kernel,但在进程管理上,却采取了另外一种独特的设计:当进程活动停止时,系统并不会立刻结束它,而是会尽可能地将该进程保存在内存中,在以后的某个时间,一旦需要该进程,系统就会立即打开它,而不用再做一些初始化操作。 只有当剩余内存不够用了,为了维持新开启的进程或者比较重要的进程的正常运行,系统才会选择性地杀掉一些不重要的内存,腾出内存空间来,所以Android系统永远不会有内存不足的提示。 二、Android独特进程管理设计的好处 Android这种独特的设计,也正是Android标榜的优势之一,这有两个好处:1、最大限度地提高内存的使用率。 比如,你的内存是8G,如果每次使用完某个进程就杀掉,那么被使用的内存基本上会始终保持在某个值,比如4G以内,那么内存的使用率就总是保存在50%以内,剩余的4G内存形同虚设,发挥用处的机会非常少。 而Android的这种设计,就可以做到有多少内存就用多少内存,尽可能大地提高内存使用率。 同样比如有8G内存,使用完的进程仍保留在内存中,累积下来,被使用的内存就尽可能地会接近8G。 2、提高再次启动时的启动速度被驻留在内存中不再活动的进程(后台进程或空进程,后面会再讲到),很多是经常需要使用的,当再次使用该进程的时候,系统立即打开它,而不需要再重新初始化。 例如,我们常用的浏览器,当暂时不再使用时,按下Home键或Back键,浏览器进程就变成了不再活动的进程。 如果下次又要使用了,点击多任务键,在最近使用应用列表中点击浏览器即可,浏览器界面仍然保持着退出前的界面。 但如果退出时把该进程移除了,那么再次使用时,就需要重新初始化,然后进入该应用,这往往会花费不少的时间。 三、Android进程的五个等级 Android系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,最终需要移除旧进程来回收内存。 为了确定保留或终止哪些进程,系统会根据进程中正在运行的组件以及这些组件的状态,将每个进程放入“重要性层次结构”中。 必要时,系统会首先消除重要性最低的进程,然后是重要性略逊的进程,以此类推,以回收系统资源。 该“重要性层级结构”将进程分为了五个等级:1、前台进程(foreground)前台进程是指那些有组件正和用户进行交互的应用程序的进程,也称为Active进程。 这些都是Android尝试通过回收其他应用程序来使其保持相应的进程。 这些进程的数量非常少,只有等到最后关头才会终止这些进程,是用户最不希望终止的进程。 例如:而当你运行浏览器这类应用时,它们的界面就会显示在前台,它们就属于前台进程,当你按home键回到主界面,他们就变成了后台程序。 如果一个进程满足以下任一条件,即视为前台进程: (1)托管处于活动状态的Activity,也就是说,它们位于前台并对用户事件进行响应,此时的情形为响应了Activity中的onResume()生命周期方法,但没有响应onPause()。 (2)托管正在执行onReceive()方法处理事件程序的BroadcastReceiver。 (3)托管正在执行onStart()、onCreate()或onDestroy()事件处理程序的Service。 (4)托管正在运行且被标记为在前台运行的Service,即调用了该Service的startForeground()方法。 (5)托管某个Service,且该Service正绑定在用户正在交互的Activity的Service,即该Activity正处于活动状态。 2、可见进程(visible) 没有任何前台组件、但仍然会影响用户在屏幕上所见内容的进程。 如果一个进程满足以下任一条件,即视为可见进程: (1)托管不在前台、但仍对用户可见的Activity(已调用其onPause()方法)。 例如:如果前台Acitivty启动了一个对话框,或者启动了一个非全屏,亦或是一个透明的Activity,允许在其后显示上一个Activity,则可能会发生这种情况,这类Activity不在前台运行,也不能对用户事件作出反应。 (2)托管绑定到可见Activity的Service。 (官网上说是绑定到可见或前台Activity,但笔者有一点疑问,这个和“前台进程”中第(5)点相矛盾吗,绑定到前台Activity,那就是前台进程了) 可见进程被视为是极其重要的进程,这类进程的数量也很少,只有在资源极度匮乏的环境下,为保证前台进程继续执行时才会终止。 3、服务进程(Service) 正在运行已使用startService()方法启动的Serice且不属于上述两个更高类别进程的进程。 尽管服务进程与用户所见内容没有直接关联,但是它们通常在执行一些用户关心的操作。 因此,除非内存不足以维持所有前台进程和可见进程同时运行,否则系统会让服务进程保持运行状态。 有些资料上面也称这种进程为次要服务(Secondary Service),而属于上述两个更高类别的进程则被称为主要服务,主要服务往往属于系统进程,如拨号进程等,不可能被进程管理轻易终止。 这里我们以Android开发者官网的称呼为标准,称为服务进程。 4、后台进程(hidden)包含目前对用户不可见的Activity,即该Activity调用了onStop()方法。 这些进程对用户体验没有直接影响,系统可能随时终止它们,以回收内存供上述三个更高级别的进程使用。 通常会有很多后台进程在运行,它们会保存在LRU(Least Recently Used,最近最少使用)列表中,以确保包含用户最近查看的Activity的进程最后一个被终止。 如果某个Activity正确实现了生命周期方法,并保存了其当前状态,则终止其进程不会对用户体验产生明显影响,因为当用户导航回该Activity时,Activity会恢复其所有可见状态。 这里读者可以做个试验,先开启微信,进入到朋友圈界面, 然后点击手机屏幕下方的导航栏中的Home按键进入到后台,再点击最近使用应用列表显示按钮(不同的手机位置不一样,有的在Home键左边,有的则在Home键右边),在显示的最近使用应用的列表中清理掉微信应用,最后再点击桌面的微信图标启动微信,会发现显示的界面仍然是朋友圈界面。 后台进程,我们可以简单理解为,应用(只考虑只有Activity组件的情况)启动后按Home键后被切换到后台的进程。 如浏览器、阅读器等,当程序显示在屏幕上时,它们所运行的进程即为前台进程(foreground),一旦按home键(注意不是back键)返回到桌面,程序就停留在后台,成为后台进程。 5、空进程(empty)不含任何活动应用组件的进程。 保留这种进程的唯一目的是用作缓存,以缩短下次再其中运行组件所需要的启动时间。 一般来说,当应用按back按键退出后应用后,就变成了一个空进程。 比如BTE,在程序退出后,依然会在进程中驻留一个空进程,这个进程里没有任何数据在运行,作用往往是提高该程序下次的启动速度或者记录程序的一些历史信息。 当系统内存不够用时,无疑,该进程是应该最先终止的。 在最近使用应用列表中,可以看到按back键退出的应用。 根据进程中当前活动组件的重要程度,Android会将进程评定为它可能达到的最高级别。 通俗地说,就是如果一个进程同时拥有多个对应上述不同等级进程的组件时,会以最高的那个等级作为该进程的等级。 例如,如果某进程托管着服务和可见Activity,则会将此进程评定为可见进程,而不是服务进程。 此外,一个进程的级别可能会因为其他进程对它的依赖而有所提高,即服务于另一进程的进程其级别永远不会低于其所服务的进程。 例如,如果进程A中的内容提供程序为进程B中的客户端提供服务,或者如果进程A中的服务绑定到进程B中的组件,则进程A始终被视为至少与进程B同样重要。 由于运行服务的进程其级别高于托管后台Activity的进程,因此启动长时间运行操作的Activity最好为该操作启动Service,而不是简单地创建工作线程,当操作有可能比Activity更加持久时更应该如此。 例如,正在将图片上传到网站的Activity应该启动服务来执行上传,这样一来,即使用户退出Activity,仍可在后台继续执行上传操作。 使用服务可以保证,无论Activity发生什么情况,该操作至少具备“服务进程”优先级。 如果某个Activity开启了线程执行耗时操作,当Activity退出时,该Activity的实例将不会释放内存资源,直到线程执行完,这样容易导致内存泄漏。 同理,广播接收器也应该使用服务,而不是简单地将耗时冗长的操作放入线程中。 四、进程移除顺序的依据——阈(yu,第四声)值 前面讲到,内存不够用时,会根据进程的等级来决定优先回收哪类进程。 那么系统是根据什么来判断需要移除这些进程的时机的呢?答案是阈值。 1、查看阈值 我们可以采用如下方法查看手机中各个等级进程的阈值(需要root权限),如第二排数据所示(其单位为页):以第一个数据为例,计算方法为:1page=4KB=4*1024B=4096Bpage* 4048B/page = BB/1024/1024 = 172M即第一个等级的进程的阈值为172M。 依次类推,阈值依次为:172M,190M,208M,226M,316M,415M。 有必要说明一下,在Android开发者官方文档中,是将Android应用进程分为了5个等级,但很多资料却是分的6个等级,在后台进程和空进程之间还有一个“内容提供节点(content provider)进程”。 内容提供节点,没有实体程序,仅提供内容供别的程序去用 ,比如日历供应节点,邮件供应节点等,在终止进程时,这类进程有比较高的优先权。 手机中应该是采用的6个等级的方式,如上六个数据,正好对应着六个等级的进程,等级越高,阈值越低,即前台进程阈值为172M,空进程为415M。 当系统的剩余内存只剩余不到415M的时候,系统首先会回收空进程,依次类推,只有剩余内存不到172M了,才会去回收前台进程,这样就起到了优化保护重要进程的作用。 五、Home键、Back键和多任务键 Home键、Back键和多任务键,在手机屏幕的下方,这三个按键一般称为导航栏,中间的按钮为Home键,多任务键和Back键分别在其左右,一般根据手机品牌不同,左右位置也有所差异。 在运行App的时候,如果按一下Home键或者Back键,都可以退到桌面,那么这两者有什么区别呢? Home键。 按Home键的时候,App如果没有Service开启,会从一个前台进程转变为一个后台进程;如果有前台service运行,就仍然是前台进程,比如QQ音乐播放器等;如果是只有普通service运行,那么就转变为服务进程(参照前文中讲的Android进程的5个级别)。 Back键。 按Back键的时候,App如果没有Service开启,会从一个前台进程转变为一个空进程;对于有Service运行的情况,和按Home键一样。 后台进程和空进程,都是驻留在后台,处于暂停状态,也都是除了占用一部分内存外,不占用其他如cpu等资源的,那么问题来了,为什么要设计后台进程和空进程这两种空进程呢?它们的区别到底在哪里呢?我们在前文讲Android进程的5个等级的时候讲到过,当剩余内存不足的时候,系统会按照等级顺序,优先移除不太重要进程,以收回内存供更重要的进程运行。 那么,它们的区别就是,在剩余内存不足时,会优先移除空进程,再不足,才会移除空进程。 所以,如果确实要退出某个应用一段时间内不大使用了,如果这款应用有退出按钮,就用应用自带的退出功能;如果没有,则最好按系统的Back键,这样可以变成空进程,当系统要回收内存时,就会优先被回收,从而释放的所占的资源。 如果只是暂时退出去做点别的,过一会还要切换回来,或者对这款应用使用比较频繁,那就使用Home键,因为相比于按Back键,这样可以尽可能保住后台进程,方便下次使用的时候快速启动。 当然,按Home键或Back键,对用户来说,其实感觉不到差异,使用起来没什么两样,但是,对于Android开发者来说,却有必要作为常识来了解其中的道理和差异。 无论是按Home键还是按Back键,在按多任务键的时候,都可以看到这些进程,如下图所示。 最下面的按键为清理按键,点击后可以清除掉这些进程,回收内存了,当然,前面也讲了很多遍了,不建议这样做。 2、修改阈值。 可以采用命令:echo ,,,,, > /sys/module/lowmemorykiller/parameters/minfree来修改阈值,如下所示:重启后,会恢复为原来的值。 至于如何永久性修改该阈值,这里不深入探讨,有兴趣的童鞋可以自行研究,一般来说,就按照系统给定的默认值使用就可以了,没特殊用途的话,没必要修改。 对于这一节阈值的内容,暂时先讲到这里,如果要更深入,可以自行多研究研究。 笔者也没有看到比较好的更深入的文章,所以也不好推荐,如果读者看到比较好的,可以推荐给笔者,感激不尽。 六、开发者选项中的进程管理功能 Android手机都带有开发者选项,隐藏了很多功能,顾名思义,这些功能主要用于辅助开发者调试程序用的。 其中有一些就是关于进程管理功能的,笔者这里简单介绍一下其中两款,如下图红框部分所示: 不保留活动。 用户离开以后即销毁每个活动(Activity),这样做使得后台进程都被销毁了。 笔者试验过几款app,比如微信,浏览器,开启/关闭“不保留活动”前后,按Home键后,再打开应用,有明显的差别。 当然,也试用了短信,DD打车,就没看出起了什么作用。 读者若是感兴趣可以深入研究研究,到时候在指导指导笔者! 后台进程限制。 如下图所示,给出了后台进程个数限制的选项。 七、进程管理软件的使用 Windows操作系统用户往往总想着保留更多的内存,在使用Android手机的时候,喜欢经常清理后台进程或空进程,而且清理完后,心里有一种特别爽的感觉,就像给家里做了一次大扫除一样,笔者最初使用Android手机的时候也是这样的心态-_-!基于这样的心态,一些进程清理软件,很受普通用户的青睐。 其实这样做却正好抹杀了Android系统所标榜的优势,如前文所讲到的。 那么进程管理软件有无必要呢?当然有的,只是需要注意使用场合。 当需要运行大型程序的时候,可以手动关闭掉一些进程,腾出足够的空间供大型程序使用,这样就可以有效避免系统调用进程调度策略而引起的卡顿,这一点,第八大点第3小节中会有说明。 而且由于开发者的原因,可能是程序写得太烂,或程序容易出错,或做不该做的动作,或是恶意程序,对于这类程序进程,手动移除也是有好处的。 但如果是运行一些小程序,就完全没有必要去预先杀进程了,完全可以交给系统自己管理。 读者可能会疑惑,因为小程序启动的时候,也有可能会因为内存不足而导致需要移除部分进程的情况。 笔者认为,即便是内存不足,小程序运行引起的调用进程调度策略测的次数非常少,要移除的进程也非常少,产生的影响不大。 同时,我们也要意识到另外一点就是,无论是手动杀死进程还是自动杀进程,都需要cpu去执行这些任务,所以也会拖慢手机和消耗电量。 所以从这一点看,频繁杀进程,也是一个不好的习惯。 八、答疑解惑 在以前没有专门去了解Android进程管理机制的时候,甚至是在研究的过程中,笔者心里都经常存在很多疑惑,以下整理了其中5个,不知道读者您是否有也类似的困惑呢?1、这么多驻留在内存的进程,不会耗电吗?大多数用惯了Windows操作系统的童鞋,看到Android系统尽可能保留不在活动的进程的设计,可能第一反应就是质疑,难道这样不会增加耗电量吗?其实,但一个程序按home键变成后台进程或者按back键退出变成空进程后,其实已经被暂停了,只保留了运行状态,不会消耗cpu,一个程序会耗电,是因为它需要调用cpu来运算,现在不消耗cpu了,当然就不会耗电了。 当然,开了service的应用就另当别论了,比如QQ音乐播放器,当按home键或back键后,音乐仍然播放,是因为它开启了服务,而且是一个前台服务,在后面我们会继续讲到,此时它是一个前台进程,而不是后台进程或空进程。 2、为什么一个不太app,运行时会占用很大的内存呢? 我们经常会碰到这样一种现象,一个只有20M的App,运行起来的时候,却会耗掉100M以上的内存。 一方面是,程序运行时为对象分配内存,另一方面,是Android虚拟机的原因。 Android中的应用启动的时候,系统都会给它开启一个独立的虚拟机,这样做的好处是可以避免虚拟机崩溃导致整个系统崩溃,代价就是耗用更多的内存。 3、为什么内存少的时候,运行大型程序会卡顿呢? 当剩余内存不多时,打开大型程序,系统会触发自身的进程调度策略,去移除一些等级比较低的进程来回收内存,以供大型程序运行。 而这个进程调度策略在决定哪些进程需要被移除的过程,是一个十分消耗资源的操作,特别是一个程序频繁像系统申内存的时候,这样就导致了系统的卡顿。 4、应用开得太多了,手机变慢,是因为内存被占用太多吗? 其实手机变慢的根本原因是cpu被耗用太多,而不是内存占用太多,因为真正执行程序所要完成的任务的最终执行者是CPU,而不是内存(RAM)。 在内存足够的情况下,如果系统中占用cpu的进程太多,那无疑cpu总有忙不过来的时候,那肯定就会变慢了。 这就好比,在一条道路上驾车,道路就像内存,车的引擎就像cpu,如果车的引擎的动力不够,或者承载的货物太多,车都跑不快,即便是道路上一路畅通无阻,也无济于事。 所以,内存占用多少并不重要,只要道路提供给车辆前行的空间是足够的,手机变慢的责任,就和内存无关了。 这个比喻用来解释第三点也很恰当,道路提供的车辆前进的空间无法满足车辆所必需的空间时,就需要交通机制花时间来调节交通,给这辆车提供足够的空间,而在此期间,这辆车只能乖乖候着。 5、Android手机越用越慢,是什么原因呢? Android手机常常是越用越慢,即使是恢复出厂设置,也无法改变这个现象。 手机越用越慢,主要由如下几个原因:(1)虚拟机机制问题。 这一点在上一个问题中也提到了,在Android4.4以前的系统,使用的是Dalvik虚拟机,它的设计机制有缺陷,就是越用越慢;在Android4.4系统中有切换按钮,可以在Art虚拟机和Dalvik虚拟机之间切换;在Android4.4以后的系统就彻底抛弃了Dalvik而全面使用Art。 (2)开启了太多的服务,导致耗用太多的CPU。 随着手机开机使用时间的增长,应用使用越来越多,很多应用看似退出了,而其实后台可能开了不少的服务,而他们可能还没有关闭。 这些服务正在执行一些操作,会消耗CPU,而CPU才是手机变慢的根本原因。 而且Android app比较开放的,有很多不良应用充斥其中,可能对服务处理不当,滥用服务等,增加系统中的服务。 (3)系统频繁调用自身的进程调度算法。 这一点在前面已经说明了,这里不再赘述。 (4)手机硬件的自然老化
1.找到手机设置,点击进入到时设置页面,如图所示。
2.进入设置之后,点击关于手机选项,如图所示。
3.在关于手机的页面中,找到版本号,并连续点击多次版本号,直到出现开发人员选项为止。
4.然后点击开发人员选项,进入到下一页面。如图所示。
5.找到后台进程限制,点击选项进入,如图所示。
6.此时会出现一个后台运行进程的设置,根据你的需求选择后台运行程序的个数。这样就设置后台运行程序成功了。
任务管理模式是一种方法论,用于帮助人们更有效地组织和执行任务。 它的优点和弊端如下:优点:组织性强:任务管理模式能够帮助人们系统地整理任务和项目,使其更加有条理和易于管理。 提高效率:通过将任务划分为小块并设置明确的截止日期,任务管理模式可以提高工作效率并确保任务按时完成。 减少压力:任务管理模式可以帮助人们掌握任务的全貌,避免过度拖延和忘记重要任务,从而减少工作压力。 优先级明确:通过任务管理,人们可以更容易地确定哪些任务是最重要的,有助于更好地分配时间和资源。 目标感强:任务管理模式帮助人们设定明确的目标,并将其分解为可操作的任务,有助于激发动力和达成目标。 弊端:过度复杂化:某些任务管理模式可能变得过于繁琐复杂,使人们花费过多时间在管理任务本身上,而不是实际执行任务。 僵化性:一些任务管理模式可能过于固定,无法适应灵活的变化和不断变化的工作环境。 忽视创意:过度严格的任务管理可能会削弱创造性思维,特别是对于需要更灵活、非线性思考的工作。 过度依赖工具:某些任务管理工具可能过度依赖,而导致用户对自身的任务进行思考和规划的能力下降。 优化弊端的方法:简化模式:确保任务管理模式简单易懂,不要过度复杂化。 使用简单但有效的工具和方法,避免沉溺于繁杂的任务管理系统。 灵活性:采用更加灵活的任务管理方法,使其能够适应不同的工作环境和需求。 允许适当的调整和变化。 鼓励创意:在任务管理中加入创造性和创新元素。 留出一些时间用于自由思考和发展新点子。 平衡工具使用:任务管理工具是有帮助的,但不要过度依赖。 要学会独立思考和规划,将工具作为辅助而非主导。 定期审视:定期回顾任务管理模式的效果,看看是否需要调整和优化。 随着工作需求的变化,任务管理也需要相应调整。 培养习惯:将任务管理作为一种习惯,并持之以恒。 逐渐形成高效的工作习惯,让任务管理成为自然而然的一部分。 任务管理模式的优点在于提高组织性、效率和目标感,但要避免过度复杂化和僵化性。 通过简化模式、保持灵活性、鼓励创意和平衡工具使用,可以优化任务管理模式并提高工作效率。
一直以来安卓手机给人的感觉都是各种卡顿,尤其是开的程序比较多以后,和iPhone比较起来流畅度上会有不小的差距。实际上IPhone手机只是系统优化的很出色,对于安卓手机我们只要优化得当,也能有很流畅的用户体验。本文主要介绍的是从安卓系统优化、第三方软件优化以及设置优化几方面结合来改善提升安卓手机流畅度,下面一起来看看安卓手机用什么优化吧。
刷机重启抠电池
刷机是Android用户的一大乐趣,部分用户刷机是为了得到更好的易用性,比如小米的MIUI ROM,非常符合中国人的使用习惯,也有着足够丰富的个性化设定,是图省事的朋友刷机的好选择,不过对于追求高性能的朋友来说,MIUI的优化还有很大提升空间,人们纷纷选择了对于ROM优化更加出色的CyanogenMod作为刷机的第一选择。
CyanogenMod系列目前主打的ROM有CM 7.2和CM 9两个,CM 7.2基于Android 2.3.7,而CM 9则基于Android 4.0.4,其中CM 7.2已经基本成熟,完美支持的机型很多,是大部分机友刷机的第一选择,CM 9官方的ROM支持机型并不多,民间高手也都进行了各个机型的移植,官方支持的机型兼容性相当不错,而移植情况并不乐观。
CM系列ROM忠实于AOSP,在底层驱动方面做了很多努力,刷入之后就会感觉手机流畅了许多,同时也支持了更多的美化和手机自定义能力,比如我们可以对手机的震动回馈做细致的调整,包括按下震动的强度,抬起震动的强度等,让手机虚拟按键给我们更为真实的回馈,在CM ROM中,类似的设定非常多。
目前大部分的ROM都是使用CM进行定制的,还有一部分是对官方原版ROM进行修改,仅有少部分的ROM是修改的AOSP的源码,这些ROM指向都是谷歌Nexus系列的机型,比如GALAXY Nexus和Nexus S上的Codename和AOKP,就针对源码做了很多修改,让手机变得更流畅。
刷内核 效果好
仅仅刷手机的ROM是不够的,虽然多了很多自定义的功能,流畅度已经高于官方的ROM,但依旧有很大提升的空间,这时候我们就需要通过刷内核来进一步优化,刷内核所能带来的提升是相当明显的,但是对于刷内核大家还是要谨慎。
刷内核相比刷ROM,是一个很小的工程,你的手机不必要Wipe,也就是说不用删除手机内部的数据,刷一下也就几分钟的功夫,所以刷内核的时候,大家完全可以多下几个内核,逐个进行测试,看看哪个内核更适合自己,就保留哪个内核。同时刷内核时我们要注意,内核需对应自己的手机版本,对应自己所刷的ROM,否则会造成手机无法启动的现象,如果遇到无法启动的现象,再刷其他可用内核就可以恢复。
大家会问了,说了这么半天,刷内核到底都有什么作用呢?首先就是超频,大部分内核会默认提供降压超频,并拥有多种超频策略,来保证超频的情况下更省电。其次,还提供更多调整,比如内存虚拟机的大小,颜色管理等等,甚至一个内核可以包括一些新的Linux的补丁,比如最新的Linux 3.3所集成的CPU频率补丁等等。
事实上,一般的第三方ROM已经修改了手机的内核,达到了更流畅的目的,但ROM的制作速度远远比不上内核的调整速度,有时候一个ROM适用的内核在一天之内可能多次更新,所以我们可以尝试不同的新内核,看看他们的超频是不是能给我们带来性能上质的提升,是不是能更省电,是不是能通过颜色调整让我们看到更棒的画面等等。
精简内置应用
我相信Android用户通过不断的更换ROM和刷内核已经在流畅度上有了质的飞跃了,如果这时候你的手机已经比iPhone更流畅、更省电,那么我们就可以收手了,如果你还不满意,我们还有其他的路可选,精简内置应用,就是一个可以大幅度提升流畅度的方法。像Google的服务就是大部分人精简的对象。 Android系统和iOS与Windows Phone不同,这个系统拥有真正的后台运行能力,虽然iOS在推送方面做得很好,弥补了后台方面的不足,但是仍然无法与Android的真后台相比,但是由于Android的程序优先级并不像iOS和Windows Phone那样,为了流畅让当前界面拥有最高优先级,所以我们就要把Android手机后台不必要的进程关掉,以获得最佳的性能。
那么精简内部应用就是很好的选择,因为在我们使用过程中,有许多Android内部应用程序是不必要的,而这些程序会在我们不用的时候悄悄的后台打开,对我们的使用造成影响。在精简时,我们需要用到root文件管理器,同时需要保证手机已经开启root权限。进入system/app就可以进行精简了,我们需要把root管理器的当前权限设置成读写,并且修改需要删除的软件权限,打开软件执行操作的权限,就可以对删除内置软件了,在精简前,大家需要对软件进行备份,或者备份整个ROM,如果你精简掉系统程序,可能会造成无法开机的情况,重刷ROM可以解决,所以大家最好找到该机型、该ROM的精简列表,以避免重复劳动。
其他优化
经过以上多方面的优化,我相信大家都已经得到了一个较为干净、运行流畅的Android了,不过在很多程序中,我们还是会遇到卡顿的情况,对于一个极端追求流畅度的玩家来说,这样的情况是绝对不允许发生的,因为我们还有进一步优化的空间。
刷后设置
常见设置就忽略了,下面是冷门但很有用的设置。设置完记得重启手机,速度飞快。
CM设置--显示设置--所有勾去掉
CM设置--界面--越界设置--越界效果--None
越界程度--Extra Light
CM设置--性能--压缩缓存--禁止
CM设置--性能--虚拟内存--32m
刷机后的优化设置:
1、设置--显示--亮度--自动调节(关闭),自动旋转屏幕(关闭),动画(不显示窗口动画)
2、位置和安全设置--使用GPS卫星(关闭);
4、账户与同步设置--背景数据(关闭)
6、CM设置--应用程序--允许移动应用程序(√)
显示--屏幕关闭动画(关闭)
输入--振动反馈微调--振动反馈(关闭)
界面--状态栏调整--电量百分比(√)
越界效果--None
界面 - 通知栏电源控件--控制按钮--切换GPS(√),切换Wifi(√),切换亮度(√),切换声音(√),切换移动数据(√),切换蓝牙(√),切换飞行模式(√)
(感谢weiweiming的总结)
“设置”——“关于手机”——“自动系统更新”(去掉那个“勾”)
关闭相机拍照声音
用R.E管理器进/system/media/audio/ui目录,把camera_这个文件改名或者直接删除
2、设置优化
开启性能模式
很多手机默认是标准模式甚至是省电模式,这对性能是有不少影响的,因此建议不是有特别需求还是调至性能模式(位置:系统设置,因不同手机而异)。
#FormatImgID_0#
关闭动画特效
Android 4.1增加了动画程序时长调整,我试过当关闭了动画以后会感觉反应迅速了很多(位置:设置→开发人员选项)。
#FormatImgID_1#
第三方软件更换启动器
实际上很多Android卡顿的罪魁祸首就是系统的启动器,现在一些品牌的手机启动器做得越来越炫丽,也越来越复杂,当然代价就是占用RAM和ROM更多,如果不是对这方面特别有要求,完全可以替换一些第三方的启动器。
卸载系统自带程序
现在官方系统自带很多程序,而且不能卸载,但是这些软件往往都会开机自启动,而且对系统流畅度影响比较大,但是要删除这些自带软件需要获取root权限。通用一些第三方ROM也会有自带垃圾软件问题,而大部分第三方ROM都自带root,所以这个相对好解决。
管理开机自启动项
减少开机自启动的软件,除了能节省电量之外,当然还能提升手机的反应速度,当然只要关闭一些不需要自启动的第三方软件就可以达到目的了。
androidservices是什么,是否可以卸载了?
androidservices是后台服务,系统服务没办法卸载,但可能被关闭。
1、系统服务是维持系统正常运行的基础,强制卸载或者关闭,可能造成系统异常,无限重启,或者变成砖头。
2、应用软件也可以开启Services,但是用户应用的服务,在应用被卸载后,也会被卸载,且优先级比系统的低,在系统资源不足的情况下可能被关闭。
安卓,后台程序过多,会不会影响耗电?
后台程序一般处于停止状态,会占内存,但是便于下次快速启动,耗电不大,这是Android系统的一个特色,但是,后台服务一直处于运行状态,那绝对是耗电的。后台服务是一直运行的程序,后台程序是暂时停止运行但驻留在内存中的程序。
Android服务指的是什么?
Android服务Service是android系统中的一种组件,安卓不同版本图片它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互!
服务(Service)是Android中实现程序后台运行的解决方案,它非常适合用于去执行那些不需要和用户交互而且还要求长期运行的任务。服务的运行不依赖于任何用户界面,即使当程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。
怎么设置让一个软件一直在后台运行?
android一直运行的后台服务是不存在的,而且也不是最佳实践,因为一直运行的后台服务会耗费大量系统资源,影响其他程序的响应从而影响到用户体验。题主问的是如何让后台服务一直运行,我认为只有系统自带的应用或者定制的系统应用才可以有这么高的优先级可以保持后台服务一直运行。如果是在非root的系统上的普通应用,只能是通过一些方法,让用户觉着后台服务一直运行。比如,监听开机事件,显式地启动后台服务;启动后台服务后给它设置“前台运行”的优先级;定时任务来检查后台服务是否在运行,不运行的话重新启动它。可以考虑使用如下几种方案来达到一直运行的效果。1.调用startForeground方法,
android:ServicevsSingleTopActivitymovedtobackground
2.使用AlarmManager发送定时任务: 更极端的例子,如果应用被干掉了,定时任务(AlarmManager)这种方法确实不管用了,但是可以考虑给后台服务设置“前台”运行的优先级这种方法。比如音乐播放器,在启动播放服务后,通知栏会显示一个播放进度的通知条,这个通知条是必须的,因为通过它才能使后台服务获取到“前台”运行的优先级从而避免被系统干掉。这种做法也是官方推荐的做法。下面是官方文档中的一些具体说明:说明一
Astartedservicecanusethe
startForeground(int,Notification)
APItoputtheserviceinaforegroundstate,wherethesystemconsidersittobesomethingtheuserisactivelyawareofandthusnotacandidateforkillingwhenlowonmemory.(Itisstilltheoreticallypossiblefortheservicetobekilledunderextremememorypressurefromthecurrentforegroundapplication,butinpracticethisshouldnotbeaconcern.)说明二
Service|AndroidDevelopers
(int,)Makethisservicerunintheforeground,,meaningthatifthesystemneedstokillthemtoreclaimmorememory(suchastodisplayalargepageinawebbrowser),,suchasifyourserviceisperformingbackgroundmusicplayback,sotheuserwouldnoticeiftheirmusicstoppedplaying.
其他参考资料使用startForeground让android服务前台运行
android-startForeground()withoutshowingnotification
安卓13优化更大,或摆脱杀后台问题
安卓13优化更大,或摆脱杀后台问题,新系统的推送名单中小米应属于首批国内厂商,华为、OPPO、VIVO等一众厂商目前还没有透露,安卓13优化更大,或摆脱杀后台问题。
Android最令人沮丧的体验之一就是杀后台。后台应用被杀后通知可能会停止推送,虽说各家厂商也都有做类似的修复,不过还是要谷歌官方亲自出手才能解决这个问题。
一位Google工程师说,该公司在“一百万台” Android 设备上测试了MGLRU,其看到的结果是,看到了CPU利用率和内存压力方面的实质性改进,从而减少了OOM杀戮,降低了UI延迟。
原来,名为“Multi-Generational Least Recently Used”(MGLRU)的功能已经在Chrome OS上线,该公司在“4.14 和 5.15 之间的一些不同内核”上维护 MGLRU。现在看来,Google计划将 MGLRU 整合到 Android 系统中。
Android Gerrit上的一条commit,Google已经合并了Android 13的通用内核图像(GKI)的变化,另一个commit显示,很快甚至有可能通过adb启用它。
据悉,该功能实现了两个主要目标:第一个是Google发现kswapd的CPU使用量减少了40%,第二个是Google发现Android上的内存不足(OOM)的应用杀戮减少了18%。
近日,XDA发现,谷歌为Android 13内核添加了一段和内存、多任务优化有关的代码,主要涉及MGLRU(Multi-Generational Least Recently Used),即多页面回收策略,据悉可以极大改善小内存手机频繁杀后台的情况。
了解到,谷歌已经在Chrome OS引入这一策略,可以有效改善小内存设备在多任务运行时,由于CPU占用过高导致系统误杀后台应用的情况。根据谷歌测试,借助MGLRU策略,CPU使用率降低了40%。此外,在75%内存占用时减少了85%的后台误杀情况,在50%的内存占用时降低了18%的渲染延迟。
杀后台对于安卓手机用户,那是再正常不过,日常使用的过程中,我们常常会在后台留下很多App,比如最常用的QQ、微信等,把应用留在后台,目的就是为了能够在需要它的时候快速打开,不需要经过漫长的冷启动。
通常来说,内存比较小的手机,后台驻留能力都比较差,用户刚挂在后台的应用,可能没多久就被系统“杀”掉了,所以在消费者看来,智能手机的运行内存越大,越好用,或者越耐用,而厂商也经常在发布会上将手机的应用留存作为宣传点。
如今安卓阵营的运行内存也进一步升级,中低端机型都做到8GB起步,部分游戏手机甚至搭载了18GB。可惜的是,即便是12GB运存的安卓手机,后台驻留能力可能也不如6GB的iPhone,认为iOS的后台管理策略十分优秀,当天挂在后台的大型游戏,过两天还可以做到热启动。
不少网友对此表示,这是iOS特有的“假后台”机制,不论如何,希望安卓系统也能提高运行内存的利用效率,别让大内存成为摆设。至于国内的定制ROM,不一定会照搬安卓13的内核代码,但谷歌这样的改动对于厂商优化后台策略也有益处,消费者也不需要盲目追求大内存的手机了。
距离谷歌I/O大会还有不到一个月了,不出意外谷歌会在大会上公布最新的Android 13系统,并进入Beta测试阶段,小米、OPPO等也有机会成为第一批吃上新系统的厂商。
根据网上对谷歌安卓13的曝光,安卓13将在5月进行推送,或许也有很多小伙伴也在关心自己的手机能否升级最新的Android13。根据爆料,小米或将成为首批安卓13系统升级的手机厂商,不少米粉也因此乐开花。
这次Android13系统的优化或许也没能能给予即将发布的13.5太大的提升。安卓13与其说是升级不如说是安卓12的一次完善补丁,原本谷歌定档的Android12L最后也还是没能如期而至,最后选择直接发布Android13。
安卓13优化上更多是UI方面,基本在原来安卓12的基础上进行填补。新系统上用户可以根据壁纸颜色深度调整系统外观,使得桌面整体风格更加个性化和多样化。安卓13在用户隐私和安全上也做了优化升级,应用读取权限和授予权限变得更严格,连WiFi权限也需要得到授权方可调用。
这次新系统的推送名单中小米应属于首批国内厂商,华为、OPPO、VIVO等一众厂商目前还没有透露,时间线上应该也不会相隔太远。小米这次升级的机型中有最新的小米12系列以及11系列,基本都是这两年发布的新机型,红米Redmi机型也基本覆盖了2021到2022年发布的高端机型,中低端型号没能看到。
这次升级可以看出谷歌在系统上已经面临瓶颈状态,安卓这两年更多依靠的是厂商在硬件层面上的升级。从安卓7.0到安卓12大家都可以看到谷歌对系统上的调整和变化不是很大,基本都在UI设计的整改上以及用户隐私以及权限上进行升级。
同样的问题在iOS系统上也一样存在,近年iPhone在系统上变化也不大,更多在智能互连上进行升级,iPhone的RAM也从原来的2GB升级3GB再到现在6GB。
反观华为的鸿蒙HarmonyOS的升级在这两年可以用突飞猛进来形容,引领行业开创了多屏协同,还在智能家居互联互动上做出了跨时代的突破。据悉Harmony3.0将发布,华为的智能硬件调度又要在3.0时代上实现了。纵观每一年的安卓升级都让用户大失所望,难道谷歌安卓真的落后了,相信时间会给我们答案。
下一篇:精析构建高性能安卓应用的关键步骤
内容声明:
1、本站收录的内容来源于大数据收集,版权归原网站所有!
2、本站收录的内容若侵害到您的利益,请联系我们进行删除处理!
3、本站不接受违法信息,如您发现违法内容,请联系我们进行举报处理!
4、本文地址:https://link.52hwl.com/article/148f3da7166ccd0d9abc.html,复制请保留版权链接!
今年的中央经济工作会议,在内容上与以往很大不同的一点,是以大篇幅专门列出五个正确认识和把握。认识是廓清理论方向,把握则是部署实
2022-08-06 10:37:50
6月24日,以“创开源之势享无境未来”为主题的桌面操作系统根社区openKylin发布会线上举行,openKylin社区正式发布。 中国工程院院士王耀南表示,希望openKylin可以将开源之火带到物联网、人工智能等相关领域,以开源社区的力量驱动智能生态产业的发展。
2022-06-29 17:57:43
1、打开京东APP首页右上角扫码进入-随便点商品不竭进入-然后看商品顶部有没有提示红包 2、有就点击领取-没弹的去我的-右上角消息-账户通知-看看有没有提示红红包-有就领
2021-06-04 15:59:00
在这个充满浪漫色彩的季节里,发生了一段值得思考的相亲经历,安徽的小张骑着一辆独特的两轮车,怀着期待前往女子家中,他却对女子家中的拖鞋产生了疑惑,女子家里的拖鞋看似不合适,引发了小张的困惑,尽管心存不快,小张还是勉强接受了女子的邀约,与女子聊了一会儿天,他们的交谈愉快,女子也表现得热情,当告别时,小张发现女子的脚上穿着一双破旧的拖鞋,令...。
2024-05-29 06:49:46
在山西的一个小市区里,有一个54岁的男性,她的生存看似平庸,却由于一个异常的诊断而变得不同寻常,她被确诊为癌症早期,面对这样繁重的打击,她却选用了一条不寻常的路线——继续逛街打牌,而拒绝接受化疗治疗,她直言,大病治不好,这个故事,就像一场从天而降的暴风雨,令人震惊,也让人深思,这位男性名叫李阿姨,她的生存不时很安静,每天除了做家务,就...。
2024-05-29 05:35:20
在科学上进步而道义上落后的人,不是前进,而是后退,近些年,全球的科学技术都呈现飞跃式进步,特别是在生物学的相关领域,所得成果不断刷新人类的认知,在基因学研究中,最喜欢的就是把研究对象与人做对比,引起了一系列的伦理问题,特别是人类和近亲大猩猩能不能生出孩子,困扰了科学家很多年,全世界都掀起了讨论,最终由科学家亲身验证后,得到了结论,猩猩...。
2024-05-28 19:46:20
在2019年,工信部发布了电动车新国标标准,为了更好地管理电动车,在过去的5年中,发现了新标准存在一些问题,最近,电动车新国标标准正在进行修订,取消55公斤的限制可能会导致三个变化,使电动车更安全、更实用,电动车新国标标准规定了电动车的技术参数,其中包括整车重量不超过55公斤的限制,这个限制导致电动车无法安装大容量的电池,因为超重可能...。
2024-05-28 18:06:07
关于男性射精频率的传言在网络上引起了热议,许多人为此感到困惑,这种说法实际上缺乏科学依据,更像是一个荒谬的笑话,健康的男性无需为射精次数过多而担忧,适度的性生活不仅可以带来身体上的愉悦,也是情感交流的一种方式,相反,长期的禁欲可能导致性功能下降、精子质量减少,甚至增加不育风险,那么,何种性生活频率才算适宜呢,医学专家指出,应根据个体身...。
2024-05-28 17:38:27
Linux中最常用的20个命令如下,ls,列出目录内容cd,改变目录pwd,显示当前目录mkdir,创建目录rm,删除文件或目录rmdir,删除空目录touch,创建空文件cat,显示或连接文件cp,复制文件或目录mv,移动或重命名文件或目录less,分页显示文件内容head,tail,显示文件头部,尾部内容echo,显示字符串ps,...。
2024-03-25 20:13:29
国际化实战指南,如何在安卓系统开发中做到本地化与全球化并存国际化实战指南,如何在安卓系统开发中做到本地化与全球化并存随着全球化的不断深入,软件开发者们需要考虑如何在应用程序中实现本地化与全球化的并存,以便更好地满足不同地区、语言和文化的用户需求,在安卓系统开发中,实现国际化是至关重要的一环,本文将就如何在安卓系统开发中做到本地化与全球...。
2024-02-18 23:59:23
近期,台积电和三星都决定将投资重心转回本土市场,这一举动引起了广泛关注,台积电一直在中国台湾省加码建设芯片工厂,而最近韩国媒体报道称,三星也将在韩国本土投资300万亿韩元,约合1.6万亿人民币,,打造全球最大的半导体集群,这表明,三星和台积电都意识到在美国投资存在一些问题,美国的芯片补贴让他们失望,虽然美国承诺提供了超过500亿美元的...。
2024-02-13 13:55:36
2023年对于游戏行业而言,无疑是充满机会和挑战的一年,根据,2023年中国游戏产业报告,2023年,国内游戏市场实际销售收入3029.64亿元,同比增长13.95%;用户规模达到历史新高,达到6.68亿人,同时,版号发放也逐渐常态化、稳定化,全年版号数量达到了1075款,远超2022年的512款,同比增长109.96%,游戏工委在...。
2024-02-13 12:11:48