导航:首页 > 操作系统 > android内核优化

android内核优化

发布时间:2022-11-26 20:07:42

android 内核分析 bindler

上一次说了android的启动原理,这次说下android的进程间的通信。
linux 本身是提供了通信机制的。大概有7种左右。然后但是为什么android不用。反而要自己搞一套。主要分析到2个方面: 安全性 和性能。因为前期的移动手机性能不高。还有就是绕开Linux内核的开源限制。
总结就是----避免内核空间到数据接受端的直接的数据拷贝;数据接受端接收数据的时候,由于数据大小不确定,要么分配一个很大的空间装数据,要么动态扩容;两种方式都有问题;Binder使用mmap直接把接受端的内存映射到内存空间,避免了数据的直接拷贝;另外通过data_buffer等方式让数据仅包含定长的消息头,解决了接受端内存分配的问题.
android内部的进程间的通信都是通过binlder 来实现的。这个是很重要的一点。
我们面试问道的 aild Content Provider 调用拨打电话 Intent跳转 其底层都是调用的bindler机制.
关于binlder的运行原理 我只写一个大概。
在其底层的Linux中 /etc/bindler/ 有这个c 文件 就是binlder 的程序文件了。其内部是采用的引用计数器来为何对象。要知道 我们的bindler是支持多进程。如何一个service端要对应多个客户端 也就是说要实现多对多。在看内部源码的时候我发现其内部是用2个红黑树来维持 一个service 对专门提供一个客户端调用。如果还有其他的客户端调用就在生成一个servicebindler 对象来提供调用 然后根据内存管理的引用计数器来回收掉不需要的servicebindler对象。
如果你想深究 我推荐这个 http://0xcc0xcd.com/p/index.php

② 安卓手机如何优化设置

一直以来安卓手机给人的感觉都是各种卡顿,尤其是开的程序比较多以后,和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卫星(关闭);

3、应用程序设置--未知来源(√)

4、账户与同步设置--背景数据(关闭)

5、日期和时间设置--选择时区--GMT+08:00,中国标准时间

6、CM设置--应用程序--允许移动应用程序(√)

显示--屏幕关闭动画(关闭)

输入--振动反馈微调--振动反馈(关闭)

界面--状态栏调整--电量百分比(√)

越界效果--None

界面 - 通知栏电源控件--控制按钮--切换GPS(√),切换Wifi(√),切换亮度(√),切换声音(√),切换移动数据(√),切换蓝牙(√),切换飞行模式(√)

(感谢weiweiming的总结)

“设置”——“关于手机”——“自动系统更新”(去掉那个“勾”)

关闭相机拍照声音

用R.E管理器进/system/media/audio/ui目录,把camera_click.ogg这个文件改名或者直接删除

2、设置优化

开启性能模式

很多手机默认是标准模式甚至是省电模式,这对性能是有不少影响的,因此建议不是有特别需求还是调至性能模式(位置:系统设置,因不同手机而异)。

#FormatImgID_0#

关闭动画特效

Android 4.1增加了动画程序时长调整,我试过当关闭了动画以后会感觉反应迅速了很多(位置:设置→开发人员选项)。

#FormatImgID_1#

第三方软件更换启动器

实际上很多Android卡顿的罪魁祸首就是系统的启动器,现在一些品牌的手机启动器做得越来越炫丽,也越来越复杂,当然代价就是占用RAM和ROM更多,如果不是对这方面特别有要求,完全可以替换一些第三方的启动器。

卸载系统自带程序

现在官方系统自带很多程序,而且不能卸载,但是这些软件往往都会开机自启动,而且对系统流畅度影响比较大,但是要删除这些自带软件需要获取root权限。通用一些第三方ROM也会有自带垃圾软件问题,而大部分第三方ROM都自带root,所以这个相对好解决。

管理开机自启动项

减少开机自启动的软件,除了能节省电量之外,当然还能提升手机的反应速度,当然只要关闭一些不需要自启动的第三方软件就可以达到目的了。

③ 怎么让手机不卡

