展开

关键词

虚拟机安装Android

虚拟机安装Android 作者:matrix 被围观: 1,058 次 发布时间:2013-10-06 分类:零零星星 | 无评论 » 这是一个创建于 3251 天前的主题,其中的信息可能已经有所发展或是发生改变 现在已经有很多Android模拟器可用,更简单快捷。 ---- android-x86 官网:http://www.android-x86.org/ google code:https://code.google.com/p/android-x86/downloads /list google翻译了一下google code上很友好的提示: 由于我没有安装vm或者其他虚拟机android-x86那就只有以后再说。 目前最新的版本android-x86-4.3-20130725.iso 如果看官需要安装,建议参考: http://wenku.baidu.com/view/5c60fd3067ec102de2bd8947

7720

Android-Dalvik虚拟机

Dalvik虚拟机作为Android平台的核心组件 1.体积小,占用内存空间小 2.专有的DEX可执行文件 体积更小 常量更快 3.常量池采用32位索引值 寻址类方法名 字段名 常量更快 4.基于寄存器架构 并拥有一套完整的指令系统 5.提供了对象生命周期管理 堆栈管理 线程管理 安全和异常管理以及垃圾回收等重要功能 6.所有的Android程序都运行在Android系统进程里 每个进程对应一个Dalvik 虚拟机实例 Dalvik虚拟机与Java虚拟机的区别 两者不兼容 1.java虚拟机运行的是Java字节码 Dalvik虚拟机运行的是Dalvik字节码 传统的Java程序经过编译 生成Java字节码保持在 Dalvik可执行文件体积更小 dx工具对常量池的压缩 使得相同的字符串 常量 在DEX文件中只出现一次,从而减小了文件的体积 3.Java虚拟机与Dalvik虚拟机架构不同 Java虚拟机基于栈架构 Hello 使用dexdump.exe (位于Android SDK的platform-tools目录中) dexdump.exe -d Hello.dex Hello.class 反编译后的代码 public

