安卓运行机制JNI、Dalvik、ART之间的比较 。android L 修改运行机制。

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

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占用的存储空间会变多,系统更容易出现系统空间不足问题。

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 修改运行机制。

时间: 2024-10-14 05:59:22

安卓运行机制JNI、Dalvik、ART之间的比较 。android L 修改运行机制。的相关文章

【转】NDK编译可执行文件在Android L中运行显示error: only position independent executables (PIE) are supported.失败问题解决办法。

原文网址:http://blog.csdn.net/hxdanya/article/details/39371759 由于使用了NDK编译的可执行文件在应用中调用,在4.4及之前的版本上一直没出问题.最近由于要测试在Android L上的运行情况发现,当运行该可执行文件时,报如下错误: error: only position independent executables (PIE) are supported. PIE这个安全机制从4.1引入,但是Android L之前的系统版本并不会去检验

安卓执行机制JNI、Dalvik、ART之间的比較 。android L 改动执行机制。

Android L默认採用ART执行环境.全然兼容64位移动处理器.Google称这将比此前的Dalvik模式性能提高两倍,可是会占用很多其它的内存空间.Android有三种执行模式:JNI.Dalvik.ART.Dalvik明显是最慢的,全然的JNI模式是最快的可是开发难度高,ART介于两者之间.而且不影响现有开发模式,所以Google选了ART.我们的技术project师对此做了技术解读: 1)JNI:在开发过程中使用编译器在C/C++等语言直接编译成机器码.执行的时候可以充分利用系统性能,

Android剖析和运行机制

翻译之<Android Anatomy and Physiology>,下载地址:http://download.csdn.net/detail/wuxiaoer717/6839427 大纲: 1. Android剖析 Linux内核 本地库(Native Libraries) Android运行时(Android Runtime) 应用框架 2. Android运行机制 启动流程 层间交互(Layer Interaction) 一. Android剖析 如下图所示为Android的架构图 1

舌尖上的安卓(android触控事件机制学习笔记录)

对于一个"我们从来不生产代码,我们只是大自然代码的搬运工"的码农来说.对android的触控机制一直是模棱两可的状态,特别是当要求一些自定义的控件和androide的自带控件(比如ViewPager,ListView,ScrollView)高度嵌套在一起使用时. 花了点时间梳理了下,做个笔记.对于一个触控的事件从用户输入到传递到Actigvity到最外层的Viewgroup在到子View,中间过程还可能穿插多个Viewgroup,android在ViewGroup提供了3个方法来控制流

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

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6642463 在前面几篇文章中,我们详细介绍了Android系统进程间通信机制Binder的原理,并且深入分析了系统提供的Binder运行库和驱动程序的 源代码.细心的读者会发现,这几篇文章分析的Binder接口都是基于C/C++语言来实现的,但是我们在编写应用程序都是基于Java语言的,那么,我 们如何使用Java语言来使用系统的Binder机

Android Handler AsyncTask 消息机制

一.Android消息机制一 Android 有一种叫消息队列的说法,这里我们可以这样理解:假如一个隧道就是一个消息队列,那么里面的每一部汽车就是一个一个消息,这里我们先忽略掉超车等种种因素,只那么先进隧道的车将会先出,这个机制跟我们android 的消息机制是一样的. 角色描述 1. Looper:(相当于隧道) 一个线程可以产生一个Looper 对象,由它来管理此线程里的Message Queue( 车队,消息隧道) . 2. Handler: 你可以构造Handler 对象来与Looper

android中的多线程机制

Google参考了Windows的消息处理机制,在Android系统中实现了一套类似的消息处理机制.学习Android的消息处理机制,有几个概念(类)必须了解: 1.       Message 消息,理解为线程间通讯的数据单元.例如后台线程在处理数据完毕后需要更新UI,则可发送一条包含更新信息的Message给UI线程. 2.       Message Queue 消息队列,用来存放通过Handler发布的消息,按照先进先出执行. 3.       Handler Handler是Messa

Android消息推送机制

1.推送方式基础知识: 当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数据,比如<地震应急通>就需要及时获取服务器上最新的地震信息.要获取服务器 上不定时更新的信息一般来说有两种方法,第一种是客户端使用Pull(拉)的方式,隔一段时间就去服务器上获取信息,看是否有更新的信息出现.第二种就是 服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上.? 虽然Pull和Push两种方式都能实现获取服务器端更新信息的功能,但是明显来说Push is

深入解析Android中Handler消息机制

Android提供了Handler 和 Looper 来满足线程间的通信.Handler先进先出原则.Looper类用来管理特定线程内对象之间的消息交换(MessageExchange).Handler消息机制可以说是Android系统中最重要部分之一,所以,本篇博客我们就来深入解析Android中Handler消息机制. Handler的简单使用 为什么系统不允许子线程更新UI 因为的UI控件不是线程安全的. 如果在多线程中并发访问可能会导致UI控件处于不可预期的状态,那为什么不对UI控件的访