关于Android系统优化的思考

      昨天被人问到是否有系统优化的经验,我说没什么优化,只是把一些不需要的东西给去掉,比如apk,和一些多余的lib.

自信想想,其实我们还是做了很多的优化工作的,当然有一些是针对应用来做的,只是自己对Android系统优化一直没

有做一个系统的思考,所以才会做出这样的回答。那这边文章后续会一直更新,写下自己针对Android系统优化的一些思考。

 

一。人们谈到系统的优化,哪些方面可以做优化呢,我初步的想法有以下几个点:

1.  首先就是系统的界面的优化,交互的优化:

    那比如我们做电视的,需要对各种系统UI进行定制,

    那比如说音量条,系统的弹窗风格,系统的升级界面,安装界面,关机界面、最近运行应用,

    升级后安装配置过程的用户提示信息,等等一些统一的系统元素需要去优化。

 

2. 系统对外接口的优化以及后续开发维护的优化,方便应用层的开发。

    提供我们自己统一的中间件接口,供外部应用调用,这样可以方便后续的应用开发工作。

    增加自己的Overylay,方便后续平台的移植工作。

    制定自己的按键键值标准,方便后续移植工作。

 

3.  生产、升级、调试等功能相关的优化

    生产过程中的一些工厂菜单,然后生产后的一键复位。

   日志的上传、售后问题的分析。

 

4. 各项功能的优化

 

5. 系统的性能优化

    针对用户可感知的部分:升级后安装配置的时间优化,开机时间的优化,开机后应用启动时间的优化,

    系统操作流畅度的优化。

当然一般人讲的可能是第5点,那么就专门针对第5点再讲。

 

二、 关于系统性能的优化

      主要涉及到3个方面:

     1. CPU占用的优化

             比如系统是否开启了太多的不必要的打印,

             到底是哪些进程占用了较高的CPU,到底是哪些线程在占用较高的CPU。

             是否有一些不必要的应用后台重新启动。

     2. 内存使用的优化

              内存占用主要分析几点,哪些应用占用得太高了,是否存在内存泄漏,

              是否存在内存不必要的重复分配和回收。

     3. I/O使用的优化

              系统的I/O是否过高,I/O 是什么,主要主要是对外部存储设备(EMMC,U盘)‘

              以及其他外设的访问,包括外部麦克风和摄像头设备的访问, WiFi蓝牙设备的访问等。

       对外部存储设备的访问,主要是读写文件,数据库文件,

外部存储设备的读写是很慢的,很耗时的,所以如果有频繁的读写,是会很影响系统的性能。

关于之前的一些优化:

           去掉一些不必要的apk和lib,其实主要是涉及到I/O部分的优化。因为apk多了,那么系统开机的时候

扫描分析apk的时间就长了。这个不仅会优化开机时间,系统内也可以少了这部分apk对cpu和内存的占用。

          然后之前我们遇到的酷云互动不断地进行后台抓取屏幕信息,并且将这个图片保存到EMMC,这个就涉及

到频繁的I/O操作,所以这个是肯定不好的。

         另外,针对DropBox这个东西,如果是系统内有频繁发生的应用挂掉,那么这个也会造成对EMMC的反复读写。

需要进行限制,否则也是会严重的影响性能的。

 

 

那么针对应用相关的优化,主要是以下几个部分:

1. 广播的禁止接收,启用白名单和黑名单机制,对于非白名单的应用,静止开机自启动,这样可以节省内存和cpu的占用。

2. 应用启动时间的优化 ,主要通过traceview来检查启动过程中哪些比较耗时。

3. 应用的性能优化,主要检查UI是否有过度渲染,UI层级,加载图片的分辨率,内存是否有不必要的重复释放,

    内存泄露的确认这些。

 

 

 

            

 

 

                

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Android)