Android L默认採用ART执行环境。全然兼容64位移动处理器。Google称这将比此前的Dalvik模式性能提高两倍,可是会占用很多其它的内存空间。Android有三种执行模式:JNI、Dalvik、ART。Dalvik明显是最慢的,全然的JNI模式是最快的可是开发难度高,ART介于两者之间。而且不影响现有开发模式,所以Google选了ART。我们的技术project师对此做了技术解读:

1)JNI:在开发过程中使用编译器在C/C++等语言直接编译成机器码。执行的时候可以充分利用系统性能,这是最快的。iOS的Object C和Android 的NDK都是这样的模式。

2)Dalvik:Android L系统之前全部Android版本号的执行方式,採用的是字节码。在执行的时候解释执行变成机器可以识别的机器码。这个过程是比較缓慢的。

3)ART:Android 4.4開始推出的新的执行环境,在APP安装的时候使用dex2oat工具直接把DEX文件转换为机器码文件,执行的时候以机器码方式执行,可以充分利用系统性能;此外。改进的内存回收机制使得ART执行模式下的内存回收速度仅仅有Dalvik执行时模式下的50%。也可以提升系统执行速度。

尽管执行的速度提高了。可是ART也有缺点:

1)APP安装过程会变慢;

2)APP占用的存储空间会变多,系统更easy出现系统空间不足问题。

Google今年将Android生态的安全提到了非常重要的位置上,但Android L系统依然存在着一些先天不足:

1)恶意软件和病毒持续增长

Android系统诞生至今,一直饱受各种恶意软件的侵袭。随着各类操作系统ROM的预装内置和应用市场的审核不严等问题,Android平台的恶意软件和病毒数呈直线上升态势。我们在5年前就開始专注研究Android上各类软件的恶意行为。建立了APP行为云。用动静结合的方式分析各类APP的行为。

从CM security的监控数据来看,共发现恶意样本量超过450万款。包含恶意软件和病毒。在2014上半年,这二者的增长趋势超过150%。Android平台的安全战是一个持久战。

2)系统与第三方软件漏洞仅靠Google补丁是不够的

本次Android L系统添加了GooglePlay支持系统补丁的功能,可是因为Android系统版本号的碎片化分布,以及各种定制系统ROM,所以并非全部的漏洞都能够通过GooglePlay进行修补。并且对于Android系统上执行的第三方软件来说,也存在不少的漏洞风险(如WhatsApp隐私泄漏漏洞、Adobe Reader的webview随意代码执行漏洞等),对于这些漏洞风险,紧紧靠GooglePlay的补丁机制,是无法避免或进行全然修补的,Android漏洞方面的风险依旧严峻。

3)手机防盗的安全日益重要

美国立法推动了智能手机支持防盗窃功能,此次Android L系统中增强了此功能,意在彻底防止手机盗窃后的二次倒卖或信息窃取。依据美国《消费者报告》(Consumer Reports)的数据。2013年美国有超过300万部智能手机被盗,远超2012年的160万部。

4)隐私保护机制的教育须要时间依据CM security安全实验室的APP行为云分析,约有20万款应用(约4.4%) 会向用户索取不必要的隐私权限,如短信、通话记录读写权限、用户位置数据权限等。这些APP会在后台偷偷拿到用户的个人隐私,导致用户的日常行踪暴露无遗。

Android L系统提供了一个调整APP权限的机制,来避免用户的隐私泄露风险。对于最大众面的普通用户来说。学会怎样进行底层设置来管理APP权限还须要一定的教育周期。

本文来自网络。如有违规。请提示删除

