前面已经安装好了sdk,虽然只是下载了一个最早的1.5,但至少有一个sdk了,下面就要用模拟器来运行这个sdk里面的镜像文件了.

打开 android virtual device manager 工具,点击new

配置好了,当然目前只有一个 api可以选择,所以就如下图:

选择了一个小的屏幕,这个时候点击ok,这个时候avd android  虚拟设备就已经建立好了,建立的路径是在

红色标记的那里,你到那个目录下面会发现

有这么几个文件

其中config.ini 和 hardware-qemu.ini 这两个文件很重要,打开分析一下吧

config.ini 文件

avd.ini.encoding=ISO-8859-1

hw.dPad=no

hw.lcd.density=160

hw.cpu.arch=arm

hw.device.hash=1473123938

hw.camera.back=none

disk.dataPartition.size=200M

skin.path=320x480

skin.dynamic=yes

hw.keyboard.lid=yes

hw.keyboard=yes

hw.ramSize=512

hw.device.manufacturer=Generic

hw.sdCard=no

hw.mainKeys=yes

hw.accelerometer=yes

skin.name=320x480

abi.type=armeabi

hw.trackBall=no

hw.device.name=3.2in HVGA slider (ADP1)

hw.battery=yes

hw.sensors.proximity=yes

p_w_picpath.sysdir.1=platforms\android-3\p_w_picpaths\

hw.sensors.orientation=yes

hw.audioInput=yes

hw.gps=yes

vm.heapSize=16

hardware-qemu.ini 这个文件内容很多,就不全贴了

kernel.path = G:\downtest\android_test_sdk/platforms\android-3\p_w_picpaths\/kernel-qemu

kernel.parameters =  android.checkjni=1

disk.ramdisk.path = G:\downtest\android_test_sdk/platforms\android-3\p_w_picpaths\/ramdisk.img

disk.systemPartition.initPath = G:\downtest\android_test_sdk/platforms\android-3\p_w_picpaths\/system.img

disk.systemPartition.size = 200m

从这两个文件就让模拟器和sdk联系起来了

kernel.path = G:\downtest\android_test_sdk/platforms\android-3\p_w_picpaths\/kernel-qemu

表示linux的内核是用的android-3\p_w_picpaths\/kernel-qemu 这个内核,到安装的sdk目录下,果然有这个内核

当然这个内核将来也可以通过android源代码自己下载编译生成

disk.ramdisk.path = G:\downtest\android_test_sdk/platforms\android-3\p_w_picpaths\/ramdisk.img

ramdisk.img

一个分区影像文件,它会在kernel 启动的时候,以只读的方式被 mount , 这个文件中只是包含了 /init 以及一些配置文件,这个ramdisk 被用来调用init,以及把真正的root file system mount 起来。
     #其实ramdisk.img的内容就是/out/target/product/generic/root目录的压缩而已。

disk.systemPartition.initPath = G:\downtest\android_test_sdk/platforms\android-3\p_w_picpaths\/system.img

它包含了整个系统,android 的framework,application 等等,会被挂接到 "/" 上,包含了系统中所有的二进制文件
    # system.img是out/target.product/generic/目录下system目录的一个映射,类似与根文件系统的映像,放着android 的应用程序、配置文件和字体等。

有两个链接描述了各个img的作用,参考一下

http://www.360doc.com/content/11/1213/19/3700464_172010379.shtml

http://www.360doc.com/content/11/1213/19/3700464_172010221.shtml

这些都是编译好的,并且经过google严格测试才对外发布的,而调用这些镜像的文件,是放在

G:\downtest\android_test_sdk\tools\emulator 这个文件,里面有支持不同cpu的版本,也有不同操作系统的版本.

emulator 启动的前提条件是能够找到 这些内核镜像,而avd 也只不过是emulator启动时众多配置参数中的一个集成一些的配置文件而已.

而emulator  如果生成,则也可以从google源码中 make PRODUCT-sdk-sdk 中生成.但的确比较复杂,暂时不展开讨论

基本上这样的话,是不是已经能够大概理解模拟器和sdk之间的关系了

当然细节的研究还是有很多内容,不过可以留待后面的继续讲解

最后截取一张图启动好的图分享一下 呵呵

转载于:https://blog.51cto.com/sunzeduo/1286346