关键还是自己优化,这里提供一些较为普遍可以使用的方法,其实我想说的是,安卓不比ios差。
1.刷机。系统这一块绝对是有着举足轻重的地位,一款好的系统能让Android脱胎换骨。而从Android 4.1开始,Android的流畅性可以说有了质的飞跃。Android 4.1的触控感觉非常好,这主要归功于Android 4.1的帧速度提高到了60fps,而且在触摸延迟上有更加优秀的表现。因此只要情况允许,建议所有Android手机都刷到4.1以上,这种体验绝对是以往使用4.0甚至2.3系统都不可想象的。当然,对于大部分Android手机来说,4.1还是遥不可及,只有通过第三方ROM才能达到品尝“果冻豆”的目的,这里就要特别注意第三方ROM的稳定性问题。
如果不能刷Android 4.1,那还可以选择一些第三方ROM例如原生系统AOKP或者CM系列。由于系统非常精简,这些第三方ROM也会带来流畅度的提升,当然要放弃的是官方ROM的各种自带软件和UI,这就要看用户的取舍了。
2.更换内核。Android手机的内核(Kernel)对手机流畅性也是有很大的影响,内核直接影响CPU的运行效率、频率变化。说到刷内核就不能不提超频,一些第三方内核支持CPU的超频,CPU频率提高了流畅度当然会有变化,当然这里也要特别注意温度和电压的控制。
3.设置优化。
①开启性能模式
这个问题在此前的文章“如何让你的手机更省电?”中已经有提及过,很多手机默认是标准模式甚至是省电模式,这对性能是有不少影响的,因此建议不是有特别需求还是调至性能模式(位置:系统设置,因不同手机而异)。
②关闭动画特效
这是一个Android 4.0才开始有的设置选项,Android 4.0有两项(窗口动画缩放以及过渡动画缩放),Android 4.1增加了动画程序时长调整。有人说Android的动画比较卡,没有iPhone顺滑,有这选项可好,你说动画不顺嘛,我关掉还不行吗?关闭了这些以后会感觉反应迅速了很多,但是牺牲了一定的视觉感受(位置:设置→开发人员选项)。
③不保留活动
这个选项即把Android相对iPhone的其中一个很大的优势舍弃了,也就是我们常说的“多任务”,Android现在的高端机动不动就四核、2G RAM,如果只跑一个软件,可想而知流畅度会非常高,但是这里并不建议使用这种方法提升流畅度,没有多任务的Android更像一只三脚猫,如果只是体验一下那种感觉也无妨(位置:设置→开发人员选项)。
③不保留活动
这个选项即把Android相对iPhone的其中一个很大的优势舍弃了,也就是我们常说的“多任务”,Android现在的高端机动不动就四核、2G RAM,如果只跑一个软件,可想而知流畅度会非常高,但是这里并不建议使用这种方法提升流畅度,没有多任务的Android更像一只三脚猫,如果只是体验一下那种感觉也无妨(位置:设置→开发人员选项)。
3.第三方软件
更换启动器
实际上很多Android卡顿的罪魁祸首就是系统的启动器,现在一些品牌的手机启动器做得越来越炫丽,也越来越复杂,当然代价就是占用RAM和ROM更多,如果不是对这方面特别有要求,完全可以替换一些第三方的启动器,例如Apex、NOVA等,它们带来的流畅度提升也是非常明显的。
卸载系统自带程序
现在越来越多官方系统自带很多恼人的程序,而且不能卸载,这些软件往往都会开机自启动,对系统流畅度影响比较大,但是要删除这些自带软件需要获取root权限。通用一些第三方ROM也会有自带垃圾软件问题,而大部分第三方ROM都自带root,所以这个相对好解决。这里删除程序也要特别注意,不要错删一些系统软件,否则后果很严重。
建议:卸载一些不常用的桌面插件、系统强制安装的第三方软件等。
管理开机自启动项
这方面在之前的省电专题中也有提到过,减少开机自启动的软件,除了能节省电量之外,当然还能提升手机的反应速度,当然这里也不能一下把所有软件都关闭,关闭一些不需要自启动的第三方软件就可以达到目的了,如果不小心把系统本身的程序禁用了就会比较麻烦。
建议:禁用大部分第三方软件自启动
其实很多“常识性”的问题都是以讹传讹,比较典型的就是Android比iPhone卡很多,iPhone不“拼配置”等实际上都是有误的,我们只能通过亲身使用以及测试才能知道真相,还是那句老话,眼见为实。当然,Android要有这种程度的流畅感觉,还是需要建立在强大的硬件配置上的。

④ 在安卓开发中,当设置默认浏览器后,内核文件哪个被修改呢我查过package.XML,里面没改变,

使用Trident内核的浏览器:IE、Maxthon、TT、The World等;
使用Gecko内核的浏览器:Netcape6及以上版本、FireFox、MozillaSuite/SeaMonkey;
使用Presto内核的浏览器:Opera7及以上版本;
使用Webkit内核的浏览器:Safari、Chrome。
使用Webkit和Trident双核心浏览器:Maxthon3.x,QQ浏览器5,搜狗浏览器2.x,

浏览器是边下载边解析,边显示的,这个地方就有不少的坑等着你,
光拿一个开源的xml解析器可不行,html的解析中还有图文混排等功能,
整个地方又是无数的坑。 就不要说javascript的引擎了