安卓执行机制JNI、Dalvik、ART之间的比較 。android L 改动执行机制。的更多相关文章

  1. 安卓WebView中接口隐患与手机挂马利用(远程命令执行)

    安卓应用存在安全漏洞,浏览网站打开链接即可中招.目前有白帽子提交漏洞表明目前安卓平台上的应用普遍存在一个安全漏洞,用户打开一个链接就可导致远程安装恶意应用甚至完全控制用户手机,目前微信,手机QQ,QV ...

  2. SQL执行计划Cost与性能之间的的关系

    关于执行计划Cost的三个疑问: 1. 执行计划的Cost越低,SQL就一定跑得越快吗?或者说Cost 和 执行时间成比例关系吗? 2. Oracle 默认产生的执行计划是Cost最低的吗? 3. 如 ...

  3. Android L 使用ART能提高多少性能?

    点击打开链接 刚刚结束的 Google I/O 大会上,Android 下一代操作系统「L」带来不少惊喜.新系统运行更快.更省电. 然而开发者对这个新系统也有颇多疑问,比如新的运行模式 ART 对开发 ...

  4. 理解Android Java垃圾回收机制

    Jvm(Java虚拟机)内存模型 从Jvm内存模型中入手对于理解GC会有很大的帮助,不过这里只需要了解一个大概,说多了反而混淆视线. Jvm(Java虚拟机)主要管理两种类型内存:堆和非堆.堆是运行时 ...

  5. Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6642463 在前面几篇文章中,我们详细介绍了A ...

  6. Android中对Handle机制的理解

    一.重要參考资料  [參考资料]     眼下来看,以下的几个网址中的内容质量比較不错.基本不须要再读别的网址了. 1.android消息机制一     http://xtfncel.javaeye. ...

  7. Android 操作系统的内存回收机制(转载)

    Android 操作系统的内存回收机制(转载) Android APP 的运行环境 Android 是一款基于 Linux 内核,面向移动终端的操作系统.为适应其作为移动平台操作系统的特殊需要,谷歌对 ...

  8. Android多线程----异步消息处理机制之Handler详解

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  9. Android 操作系统的内存回收机制[转]

    转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-android-mmry-rcycl/ Android APP 的运行环境 Andro ...

随机推荐

  1. mysql 导入数据库

    1:创建数据库 dos 进入 xxx\MySQL5.7\bin 目录(很多人喜欢把这个路径配置在环境变量path中,这样在dos敲命令时,就直接是mysql......) mysql -uroot - ...

  2. 手动搭建redis集群(3台)

    安装redis 1.搜索源中的redis包 apt-cache pkgnames | grep redis 2.安装redis-server apt-get install redis-server ...

  3. python爬虫入门七:pymysql库

    我们使用python爬取得到的数据,有时候会数据量特别大,需要存入数据库. 需要注意的是,MySQL是一种关系型数据库管理系统,利用MySQL可以对数据库进行操作,而MySQL并不是一个数据库. 而p ...

  4. JQuery基本事件函数

    1,click单击事件 2,blur失去光标事件,focus获得光标事件 3,JQuery.on()函数:为html元素绑定事件,如下代码: $("div").on("c ...

  5. CentOS6配置静态IP

    CentOS6配置静态IP 1. 编辑网卡配置 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=不需要改 TYPE=Et ...

  6. asp.net提交危险字符处理方法之一

    在form表单提交前,可以在web页面,submit按钮的click事件中,使用js函数对,可能有危险字符的内容进行编码. 有3个函数可用: encodeURI() 函数可把字符串作为 URI 进行编 ...

  7. 九度oj 题目1347:孤岛连通工程

    题目描述: 现在有孤岛n个,孤岛从1开始标序一直到n,有道路m条(道路是双向的,如果有多条道路连通岛屿i,j则选择最短的那条),请你求出能够让所有孤岛都连通的最小道路总长度. 输入: 数据有多组输入. ...

  8. pmm metrics 数据采集来源

    handler状态参数 mysql> show global status like '%handler%'; +----------------------------+----------- ...

  9. mysqlbinlog备份和mysqldump备份

    -bash : mysqldump: command not found -bash : mysqlbinlog:command not found 首先得知道mysql命令或mysqldump命令的 ...

  10. Python 频繁读取Mysql相关问题

    1.需要频繁select大量数据,时间长.消耗内存大,如何解决mysql性能问题? 如果对返回的结果数量没有要求,可以控制返回的数量: cursor.fetchmany(size=1000) 这样是只 ...