6310
  • 广告
    关闭

    90+款云产品免费体验

    提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    android之ART虚拟机和DVM虚拟机

    image.png ART虚拟机和DVM虚拟机Android 4.2之前的虚拟机叫做 DVM 在4.2的时候多了一个虚拟机选择,这是新的虚拟机 ART(Android Runingtime)。 那时ART还不够成熟,需要测试,所以默认虚拟机是DVM。国内的ROM厂商直接把ART给割了。Android5.0起,默认使用ART虚拟机,删掉了DVM。 DVM虚拟机(实时转换) 对应库名:libdvm.so库 ART采用的是AOT(Ahead-Of-Time)编译,每次运行应用的时候,实时将字节码转化为机器码,再运行程序。 (这就是相同配置的手机Android不如Apple流畅的原因。) ART虚拟机 对应库名:libart.so库 ART采用的是AOT(Ahead-Of-Time)编译,在安装应用的时候,就将应用的字节码转换为机器码,保存在手机里。

    46040

    JAVA虚拟机Android虚拟机的区别

    1.JAVA虚拟机运行的是JAVA字节码,Dalvik虚拟机运行的是Dalvik字节码 java虚拟机:JAVA->class文件 dalvik虚拟机:JAVA->class文件->Dalvik字节码 2.JVM基于栈,DVM基于寄存器 关于栈式虚拟机: 1.代码必须使用这些指令来移动变量(即push和pop) 2.代码尺寸小和解码效率会更高些 关于寄存器式虚拟机: 1.基于寄存器代码免去了使用 2.代码尺寸和解码效率不如基于栈虚拟机,因为它包含操作数,所以指令大于基于堆栈的指令。但是基于寄存器产生更少的代码,所以总的代码数不会增加。 3.寄存器虚拟机必须从操作指令中解码操作数,需要额外的解码操作。 Dalvik虚拟机执行的是dex字节码,ART虚拟机执行的是本地机器码 Dalvik执行的是dex字节码,依靠JIT编译器解释执行,运行时动态地将执行频率很高的dex字节码翻译成本地机器码,然后在执行,

    18020

    Android 虚拟机可以这么用了 ?

    说实话,我其实很少使用 Android Studio 自带的 Emulator 。一来巨慢(电脑太渣),二来 IDE 全屏的时候不能直接查看,还得快捷键切来切去,甚是麻烦。 在最新的 Android Studio 4.1 Canary 8 中,直接内置了 Emulator 。你可以在 IDE 内部直接运行 Emulator,而不再是一个单独的应用了。 不得不说,Android Studio 团队最近可谓诚意满满,之前刚刚放出了 Database Inspector 功能。我在之前的推文 数据库还可以这么查看 中也介绍过。 使用方式 File > Settings > Tools > Emulator (or Android Studio > Preferences > Tools > Emulator on macOS) 你可以先通过 AVD Manager 开启虚拟机,或者指定虚拟机直接运行 App 。 限制 内置虚拟机支持的扩展功能很少,目前只有关机、音量、屏幕旋转、返回键、Home 键、截图等。

    17920

    命令行创建Android虚拟机

    如何脱离Android Studio Ide用命令行创建 Android 虚拟机? 首先 要保证 Android 命令 是可用的。 但如果你要用命令行创建 Android虚拟机 的话,那就需要使用 sdkmanager 更新一下所需的支持包 emulator 和 build-tools;29.0.0 (这里我以29版本为例) sdkmanager 如果你需要启动 Android虚拟机 的话就需要使用它了。 不知道如何使用?OK,没问题。命令行 -> 输入 emulator,结果会告诉你使用 @虚拟机名称 或者 -avd 虚拟机名称。 不要着急,仔细看提示: 使用 仿真(虚拟机)需要硬件加速 请确保Windows虚拟机监控程序平台(whpx)已正确安装并可用。 虽然只是成功创建并启动了虚拟机而已。 但是,能否建立与开发项目的连接还是个问题。 adb devices flutter devices 都可以识别出来是 Android 虚拟机了!

    1.1K60

    jvm虚拟机android移植-编译篇

    都过时的东西了,android上的Dalvik效率不够高吗,不够逼格吗? 2、MIDP/CLC层:是嵌入式Java虚拟机的核心部分。 5、扩展JSR包:为虚拟机提供扩展功能。扩展JSR包种类很多,可根据需要进行扩展。 Java虚拟机的移植首先要确定两件事:一是目标CPU,二是目标OS(操作系统)。 JAVA_HOME 为java jdk环境目录 ANDROID_SYSROOT 为ndk 下的arch-arm目录 正常情况下会遇到一些错误,基本上是android与linux差异导致的改掉它就行

    759120

    Android虚拟机的JIT编译器

    背景 最近参加了华为方舟的Workshop,从编译到Runtime都有了一些体会,并且对于虚拟机的运行也有了一些了解。 Android虚拟机的演变 4.4版本前,使用的是Dalvik虚拟机 5.0版本以后,使用的是Art虚拟机 Dalvik虚拟机 原理 Dalvik是基于寄存器的虚拟机,读取和保存数据会比基于栈的JVM在运行时快很多 在5.0-7.0(Android N)之间,Android提出了ART虚拟机的概念,而运行的文件格式也从odex转换成了oat格式。 Android N的ART模式 JIT的解释器 对字节码进行解释 基于计算的跳转指令 基于Arm汇编的Operation Code处理 Profiling以及JIT编译的触发 基于函数执行次数以及搜索式的代码热度 的频率大大降低,减少应用卡顿的现象 目前方舟只支持64位的So,并且对于加壳的So会出现一些问题 参考资料 Understanding JIT Compilation and Optimizations Android

    84840

    Android虚拟机一年工作感受

    毕竟是野路子出身,自学的Android应用开发,没有比较优秀的上架应用,后来有机会被领导安排来做Android虚拟机的工作。 直到有一天,领导说,有一块新业务,Android虚拟机,没有人做过,给你两个选择,是继续留下做sensor,还是去虚拟机领域拓荒。其实我明白,这是没有选择的选择。 后来又学了Java,去做Android,啃了诸如《深入理解java虚拟机》这样的书籍,但大都是知其然而不知其所以然。 从事Android虚拟机这一年,更多地还是问题驱动。几十万行的代码,每年都要跟着Google升级,升级完了重新开始,很多代码细节都还没有研究清楚,代码已经更新了。 总的来说,一年来,尽管没有可以拿得出手的项目,但是研究虚拟机使得自己重新认识了Android系统,基本上深入了Android的核心,对于java语言也有了更透彻的理解,同时也学习了很多Google工程师优秀的设计与编码思想

    60430

    Android性能优化之虚拟机调优

    介绍完 深入学习Android虚拟机&运行时 之后,很多小伙伴问我,你描述的这些知识结构看起来艰深晦涩高大上,实际工作中能有多大用途呢?今天我就简单举个例子。 众所周知,我们的Android App运行在Java虚拟机之上,而Java是一门带GC的语言。 原理在于Android的进程机制——每一个App都有一个单独的虚拟机实例,在App自己的进程空间,我们有相当大的主动权。 我举个简单的例子。 write机制共享了Zygote进程的进程空间;其中Android虚拟机以及运行时的创建在Android系统启动,创建Zygote进程的时候已经完成了。 解析参数完毕之后,最终调用JNI_CreateJavaVM来真正创建Java虚拟机。这个接口是Android虚拟机定义的三个接口这一,dalvik能切换到art很大程度上与这个有关。

    1.4K10

    Android各版本虚拟机的Dexopt区别

    简述 从Android 2.1版本到现在的Android 11 , 中间虚拟机变化过三次 : 版本 虚拟机类型 特性 2.1-4.4 Dalvik JIT+解释器 5.0-7.0 ART AOT 7.0 image.png 各个版本dexopt产物的区别 5.0以下 使用Dalvik虚拟机 , 生成odex文件 . 加载时会触发dexopt , 导致Multidex加载的时候会非常慢 由于热点代码的Monitor一直在运行 , 解释器解释的字节码会带来CPU和时间的消耗, 会带来电量的损耗 5.0 - 7.0 使用ART虚拟机 , 但是在7.0之上 , 增加了.vdex与.art机制 , 在ART虚拟机再次启动/升级 , 加载Dex/Oat文件时 , 会减少Dex的校验时间 , 提升加载与运行效率 9.0 在ART虚拟机的基础上 时会校验Dex 文件各个section的合法性,这时候使用的compiler filter 为了照顾安装速度等方面,并没有采用全量编译,当app启动后,运行一段时间后,收集了足够多的jit 热点方法信息,Android

    1.9K20

    ART三问—继续说说Android虚拟机

    今天接着说Android虚拟机ART——Android Runtime。 介绍 ART虚拟机Android4.4发布,提供一个选项可以开启。 并且在Android5.0成为默认虚拟机,完全代替Dalvik虚拟机。 先补充下为什么需要虚拟机 上一节发过之后有朋友问为什么需要虚拟机呢,直接把机器码拿去运行不就行了吗? 其次,也提高了跨平台兼容性,通过虚拟机,可以让同一份代码在不同的系统上运行。这也是Java设计发布的初衷,Write Once Run Anywhere,只要安装了虚拟机,就可以运行项目。 所以Android7.0之后,又加入了即时编译器JIT,然后就将编译变成了两部分,安装的时候预编译一部分,然后运行中将热点代码又编译一部分,这样就比较合理了。 这样就带来了什么好处呢?

    72730

    【专业领域】jvm虚拟机android移植-接口篇

    上一篇我们讲了如何下载phoneme虚拟机开源代码,如何配置编译脚本,编译测试验证基本功能。但是要让她在android上显示运行java小游戏我们还得费点劲。好吧让我们一起来移植接口吧。 一、display接口 由于该开源项目已经年代久远,没有针对android进行优化,你也知道google和oracle的关系,但是她对各个指令集还是支持很好的,而且她的代码各个模块功能也是分得明了的,我们着手 2、依葫芦画瓢,那我重新加入一个文件fb_port_android.c 来实现吧 1)显示FrameBuffer 如何创建,由谁创建? 那我们就来挑战一下,纵观整个phoneme jvm虚拟机在以前的nokia手机上就有好多java小游戏,如贪吃蛇好经典的游戏不要对我说你没玩过,有点跑题了,其实我想说的是他们都是有声音的,而且phoneme 下载一个jsr135扩展包,我们将里面的实现都弄到java层用android的MediaPlayer来实现。 大体上我们只要移植这三类接口就能满足基本的需求了。

    48270

    Mac OS配置ionic环境和开启android虚拟机

    install --save ion-multi-picker 配虚拟机 系统默认只识别第一台avd 直接,android-25通26不通 1920*1080 id: 9 or "Nexus 5X" id -25;google_apis;x86" -d 19 -f 查看虚拟机 ➜ ~ avdmanager delete avd -n Pixel_XL_API_27 ➜ ~ avdmanager list avd ➜ ~ avdmanager list 查看所有 配环境 export ANDROID_HOME="/Users/jiangtao/Library/Android/sdk " export PATH=$PATH:$ANDROID_HOME/tools/bin export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ ANDROID_HOME/platform-tools 加android ionic cordova platform rm android ionic cordova platform add android

    16820

    Android 虚拟机:你需要掌握的基本知识

    本文简要介绍 Android Runtime 虚拟机里的一些细节点,主要包括 dex file, oat file, mirror::Class, ArtField, ArtMethod, DexCache 各种文件 .dex https://cs.android.com/android/platform/superproject/+/master:art/libdexfile/dex/dex_file.h .oat https://cs.android.com/android/platform/superproject/+/master:art/runtime/oat_file.h ART 上使用。 HeapReference<Class> component_type_; // 这个类对应的 DexCache 对象,虚拟机直接创建的类没有这个值(数组、基本类型) HeapReference /android/platform/superproject/+/master:art/runtime/art_method.h ArtMethod 代表一个运行在 Android Runtime 中的

    16610

    Android Studio程序无法加载到虚拟机解决方法

    安装玩Android studio之后创建一个项目(hello world)具体描述为:”Waiting for target device to come online”。即“等待目标设备在线”。 问题解决: ①:命令行(win+r–cmd)定位到android_sdk/platform-tools/目录下,执行”adb kill-server” ②: Go to SDK tools > SDK Tools Check Android Emulator and click Apply ? ③以上两种方法不行看此方法:绝对是虚拟机权限不够没有开成开发者USB调试模式(图片基于Android7.0) 首先进入设置界面 ?

    1.9K30

    051Android 虚拟机基本概念无标题文章

    android引入虚拟机,我想主要是考虑如下: 提供虚拟机对跨硬件平台好,只要维持好虚拟机与上下层的接口,上层应用可以不管底层的硬件区别。x86、arm架构的android手机都可以跑。 android为每个程序提供一个vm,可以使每个app都运行在独立的运行环境,使稳定性提高 Android中Dalvik和JVM的区别是什么? Dalvik基于寄存器,而JVM基于栈。 基于寄存器的虚拟机运行效率更高。 Dalvik负责进程隔离和线程管理,每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,Dalvik专门针对同时高效运行多个虚拟机进行了优化,其代码在虚拟机的解释下得以执行。 Dalvik虚拟机有自己的 bytecode,并非使用 Java bytecode。

    24240

    Android开发简记:Java和Android程序员都应该掌握的虚拟机知识

    Java虚拟机,如果要详细讲,可以写成一本书,但今天我的重点是想总结虚拟机的一些基础的知识点,让大家对虚拟机的内存空间有一个深刻的认识。 正如上图所示那样,编译的时候还是在硬盘中执行的,而运行则是在你计算机的内存中执行的,你可以理解虚拟机把这个字节码文件拿到内存中运行,而虚拟机此时会在内存中划分一块空间块,这个空间块就是拿来运行字节码文件里的代码 实际上,严格来讲,虚拟机中的内存是划分为若干个不同的数据区域,主要5个:堆、方法区、虚拟机栈、本地方法栈和程序计数器。 如下图所示: 而平常我们说的栈内存就是虚拟机栈,虚拟机会在虚拟机栈中会创建一个栈帧,栈帧除了用来调用方法并执行方法的,它里面还有局部变量表,操作数栈,动态连接和返回地址。 本地方法栈,和虚拟机栈基本一样,只是本地方法栈是针对native(本地)方法,当涉及到JNI会使用到本地方法栈。

    24400

    Android 中高级面试原理:热修复与插件化基础—Java与Android虚拟机

    一、Java虚拟机(JVM) 1、JVM整体结构 使用javac将java文件编译成class文件。 类加载器(ClassLoader)将class字节码加载进JVM对应的内存中。 Java栈帧:每个方法从调用到执行完成就对应一个栈帧在虚拟机栈中入栈到出栈。它描述了一个方法的局部变量表、栈操作数、动态链接、方法出口。 2)本地方法栈 与Java栈区基于一致。 特点:是虚拟机中最大的一块内存,是GC要回收的部分。 4、触发回收 Java虚拟机无法再为新对象分配内存空间了 手动调用System.gc()方法(强烈不推荐,不会马上执行,却会加大虚拟机压力) 低优先级的GC线程,被启动了。 【Android进阶学习视频】、【全套Android面试秘籍】关注我【主页简介】查看免费领取方式 二、Android 虚拟机 1、Dalvik VM 与 JVM 的不同 执行的文件不同,一个是class

    41120

    相关产品

    • 企业移动管理

      企业移动管理

      企业移动管理(EMM)专注于提供企业移动业务的全方位数据安全保护解决方案。为企业构建统一的移动安全工作域,将企业办公环境和员工私人环境隔开,防止终端侧恶意泄密,既满足了企业管理等需求,又保护了员工的个人隐私。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券