June 25,2014---->Binder(IPC),Dalvik ,DEX/ODEX
1.Binder(IPC)
Linux进程之间要能够互相通信,从而共享资源和信息。所以,操作系统内核必须提供进程间的通信机制(IPC,Inter-Process Communication)。
IPC机制种类:采用命名管道(name pipe),消息队列(message queue),信号(signal),内存共享(share memory);
在Android终端上的应用软件的通信几乎看不到这些IPC通信方式,取而代之的是Binder方式。
Binder是通过Linux的Binder Driver 来实现的,Binder操作类似于线程迁移(Thread migration),两个进程间通信看起来就像是一个进程进入另一个进程去执行代码,然后带着执行的结果返回。SEE MORE>
2.Android 为什么一开始要引入 Dalvik 虚拟机机制?
Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是一个Android运行时的一部分,作用在于连接底层核心、周边库与上层应用,提供更多的自动管理功能:
3.Art取代Dalvik
在Kitkat中Art模式可以在「开发者选项」中切换,但是Sony的4.4并没有添加这个选项。原因是应用需要被优化,否则面临兼容性不好的风险,而优化会延缓新系统的发布时间。
ART模式比Dalvik要快,但是也有一些缺点:
1.会增加程序占用的存储空间(不是很多)。
2.会更耗电。
不过这些也许只是暂时的。下一版本的Android会正式移除Dalvik。
4.DEX和ODEX的区别
ODEX是安卓上的应用程序apk中提取出来的可运行文件,即将APK中的classes.dex文件通过dex优化过程将其优化生成一个.odex文件单独存放,原APK中的classes.dex文件会保留。
这样做可以加快软件的启动速度,预先提取,减少对RAM的占用,因为没有odex的话,系统要从apk包中提取dex再运行。
注意:/system/app中的apk文件中没有dex文件(如下图,左边的SemcClock.apk是从系统中pull出来的),我们知道dex是Android的可执行文件(/data/data/<package name>/下面有dex,是程序第一次运行的时候生成的)。
这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常安装的(安装提示「解析包时出现问题」)。
5.platform.x509.pem和platform.pk8的用处
QUOTE:
很多网友可能需要访问一些系统敏感的设置信息,如果没有Root权限如何解决呢? platform.x509.pem和platform.pk8可以让你获得系统权限,Android在系统账户安全中使用了Linux的ACL控制方式,通过在每个App中使用sharedUserId设置即可共享系统账户权限,比如android:sharedUserId=”android.uid.system” 这样就是用了system这个uid了。 SEE MORE>>
这种方法早就听说过,用SHARE UID得到系统级权限,没试过,不知在Kitkat以及以后版本是否适用。
So much for today.
9:35PM
June 25,2014---->Binder(IPC),Dalvik ,DEX/ODEX的更多相关文章
- Handler消息机制与Binder IPC机制完全解析
1.Handler消息机制 序列 文章 0 Android消息机制-Handler(framework篇) 1 Android消息机制-Handler(native篇) 2 Android消息机制-H ...
- SEAndroid安全机制对Binder IPC的保护分析
在SEAndroid安全机制中,除了文件和属性,还有Binder IPC须要保护.Binder IPC是Android系统的灵魂,使用得相当广泛又频繁.比如,应用程序都是Binder IPC请求訪问系 ...
- Android Binder IPC详解-Android学习之旅(96)
linux内存空间与BInder Driver Android进程和linux进程一样,他们只运行在进程固有的虚拟空间中.一个4GB的虚拟地址空间,其中3GB是用户空间,1GB是内核空间 ,用户空间是 ...
- Android : 跟我学Binder --- (1) 什么是Binder IPC?为何要使用Binder机制?
目录: Android : 跟我学Binder --- (1) 什么是Binder IPC?为何要使用Binder机制? Android : 跟我学Binder --- (2) AIDL分析及手动实现 ...
- Binder IPC的权限控制
PS:个人理解:当进程1通过Binder调用组件2时,会将进程1的pid及uid赋给组件2,并检测进程1的pid及uid是否有权限调用组件2.而后组件2需要调用组件3,此时组件2保存的pid及uid为 ...
- 涵涵和爸爸习惯养成进度表(三)(June 25 - )
规则说明 23天内,没有哭脸,不超过三个无表情脸,可以给一个奖励(动画书等) 涵涵违反规则,在爸爸和妈妈都同意的情况下,可以给无表情脸 爸爸违反规则,在妈妈和涵涵都同意的情况下,可以给无表情脸 获奖记 ...
- Android 各版本信息 (维基百科)
The following tables show the release dates and key features of all Android operating system updates ...
- Eclipse 安装需要的 JDK 版本简要说明
Eclipse 4.6 (Neon) Eclipse 4.6 (Neon)is scheduled for release on June 22, 2016. Consider using the I ...
- eclipse版本对应的jdk版本
Installing Eclipse is relatively easy, but does involve a few steps and software from at least two d ...
随机推荐
- 讯飞语音识别Android-Demo
import java.io.UnsupportedEncodingException; import android.app.Activity; import android.os.Bundle; ...
- iOS- Exception Type: 00000020:什么是看门狗机制(转)
1.前言 前几天我们项目闪退之后遇到的一个Crash,之后逛了许多论坛,博客都没有找到满意的回复 在自己做了深入的研究之后,对iOS的看门狗机制有了一个基本的了解 而有很多奇怪的Crash可 ...
- springMVC前后端分离开发模式下支持跨域请求
1.web.xml中添加cors规则支持(请修改包名) <filter> <filter-name>cors</filter-name> <filter-cl ...
- python(33)- 模块与包
一 模块 1 什么是模块? 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函 ...
- JavaScript插件编写指南
在编写插件之前,大家要先了解做插件的几个要点: 插件需要满足的条件 一个可复用的插件需要满足以下条件: 插件自身的作用域与用户当前的作用域相互独立,也就是插件内部的私有变量不能影响使用者的环境变量: ...
- 【Bootstrap】一个兼容IE8、谷歌等主流浏览器的受众门户式风格页面
上一次写的<[Bootstrap]一个兼容IE8.谷歌等主流浏览器的受众巨幕式风格页面>(点击打开链接) 部分老一辈的需求可能对这样的后现代的风格并不惬意, 没关系,我们全然能够改变布局 ...
- PCB板布线中地线和电源线的布线规则
电源. 地线的布置考虑不周到而引起干扰,使产品的性能下降,严重时会降低产品的成功率.要把电源线和地线处理好,将电源线和地线所产生的噪音干扰降到最低限度,以保证产品的质量.一.电源线和地线的布线规则1) ...
- 将UIBezierPath存为自己定义格式的字符串,再将字符串转为UIBezierPath
<pre name="code" class="objc">自己定义字符串格式为:@"123.02,234.23|321.23,432.0 ...
- Django框架学习——python模拟Django框架(转载)
原贴来源 http://wiki.woodpecker.org.cn/moin/ObpLovelyPython/AbtWebModules python实现web服务器 web开发首先要有web服务器 ...
- linux快捷键及主要命令(转载)
作者:幻影快递Linux小组 翻译 2004-10-05 22:03:01 来自:Linux新手管理员指南(中文版) 5.1 Linux基本的键盘输入快捷键和一些常用命令 5.2 帮助命令 5.3 系 ...