Android adt 初步理解和分析(三)相关推荐

  1. android 4.4 按键分析三

    .5         Android Framework层消息处理 3.5.1         基本介绍 关于Android消息处理机制的全面分析,可参考另外的文档,这里着重介绍事件处理相关问题,作为 ...

  2. android 背光灯分析,Android灯光系统--深入理解背光灯

    Android灯光系统--深入理解背光灯 一.怎么控制背光灯(简述) APP将亮度值写入数据库 线程检测数据库的值是否发生变化 这种机制成为"内容观察者"--contentObse ...

  3. Android 系统(42)---Android7.0 PowerManagerService亮灭屏分析(三)

    Android7.0 PowerManagerService亮灭屏分析(三) 在前面两部分已经对绘制windows与设置设备状态进行了详细讲解. 之后接着就该对亮度值进行设置, 实现亮屏动作了. 在D ...

  4. Android A/B System OTA分析(三)主系统和bootloader的通信

    Android从7.0开始引入新的OTA升级方式,A/B System Updates,这里将其叫做A/B系统,涉及的内容较多,分多篇对A/B系统的各个方面进行分析.本文为第三篇,主系统和bootlo ...

  5. Android 8.1 PowerManagerService分析(三)——WakeLock机制

    欢迎大家关注我的掘金帐号 我会在那里定期更新最新版本的Android Framework源码模块分析~~ 在Android 8.1 PowerManagerService分析(一)中,主要分析了PMS ...

  6. android ADT学习总结

    android中ADT和SDK的关系 ADT(Android Development Tools): 目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT ...

  7. Android热补丁之Robust(三)坑和解

    在前两篇文章中,分析了 Android 热补丁框架 Robust 中,几个重要的流程包括: 补丁加载过程 基础包插桩过程 补丁包自动化生成过程 本篇文章主要分析下集成过程中遇到的坑以及分析问题的思路和 ...

  8. Android RelativeLayout和LinearLayout性能分析

    今天,简单讲讲android里RelativeLayout和LinearLayout的性能比较. 之前,我看到代码优化时需要将界面扁平化,所以查询了如何优化解码,了解一下RelativeLayout和 ...

  9. c++builder启动了怎么停止_App 竟然是这样跑起来的 —— Android App/Activity 启动流程分析...

    在我的上一篇文章: AJie:按下电源键后竟然发生了这一幕 -- Android 系统启动流程分析​zhuanlan.zhihu.com 我们分析了系统在开机以后的一系列行为,其中最后一阶段 AMS( ...

最新文章

  1. shell操作典型案例--FTP操作
  2. java.nio.file.NoSuchFileException
  3. oracle服务端字符集
  4. js打乱数组的顺序_如何用 js 实现一个类似微信红包的随机算法
  5. annotations_Spring Annotations我从来没有机会使用第2部分:@ConfigurationProperties
  6. 麦克风增强软件_唱吧麦克风不会唱歌用它唱都好听,《向往的生活》同款麦克风...
  7. OpenCV--读取图像中任意点的像素值,并显示坐标
  8. Bootstrap3 按钮组插件
  9. 华为交换机一次性进入多个接口_华为交换机交换机常用配置(认证、批量操作)...
  10. i++与++i的区别+汇编分析
  11. Word中批量进行中英文标点的转换
  12. 全屋智能长途跑,谁能与华为一战?
  13. win10桌面计算机打不开,win10桌面此电脑右键管理打不开处理方法
  14. 深入剖析eMule 【for_wind】
  15. 星标3.8k,一款轻量级、高性能的分布式监控系统,功能强大
  16. 陈子豪mc虚无世界java_我的世界虚无世界2.5陈子豪整合包
  17. 爬取百度贴吧实战,python教你如何获取
  18. 抖音何以为“抖音”?网友:原来如此。。。
  19. 用Python搭建一个股票舆情分析系统
  20. 20190723 架构师-形成技术体系

热门文章

  1. 苹果的 Metal 工程
  2. pythony语法小练习
  3. 【jQuery】parent()和parents遍历
  4. js中使用进行字符串传参
  5. 学习笔记---好文章链接帖
  6. vim的全局替换[zz]把字符替换成回车
  7. eclipse中出现Context startup failed due to previous errors错误解决方法
  8. 互联网医疗上市“大逃杀”
  9. 必读干货 | 如何做好向上管理,分享我实践多年的完整方法论
  10. 15年资深产品经理判官:怎样搭建完整的产品矩阵