所以不是那么简单的 解释起来比较麻烦

你来我们群里说吧

这里是开发者互相学习交流的

有大神

让他们给你解释你的疑问 q un号: 188168040

⑤ 怎样更改安卓手机内核数据让手机运行快点。

运行变快一般有这么几个方法,一是换精简优化的系统,二是不要用手机管家等后台非常耗资源的软件,甚至尽量少开qq、微信等后台接收消息的软件。另外你可以在开发者选项里设置退出软件时自动关闭后台进程。这样可以保证你的内存消耗始终在最低标准

⑥ 安卓系统是基于linux内核开发的,两者的具体区别是什么为什么安卓多用于移动设备而linux不是

安卓基于linux内核,但是针对移动设备做了更多的优化,所以安卓多用于移动设备。两者区别如下:

一、主体不同

1、安卓系统:是一种基于Linux的自由及开放源代码的操作系统。

2、linux内核:是一套免费使用和自由传播的类UNIX操作系统。

二、应用不同

1、安卓系统:主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。

2、linux内核:是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。


三、特点不同

1、安卓系统:会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。

2、linux内核:继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

⑦ android系统 主要有哪几部分

android系统分为四部分,从高到低分别是:

1、Android应用层

2、Android应用框架层

3、Android系统运行层

4、Linux内核层

Android系统构架主要应用于ARM平台,但不仅限于ARM,通过编译控制,在X86、MAC等体系结构的机器上同样可以运行。

(7)android内核优化扩展阅读

Android运行库

Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。

每一个Android都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。

同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的“dx”工具转化成.dex格式由虚拟机执行。

⑧ 如何修改Android系统的Ramdisk以及boot镜像

Android系统的Ramdisk以及boot镜像就在rom/boot目录下,ramdisk以及second stage loader(可选)组成,可以从mkbootimg.h文件中看到。

boot.img文件的作用及修改方式:

  1. boot.img通常称之为“内核”,属于系统底层文件,它包含了手机系统软件和硬件相连接的一个渠道,这里包含了相机、cpu、gpu等驱动。

  2. 一般来说官方提供的内核相对于第三方的内核是相对稳定的,如果发现刷机包里没有boot.img文件,那么刷机完成后系统会使用刷机之前系统的内核,也就是内核保持不便,一般来说内核的升级才是系统真正的升级;内核文件记录了一些系统底层的核心功能和连接硬件驱动的作用,内核的优化能够给系统带来质的飞跃。

  3. 就比如HTC M8目前已经升级到了Android 5.0系统,那么刷入4.4版本的boot.img会有什么样的后果呢,一般来说这样跨版本刷boot.img会导致无法开的情况,对于大版本之间的升级强烈建议不要随意刷boot.img文件,boot.img文件不仅仅是和机型相对于的,而且和版本也相对应,有新手朋友随意乱刷boot.img文件,导致手机无法开机的情况。

  4. boot.img文件是可以修改的,建议在Linux环境下修改,当然也可以使用Windows系统来解压,简单的修改一些参数,但是要做到真正的代码优化,建议还是在Linux环境下进行。

⑨ 安卓内核与rom有什么区别

安卓内核与rom的区别:
1、android 的内核都是linux的内核。
(1)Android内核是基于Linux2.6内核的(目前最新开发版本是2.6.31),它是一个增强内核版本,除了修改部分Bug外,它提供了用于支持Android平台的设备驱动。
(2)AndroidBinder,基于OpenBinder
框架的一个驱动,用于提供 Android 平 台 的 进 程 间 通 讯 (IPC, inter-processcommunication)。
(3)源代码位于drivers/staging/android/binder.c Android电源管理(PM),一个基于标准Linux电源管理系统的轻量级的Android电源管理驱动,针对嵌入式设备做了很多优化。
2、rom和每个手机厂商有关,每个rom都有对应手机型号、系统本版的驱动程序。
(1)安卓ROM是手机重新刷入系统的一个程序包,安卓系统在手机市场里占有率很高,所以安卓ROM发展很快,国内比较知名的安卓ROM有米柚,乐蛙,网络云,深度等。
(2)ROM是一种只能读出事先所存数据的固态半导体存储器。其是。通常用在不需经常变更资料的电子或电脑系统中,资料并且不会因为电源关闭而消失。
(3)ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定,断电后所存数据也不会改变;其结构较简单,读出较方便,因而常用于存储各种固定程序和数据。除少数品种的只读存储器(如字符发生器)可以通用之外,不同用户所需只读存储器的内容不同。

阅读全文

与android内核优化相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:144
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163