Android官方命令深入分析之虚拟机
Android SDK包含了一个运行在计算机上的移动设备虚拟机。这个虚拟机可以允许你在没有物理设备的情况下开发和测试Android应用。
键盘命令
虚拟设备按键
对应键盘按键
Home
HOME
菜单
F2
Back
ESC
拨号
F3
挂断
F4
搜索
F5
电源按钮
F7
声音+
Ctrl+F5
声音-
Ctrl+F6
相机
Ctrl+F3
切换横竖屏幕
Ctrl+F11
网络开关
F8
全屏模式
Alt+Enter
《深入理解Android:Telephony原理剖析与最佳实践》一1.2 Android系统架构
1.2 Android系统架构
前面学习了智能手机的基本硬件结构,可以通过功能手机与智能手机的特点和区别从本质上认识它们。Android智能手机操作系统作为运行在AP上的开源智能手机操作系统,其系统架构是什么样的呢?我们先看看图1-2。通过图1-2不难发现,Android手机操作系统是一个基于Linux Kernel的分层智能手机操作系统,其共分为4层,从上到下分别是Java Applications(应用层)、Java Frameworks(应用框架层)、User Libraries(系统运行库层)和Linux Kernel(核心层),下面将对这4层进行简要的分析和介绍。
1.2.1 应用层
Android近几年的发展可谓迅猛,之所以会出现这样的情况,一个很重要的原因就是它的应用非常多。安卓市场已发布的软件个数和软件下载量目前仅次于苹果的应用商店,并且保持着快速增长的态势。这些第三方发布的应用(如游戏、导航、播放器、桌面主题等)日益丰富,终端用户才能不断地发展和壮大,而这些应用均在应用层运行。
应用层包括了Android各种应用程序,这些应用程序使用Java语言开发并运行在Dalvik虚拟机上,在Android系统架构中的第一层。在Android源码和SDK(Software Development Kit,软件开发工具包)中,Google已经捆绑和发布了一些核心应用及源代码,如Dialer、MMS、日历、Google地图、浏览器、联系人等。
1.2.2 应用框架层
如图1-2所示,Android系统框架中的第二层是框架层,它是用Java语言实现和开发的。有了框架层,开发者使用框架层提供的API便可以非常方便地访问设备硬件、获取位置信息、向状态栏添加通知消息、设置闹铃等,而不必关心底层具体的实现机制和硬件实现方式。这样,简化了Android应用程序开发的架构设计,从而开发者能够快速开发新的应用程序。应用框架层是Google发布的核心应用所使用的API框架,开发人员可以使用这些框架提供的API来快速开发自己的应用程序,下面是Android中一些主要的组件的简单介绍及相关说明。Views(视图):在Android SDK中介绍了非常丰富的Views使用方法及相关属性,所有的Android应用程序由这些Views构成,主要包括了列表(Lists)、网格(Grids)、文本框(Text)、按钮(Buttons)等基础Android应用的界面控件。Resource Manager(资源管理器):提供非代码资源转换和访问,如本地字符串(XML文件配置)、图片和布局文件(Layout Files,使用XML文件配置)。Notification Manager (通知管理器):应用可以在状态栏中显示自定义的提示信息,如新短信通知、未接来电通知、手机信号量通知等。Activity Manager(Activity管理器):用来管理Android应用程序界面的生命周期(onCreate创建、onResume显示、onPause暂停、onStop停止等),一个手机屏幕界面可对应一个Activity。
1.2.3 系统运行库层
如图1-2所示,Android系统架构中的第三层为系统运行库层,这一层主要包含了手机系统平台必须的C/C++核心库、Dalvik虚拟机运行环境和HAL子层。我们跳过HAL,先简单地介绍和分析Android包含的C/C++核心库和Dalvik虚拟机运行环境。
C/C++核心库系统运行库层包含一个C/C++库的集合,当使用应用框架的一些接口时,系统运行库层通过C/C++核心库来支持对应的组件使用,使其能更好地为Android应用开发者服务。下面是一些主要的核心C/C++库及其简要说明。
libc(系统C库):C语言标准库,处于系统最底层的系统库,由Linux系统来调用。Media Frameworks(多媒体库):Android系统多媒体库,支持当前手机平台上主流的音频和视频格式的播放和录制,以及静态图像,如MPEG-4、MP3、AAC、JPG、PNG等多媒体格式。SGL:2D图形引擎库。OpenGL:对3D效果的支持。SQLite:轻量级关系数据库引擎,可用来增、删、改、查通话记录、联系人等信息内容。WebKit:新式的Web浏览器引擎,支持当前非常流行的HTML 5。SSL:基于TCP/IP网络协议,为数据安全通信提供支持。
Dalvik虚拟机运行环境系统运行库层包含了Android Runtime,其核心为Dalvik虚拟机。每一个Android应用程序都运行在Dalvik虚拟机之上,且每一个应用程序都有自己独立运行的进程空间;Dalvik虚拟机只执行DEX(Dalvik Executable)可执行文件。
DEX格式是专为Dalvik设计的一种压缩格式,适用于内存和处理器速度有限的系统;要生成DEX格式文件,首先要通过Java程序编译生成class文件,然后通过Android提供的dx工具将class文件格式转换成DEX格式。Dalvik虚拟机的特性总结如下:每个Android应用运行在一个Dalvik虚拟机实例中,而每一个虚拟机实例都是一个独立的进程空间;虚拟机的线程机制、内存分配和管理、Mutex(进程同步)等的实现都依赖底层Linux操作系统;所有Android应用的线程都对应一个Linux线程,因而虚拟机可以更多地使用Linux操作系统的线程调度和管理机制。注意 因为Android的编程语言是Java语言,所以我们容易将Dalvik虚拟机与Java虚拟机认为是同一个东西。Dalvik虚拟机并不是按照Java虚拟机的规范来实现的,两者并不兼容;它们之间最大的不同在于:Java虚拟机运行的是Java字节码,而Dalvik虚拟机运行的是其专有的DEX格式的文件。
1.2.4 核心层
Android 4.0基于Linux Kernel 3.0.8提供核心系统服务,例如文件管理、内存管理、进程管理、网络堆栈、驱动模型等操作系统的基本服务能力。核心层内核同时也作为硬件和软件之间的抽象层,需要一些与移动设备相关的驱动程序支持,主要的驱动如下所示。Display Driver(显示驱动):基于Linux的帧缓冲驱动。Keyboard Driver(键盘驱动):输入设备的Key键盘驱动,比如Home待机、Menu菜单、Return返回、Power电源等设备按键。Audio Driver(音频驱动):常用的基于ALSA(Advanced Linux Sound Architecture)的高级Linux声音体系驱动。Power Management(电源管理):比如电池电量、充电、屏幕开启关闭等管理。Binder IPC驱动:Android平台上一个特殊驱动程序,具有单独设备访问节点,用来提供IPC进程间通信的功能。Bluetooth Driver(蓝牙驱动):基于IEEE 802.15.1标准的蓝牙无线传输技术。Wi-Fi Driver(Wi-Fi驱动):基于IEEE 802.11标准的Wi-Fi驱动程序。Camera Driver(照相机驱动):常用的基于Linux的照相机驱动。
Android零基础入门第7节:搞定Android模拟器,开启甜蜜之旅
原文:Android零基础入门第7节:搞定Android模拟器,开启甜蜜之旅
在前几期中总结分享了Android的前世今生、Android 系统架构和应用组件那些事、带你一起来聊一聊Android开发环境,上三期分别养成高富帅、轻松邂逅女神、并和女神约会成功,那么从本期开始准备出发甜蜜之旅。
Android程序必须运行在Android系统,因此Android开发时必须准备相关的运行环境,即Android虚拟设备(Android模拟器)。
一、AVD Manager入口
进入ADT Bundle工具包的解压包下面的eclipse目录,双击“eclipse.exe”文件打开Eclipse开发IDE工具,如下图:
小贴士:
在开发过程中由于会经常使用Eclipse,每次打开都要进入好几层目录。有一个方法可以一劳永逸,将eclipse.exe创建为桌面快捷方式,选中“eclipse.exe”右键,选择“发送到”,再选择“桌面快捷方式”,即可在电脑桌面出现一个eclipse的图标,以后就可以直接双击打开Eclipse工具。
双击打开后界面如下:
然后会出现如下界面:
其中Workspace为Eclipse的工作空间,主要用于存放当前Eclipse的配置和代码,一般指定为我们自己单独创建的文件夹目录,可以通过“Browse”来切换路径。
关于左下角的“Use this as the default and do not ask again”是否勾选,根据个人情况决定。当勾选上以后,每次打开Eclipse开发工具,默认工作空间都是指定的文件夹;如果不勾选,那么每次启动Eclipse的时候都会弹出该节目让我们选择。
打开Eclipse开发工具后,这个显示的页面将陪伴我们所有的开发时间,从此你不再孤单。如下图所示:
该页面的具体使用在后续学习中逐步接触。其中左上角的机器人图标即我们之前打开的SDK Manager入口,手机图标即我们即将要使用的AVD Manager入口。
当点击手机图标后,打开AVD Manager页面,初识没有任何Android虚拟设备,如下图所示:
二、创建Android虚拟设备
在AVD Manager窗口中,点击“Create”按钮,打开Android虚拟设备创建页面,如下图所示:
接下来分别设置模拟器的相关参数:
1、AVD Name:自定义的模拟器名称,建议见名知意的命名原则;
2、Device:选择设备屏幕分辨率;
3、Target:选择Android 操作系统版本;
4、CPU/ABI:选择CPU 架构。如果Intel系列模拟器无法使用,就改用ARM模拟器,ARM模拟器缺点是慢。只有x86 的才支持硬件加速,可以对模拟器进行加速。
5、Keyboard:勾选上后可以使用自己电脑键盘作为模拟器的键盘,不勾选的话默认使用模拟器键盘;
6、Skin:模拟器的皮肤,如果选择No Skin表示只显示手机屏幕;
7、Front Camera:选择前置摄像头设备;
8、Back Camera:选择后置摄像头设备;
9、Memory Options:RAM 代表模拟器运行内存,VM Heap Dalvik 虚拟机堆内存大小;
10、Internal Storage:模拟器内置存储大小;
11、SD Card Size:设置SDCard 的大小。
设置后如图所示,
点击“OK”后保存设置,回到AVD Manager页面,可以看到刚才创建的虚拟设备,如图所示:
三、启动Android虚拟设备
选中AVD Manager页面中说创建的Android虚拟设备,右侧的操作按钮变为可操作状态,如下图所示:
当我们创建好模拟器之后,如果需要修改那么可以在图中选中要修改的虚拟机,然后点击“Edit”按钮,如果需要删除,点击“Delete”按钮。
点击“Start”按钮进入Android模拟器启动设置页面,如下图所示:
在上图界面中有两个比较重要的选项。Scale display to real size 和Wipe user data。
后者很好理解,如果勾选上了,那么启动时相当于恢复出厂设置。
前者用的比较多,是用来缩放我们的模拟器界面的,如果不勾选的话屏幕会显示模拟器的真实大小,肯定会占据我们的整个屏幕,因此可以选择勾选,然后将ScreenSize 改为6(可以根据自己的喜欢调整)就是一个比较适合的大小。
点击“Launch”按钮,开始进入模拟器启动页面:
如果模拟器在启动过程中,出现一些错误提示,那就需要根据提示去优化我们的模拟器的配置。如果启动正常可以看到下图所示模拟器开机页面:
四、使用Android虚拟设备
经过上一步漫长的等待后,进入Android模拟器页面,这个页面和大家使用的手机页面一模一样,这就不需要再额外说明了,如下图所示:
唯一不同的就是右侧所带的几个按钮,鼠标移动到相应按钮上,会有对应提示功能。
五、模拟器加速
模拟器启动过程中比较耗时,只能先忍耐一下了。后期进入Android的正式学习后,将教大家使用第三方模拟器,如Genymotion。
如果选择的CPU为x86,可以使用模拟器加速,要求单独安装一次。具体安装文件在sdk根目录下面的extras文件夹,当然前提是要下载配置extras文件夹。一路狂奔直到看到如图所示“intelhaxm-android.exe”:
双击后进入加速器安装过程,一路“next”直到“Install”,到最终完成。
再次重新启动Android虚拟设备,会发现启动过程明显快了不少。
今天就先到这里,甜蜜之旅已开启。如果有问题欢迎留言一起探讨,共同成长!
往期总结分享:
Android的前世今生
Android 系统架构和应用组件那些事
带你一起来聊一聊Android开发环境
正确安装和配置JDK, 高富帅养成第一招
善用ADT Bundle, 轻松邂逅女神
配置优化SDK Manager, 正式约会女神
此文章版权为微信公众号分享达人秀——鑫鱻所有,若转载请备注出处,特此声明!
Appium移动自动化测试(三)--安装Android模拟器
当Android SDK安装完成之后,并不意味着已经装好了安装模拟器。Android系统有多个版本,所以我们需要选择一个版本进行安装。
第三节 安装Android 模拟器
我这里以Android 4.4.2版本为例。
如上图,勾选所需要安装的工具,点击右下角“Install x packages...”
选择“Accept License”选项,点击“Install”按钮时行安装。
但是,你可能会发现这种方法会提示“Download interrupted: URL not found.”这样的错误,那么我们只能将这些工具单个的下载安装了。
好吧!再次感谢AndroidDevTools.cn网站的共享。以下下载链接均有其共享。
一、安装SDK platform
android 4.4.2 :http://pan.baidu.com/s/1eQf8ZgI
这是Android开发所需的sdk,下载并解压后,将解压出的整个文件夹复制或者移动到 .../android-sdk-windows/platforms/文件夹,然后重新打开SDK Manager.exe
二,安装Samples for SDK
android 4.4.2 : http://pan.baidu.com/s/1dDeSKt7
这是Android SDK自带的示例代码,下载并解压后,将解压出的整个文件夹复制或者移动到 .../android-sdk-windows/samples文件夹下,然后重启SDK Manager.exe。
三,安装SDK System images
android 4.4.2 : http://pan.baidu.com/s/1i3Jwhed
这是在创建模拟器时需要的system image,也就是在创建模拟器时 CPU/ABI项需要选择的,下载并解压后,将解压出的整个文件夹复制或者移动到.../android-sdk-windows/system-images文件夹下即可, 如果没有 system-images目录就先创建此文件夹,然后重新打开SDK Manager.exe。
四,GoogleMap APIs SDK
android 4.4.2 (ARM): http://pan.baidu.com/s/1bno0mFt
android 4.4.2 (x86): http://pan.baidu.com/s/1jGgKyZc
这是GoogleMap APIs SDK,下载并解压后,将解压出的整个文件夹复制或者移动到 .../android-sdk-windows/add-ons文件夹下,然后打开SDK Manager
五,Android Framework Source Code
android 4.4.2 : http://pan.baidu.com/s/1hqGGrVA
这是Android Framework Source Code,下载并解压后,将解压出的整个文件夹复制或者移动到.../android-sdk-windows/sources文件夹下,然后重新打开SDK Manager.exe。
为了保险起见,以防以后用到而没有安装,所以这里全部做了安装。
下面双击“AVD Manager.exe”创建android模拟器。
点击“Create....”
如果显示屏分辨率比较底的话,尽量选择低分辨率的“Device”。
点击“OK”,在AVD Manager 窗口,点击“Start...”按钮启动android 模拟器。
因为新虚拟机没了实体键,所以我们可以利用键盘按键来操作android虚拟机。
模拟器按键
键盘按键
后退
ESC
菜单
F1或Page Up
开始
F2或Page Down
呼叫
F3
挂断
F4
电源按钮
F7
禁止/启用所有网络
F8
开始跟踪
F9
停止跟踪
F10
旋转屏幕(横/竖屏切换)
Ctrl+F11
主页
HOME
方向键 左/上/右/下
小键盘 4/8/6/2
方向键 中心键
小键盘 5
调低音量
小键盘 负号(-)
调高音量
小键盘 加号(+)
Android从零开始
Android开发环境的安装
1 IDE
Android可以使用开发的IDE有Eclipse 或者 Android Studio。Android Studio还处于v 0.1.x版本,是early access preview。所以我还是选择Eclipse + ADT的方法开发。
其实没有什么复杂,官网已经为开发者做了一个开发环境集成包(ADT Bundle)。ADT是Android Develop Tools。这个集成包包含了eclipse,SDK,SDK Manager。
http://developer.android.com/sdk/index.html
具体使用只需要下载Android ADT Bundle的zip,解压,然后启动eclipse就可以了。
2 安装不同版本的sdk
Bundle默认是安装了最新版本的SDK(4.2.2)。当然现在市面上的各种Android版本都存在,我们需要安装不同版本的SDK来开发。SDK Manager就是管理SDK的工具。
在bundle下运行SDK Manager
勾选对应版本的SDK,从这里基本可以知道一个Android版本对应着一个版本的API。
其中每个包都有这么几个文件:
Documentation for Android SDK:安卓SDK的文档
SDK Platform:Android的SDK套件,必须要安装的
Samples for SDK:SDK的使用例子,在安装后的adt-bundle-XXXX\sdk\samples 目录中会看到对应文件
Sources for Android SDK:SDK的源码,在安装后的adt-bundle-windows-x86-20130522\sdk\sources 目录中会看到对应文件
Google APIs:谷歌地图提供的一套API,如果你的应用不使用谷歌地图,是可以不用装的,但是建议还是要装
ARM EABI v7a System Image
Intel x86 Atom System Image
MIPS System Image
这三个是给模拟器用的,模拟器在不同CPU平台下的系统印象文件。必须安装,否则模拟器打不开。
在安装后的adt-bundle-windows-x86-20130522\sdk\system-images目录中会看到对应文件
3 安装Eclipse的ADT插件
官方的Bundle上已经有了一些ADT插件,如果没有的话,我们可以按照:
http://developer.android.com/sdk/installing/installing-adt.html
安装ADT插件。
4 创建模拟器
在Eclipse中的Android Virtual Devices中New一个虚拟机(AVD)
AVD Name:模拟器的名字
Device:设备名字,包括屏幕尺寸的设置
Target:要运行的Android版本
CPU/ABI:模拟器要运行的系统印象文件
Keyboard:是否支持外部键盘
Skin:模拟器外观
Front Camera
Back Camera
前置和后置摄像头
Memory Options:
RAM:模拟器的内存空间
VM Heap:Android系统是运行在Dalvik虚拟机上的,VM Heap就是指的虚拟机最大占用内存,也就是单个应用的最大占用内存。
Internal Storage:内部存储大小。内部存储就是将数据保存在设备的内部存储器中。
SD Card:SD 卡的大小。
5 创建HelloWorld
Eclipse中New--Andriod Project -- 创建个HelloWorld项目。
这步基本都是使用默认选项
6 HelloWorld项目挂载AVD
Eclipse -- Run -- Run Configurations
右键Android Application -- New
Project中选择HelloWorld项目 -- Target中选择刚刚创建的AVD -- Apply
这样,运行项目就自动开启了虚拟机运行
本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/p/3177272.html,如需转载请自行联系原作者
Genymotion —— 强大好用高性能的 Android 模拟器
Genymotion 是一款优秀专业高性能的安卓 Android 模拟器!它支持 Windows、Mac、Linux,由于其模拟运行速度很快画面流畅、且支持 OpenGL 3D 加速、多开、全屏等特性,并提供 Eclipse、IntelliJ IDEA 的开发插件,不仅是开发者们也是普通玩家们测试和运行 Android 软件/游戏的利器……在电脑上玩转 Android 系统的游戏和软件 —— Genymotion 快到极致的模拟器!如果你希望在电脑上运行 Android 游戏和软件或者进行开发测试,那么 Genymotion 将是你的绝佳选择!它的官网上也毫不谦虚地标榜自己——快到极致的 Android 模拟器。因为在运行速度方面 Genymotion 确实要比 BlueStacks 更加流畅顺滑,在主流配置的电脑上基本能达到安卓真机的运行速度,用起来很顺手。不论作为开发程序使用还是用来在电脑运行 Android 软件玩耍,流畅速度都能让你用得更加舒心!Genymotion 安卓模拟器的优点:速度快性能好,资源占用低,系统要求512MB内存就能运行支持 OpenGL 3D加速,可以流畅玩大型3D游戏支持同时启动多个模拟器,可以实现软件或游戏多开支持多种虚拟传感器,如电池状态、GPS、NFC、重力加速器等模拟,在微信、陌陌之类的App上有特别用处支持摄像头、蓝牙等设备可以配置模拟器参数,如屏幕分辨率、内存大小、CPU数量直接拖拽窗口即可调整画面大小,支持多种分辨率能支持几乎全部版本的 Android 系统,2.x 到 4.x 都没问题支持直接拖放文件到虚拟设备启动速度运行速度都完爆 Android SDK 官方的模拟器系统配置要求:操作系统支持 Windows XP ~ Windows 8 (包括32与64位),支持 Linux 以及 Mac OS X支持 OpenGL 2.0 的显卡 (显卡驱动老旧可能会出现黑屏问题)CPU支持 VT-x 或者 AMD-V 虚拟化,并且在BIOS设置为开启状态 (必须,否则运行会出错或速度非常慢)至少512MB内存至少提供100MB的硬盘空间供Genymotion安装;至少2GB硬盘空间存放Genymotion虚拟设备可用的网络连接(用于安装和更新)系统显示分辨率不低于1024×768Genymotion 安卓模拟器安装设置教程:1、安装 Virtualbox 以及 Android SDK 等基础软件:由于 Genymotion 主要面向的是 Android 开发者而不是普通玩家,因此它的安装稍微有些复杂。因为它是基于 VirtualBox 虚拟机运行的,也就是说,在使用它之前电脑上首先要安装一个 VirtualBox,另外,Android SDK (安卓开发工具包)也是必不可少的,不过你不必像文中去配置运行官方SDK里面的模拟器,你只需下载回去,解压到一个纯英文目录即可。在后面的使用中,VirtualBox 和 Android SDK 在基本上都是作为幕后英雄的存在而已。2、安装 Genymotion 模拟器:当 Virtualbox 和 Android SDK 都就绪之后,你就可以下载并安装最新版的 Genymotion 模拟器了(下载地址位于本文结尾处),安装完后双击桌面图标即可启动模拟器。不过这时,你还需要先到 Genymotion 的美国官网注册一个账号并验证邮箱激活才能继续下一步。现在可以开始给模拟器添加虚拟机了。点击 “Add” 添加一个新的虚拟 Android设备,这时会弹出下面的窗口:在该窗口中点击 “Connect” 按钮,并输入您的用户名和密码登录。不过有时候由于土·啬的原因,你会发现死活都登录不上,这时只能想办法找个好用的代理或魏屁恩或过段时间再重试了。登录成功后在就会在列表中会出现各种机型供你选择下载了(下图)。选中你想要的虚拟 Android 机型和系统版本,譬如 Galaxy S4、Galaxy Nexus 神马的随你喜欢,点击 Next 即可进行下载。点击 Next 后会让你为这个虚拟Android设备命名(下图),按照你自己的喜好改名即可,再次点击 Next 开始进行下载。待该虚拟设备下载完成之后,你就会在主界面 Your virtual devices列表中看到已经下载完成的虚拟设备了。如果你由于网络问题不能登录和下载,又找不到好用的梯子的话,也可以直接下载本站提供的虚拟机离线ova文件进行导入即可,后面会有提到。然后在列表中,选择想要启动的虚拟设备,点击扳手的图标可以对虚拟机进行设置,譬如分配多大的内存、设置分辨率等等,如下图。OK之后,点击 Play 按钮即可开始运行虚拟机了。不过首次运行时 Genymotion 可能还会要求你设置 Android SDK 的路径,你按照自己实际的路径选择好即可。然后你的 Android 虚拟设备就会启动了!再然后,就没有然后了,尽管尽情地在电脑上跑各种安卓软件好好调戏它们吧!对了,默认情况下,键盘 ESC 键是虚拟机的后退键,F1 是菜单键,当然,你也可以用鼠标按虚拟按钮。写在后面:根据实际试用看来,Genymotion 的确是目前速度最快的 Android 模拟器了,使用流畅不卡顿,系统资源占用低,因此实用性非常高!无论是用来在电脑上测试Android软件、玩安卓游戏,还是用于移动程序开发,Genymotion 都能完美胜任。而且,它对个人使用免费(也提供了高级功能的付费版)加上跨平台支持 Windows、Mac、Linux 也使得它的通用性更高。
去除安卓导航栏和状态栏的方法
http://www.th7.cn/Program/Android/201412/326584.shtml
去除导航栏主要意图为:
1>当手机有物理按键时,需要把虚拟按键(也叫做导航栏)去除或者隐藏,是用户界面的需要
2>如苹果那样只有一个按键的,不要这个虚拟按键
3>模拟器上自己做了导航键盘,不需要android自带的虚拟导航按键
这里介绍直接去除的方法:
1>去除导航栏: 设置导航栏的宽度为0即可,代码:frameworks/base/core/res/res/values/dimens.xml。设置xml中navigation_bar_height和navigation_bar_height_landscape设置为0dp
2>去除状态栏:设置导航栏的宽度为0即可,代码:frameworks/base/core/res/res/values/dimens.xml。设置xml中的status_bar_height为0dp即可
Android从零开始
Android开发环境的安装
1 IDE
Android可以使用开发的IDE有Eclipse 或者 Android Studio。Android Studio还处于v 0.1.x版本,是early access preview。所以我还是选择Eclipse + ADT的方法开发。
其实没有什么复杂,官网已经为开发者做了一个开发环境集成包(ADT Bundle)。ADT是Android Develop Tools。这个集成包包含了eclipse,SDK,SDK Manager。
http://developer.android.com/sdk/index.html
具体使用只需要下载Android ADT Bundle的zip,解压,然后启动eclipse就可以了。
2 安装不同版本的sdk
Bundle默认是安装了最新版本的SDK(4.2.2)。当然现在市面上的各种Android版本都存在,我们需要安装不同版本的SDK来开发。SDK Manager就是管理SDK的工具。
在bundle下运行SDK Manager
勾选对应版本的SDK,从这里基本可以知道一个Android版本对应着一个版本的API。
其中每个包都有这么几个文件:
Documentation for Android SDK:安卓SDK的文档
SDK Platform:Android的SDK套件,必须要安装的
Samples for SDK:SDK的使用例子,在安装后的adt-bundle-XXXX\sdk\samples 目录中会看到对应文件
Sources for Android SDK:SDK的源码,在安装后的adt-bundle-windows-x86-20130522\sdk\sources 目录中会看到对应文件
Google APIs:谷歌地图提供的一套API,如果你的应用不使用谷歌地图,是可以不用装的,但是建议还是要装
ARM EABI v7a System Image
Intel x86 Atom System Image
MIPS System Image
这三个是给模拟器用的,模拟器在不同CPU平台下的系统印象文件。必须安装,否则模拟器打不开。
在安装后的adt-bundle-windows-x86-20130522\sdk\system-images目录中会看到对应文件
3 安装Eclipse的ADT插件
官方的Bundle上已经有了一些ADT插件,如果没有的话,我们可以按照:
http://developer.android.com/sdk/installing/installing-adt.html
安装ADT插件。
4 创建模拟器
在Eclipse中的Android Virtual Devices中New一个虚拟机(AVD)
AVD Name:模拟器的名字
Device:设备名字,包括屏幕尺寸的设置
Target:要运行的Android版本
CPU/ABI:模拟器要运行的系统印象文件
Keyboard:是否支持外部键盘
Skin:模拟器外观
Front Camera
Back Camera
前置和后置摄像头
Memory Options:
RAM:模拟器的内存空间
VM Heap:Android系统是运行在Dalvik虚拟机上的,VM Heap就是指的虚拟机最大占用内存,也就是单个应用的最大占用内存。
Internal Storage:内部存储大小。内部存储就是将数据保存在设备的内部存储器中。
SD Card:SD 卡的大小。
5 创建HelloWorld
Eclipse中New--Andriod Project -- 创建个HelloWorld项目。
这步基本都是使用默认选项
6 HelloWorld项目挂载AVD
Eclipse -- Run -- Run Configurations
右键Android Application -- New
Project中选择HelloWorld项目 -- Target中选择刚刚创建的AVD -- Apply
这样,运行项目就自动开启了虚拟机运行
==================================
作者:轩脉刃(yjf512)
出处:(http://www.cnblogs.com/yjf512/)
版权声明:本文的版权归作者与博客园共有。欢迎转载阅读,转载时须注明本文的详细链接。
【Android 开发入门】使用Android模拟器预览调试程序
在上篇“走进Android开发的世界,HelloWorld”,我们创建了一个Android 项目 HelloWorld,并演示了如何通过USB连接手机查看运行效果;而如果没有手机或没有对应型号的手机,又想做对应型号(屏幕尺寸、Android系统版本)的适配,应该怎么办呢?这时Android模拟器就派上用场了。
Android模拟器
Android SDK自带一个移动模拟器。它是一个可以运行在你电脑上的虚拟设备。 Android模拟器可以让你不需使用物理设备即可预览、开发和测试Android应用程序。
Android模拟器能够模拟除了接听和拨打电话外的所有移动设备上的典型功能和行为。Android模拟器提供了大量的导航和控制键,你可以通过鼠标或键盘点击这些按键来为你的应用程序产生事件。同时它还有一个屏幕用于显示Android自带应用程序和你自己的应用程序。为了便于模拟和测试应用程序,Android模拟器允许你的应用程序通过Android平台服务调用其他程序、访问网络、播放音频和视频、保存和传输数据、通知用户、渲染图像过渡和场景。Android模拟器同样具有强大的调试能力,例如能够记录内核输出的控制台、模拟程序中断(比如接受 短信或打入电话)、模拟数据通道中的延时效果和遗失。下面的章节将提供关于模拟器的详细信息,以及如何在开发应用程序中使用模拟器。
操作模拟器
你可以通过模拟器的启动选项和控制台命令来控制模拟环境的行为和特性。一旦模拟器启动,你就可以通过键盘和鼠标来“按” 模拟器的按键,从而操作模拟器。下面的表格总结了模拟器按键可键盘按键之间的映射关系。模拟器按键 键盘按键后退ESC菜单F1或Page Up开始F2或Page Down呼叫F3挂断F4电源按钮F7禁止/启用所有网络F8开始跟踪F9停止跟踪F10旋转屏幕(横/竖屏切换) Ctrl+F11主页HOME方向键 左/上/右/下小键盘 4/8/6/2方向键 中心键小键盘 5调低音量小键盘 负号(-)调高音量小键盘 加号(+)
使用Android模拟器预览调试程序
点击左侧的三角图标可以运行预览,右侧的像个小虫子的图标可以调试程序。
这里你可以选择列表中的一个设备,也可以点击“Create New Enulator”按钮创建一个新的虚拟设备,不同型号(屏幕尺寸、Android系统版本)。
这时可能需要耐心等一会儿,视项目的大小,电脑配置的高低,等待的时间长短可能会有很大的差别。
如果APP成功编译通过,会在新打开的窗口中看到类似如下界面:
我是为程序添加了一个按钮,添加了点击事件的响应程序,可以直接通过鼠标点击屏幕中的按钮触发事件。
下图是Android Studio中断点命中后的样子:
小结
这里只是演示Android模拟器的使用,调试不做深入的讨论。放在后面单独说。
上一篇:走进Android开发的世界,HelloWorld
系列导航:【Android 开发入门】
===========文后小料============
真正改变命运的其实并不是知识,而是这些知识带给你的能力的提高。也就是说,转化为能力的知识,才能够改变你的命运。当你去追求一个百分之百的安全感的时候,你可能就只能把自己困在原地,哪儿都去不了,其实这是最不安全的。今天这一代的员工,一定是通过提升自己的能力换来自己的安全。我们也更倾向于把价值存在朋友圈里边。
===========文档信息============ 版权声明:非商用自由转载-保持署名-注明出处 署名(BY) :testcs_dn(微wx笑) 文章出处:[无知人生,记录点滴](http://blog.csdn.net/testcs_dn)
Android、iOS历史版本对比
本文按时间顺序,试着梳理Android和iOS诞生以来的各重要版本以及其特点,看看这两个系统各自的发展速度和重点。
2007年06月,iOS1.0
划时代的iOS第一代发布,可以说最核心的智能手机应用在这个版本已经有了,包括地图、浏览器、itunes、全屏幕触摸操作,这也可以理解当第一代iphone出现时带给所有人的震撼。
2008年07月,iOS2.0
2.0最重大的改变是开放了AppStore,可以开发和使用第三方应用了,这几乎是整个移动互联网生态的基石。
2008年09月,Android1.0
iOS2.0之后2个月,Android横空出世,全球第一台Android设备是HTC Dream。Android在1.0时基本也把完整的智能手机体验带给了广大用户,当然也包括了AndroidMarket。
2009年04月,Android1.5(Cupcake 纸杯蛋糕)
增加了虚拟键盘的支持,之前只支持实体键盘
支持Widget功能,可以在桌面创建音乐播放器、文件夹快捷方式等功能
其他优化
2009年06月,iOS3.0
各功能的优化,包括支持了早该有的文本剪切、复制、黏贴等功能
2009年09月,Android1.6(Donut甜甜圈)
支持CDMA网络
其他优化
2010年04月,iOS3.2
主要添加了对iPad的支持
2010年05月,Android 2.2(Froyo冻酸奶)
支持将软件安装至存储卡
这是一个相当重要的功能,从此再也不用担心手机内存卡装不下app了
引入JIT
即时编译技术(Just-in-time Compilation,JIT),是一种通过在运行时将字节码翻译为机器码,从而改善字节码性能的技术。JIT技术可以部分提高Android的程序执行效率,但对图形渲染、线程调度、I/O等都无明显的改善,所以这种技术的引入远没有官方宣传的那样得到几倍的提升。
浏览器采用V8 JavaScript 引擎,将 JavaScript 的性能提升了 2 到 3 倍。
2010年09月,iOS4.1
显著的变化是支持了多任务,尽管并不同桌面系统中真正的多任务处理,但这是苹果理解的在移动设备上用户所需要的多任务。随着多任务支持,双击home键的效用由原来的截屏操作,变为显示最近运行的应用。
2010年12月,Android2.3(Gingerbread姜饼)
Gaming Api
将 Android 游戏推到了新的高度
NFC(近场通讯)
电池管理
能够监测设备使用电量的具体方式以及设备方方面面(屏幕亮度、正在运行的应用等)消耗的电量,因而可帮助您充分延长电池续航时间。
这是一个相当成熟的系统,导致一个很长的时间内国产机一直保持在这个系统版本上。
2011年02月,Android3.0(Honeycomb蜂巢)
专为Android平板设计的操作系统,但却是个短命的版本,因为他不兼容phone
2011年04月,Android 4.0(Ice Cream Sandwich冰淇淋三明治)
统一了手机和平板操作系统
基于linux3.0.1内核
性能优化
2011年10月,iOS5.0
重点功能是增加了siri,虽然当时很惊艳,但现在基本是个鸡肋功能。
2012年06月,Android 4.1/4.2/4.3(JellyBean 果冻豆)
GoogleNow 类似siri
性能以及稳定性的提升
2012年09月,iOS6.0
无明显亮点,槽点是把之前一直使用的GoogleMap换成了苹果自己的Map
2013年09月,iOS7.0
UI从拟物化转变为扁平化
支持指纹识别
2013年10月,Android 4.4(奇巧Kitkat)
各种功能的优化,虽然没有明显的亮点,但稳定性较高,很长一段时间国内Android系统的主流版本,甚至到4年后的今天,仍然占有了约5%的市场
2014年09月,iOS8.0
加强了开放,给与开发者更多的框架接口,比如支持小插件,通知可自定义更多操作,支持第三方键盘,开放指纹识别等。
2014年10月,Android 5.0(棒棒糖Lollipop)
采用全新Material Design界面
采用ART虚拟机
全面由 Dalvik 虚拟机转用 [Android RunTime](ART)编译虚拟机。官方宣称新的虚拟机相较于旧虚拟机,性能可提升四倍。
2015年09月,iOS9.0
还是一些新特性,如iPhone 6s/6s plus支持3D-Touch等
2015年10月,Android 6.0(棉花糖Marshmallow)
全新的权限机制
在原有AndroidManifest.xml声明权限的基础上,新增了运行时权限动态检测,以下权限都需要在运行时判断,包括:身体传感器、日历、摄像头、通讯录、地理位置、麦克风、电话、短信、存储空间。
增加Android Pay付费功能
2016年08月,Android 7.0(牛轧糖Nougat)
支持多视窗
通知增强功能
配置文件指导的 JIT/AOT 编译
JIT 编译器对 Android 运行组件当前的 Ahead of Time (AOT) 编译器进行了补充,有助于提升运行时性能,节省存储空间,加快应用更新和系统更新速度。
2016年09月,iOS10.0
体验优化
允许删除苹果默认应用
siri开放给第三方
2017年08月,Android8.0(奥利奥Oreo)
-TensorFlow Lite
TensorFlow Lite是谷歌机器学习工具TensorFlow的精简版,新工具可帮助低功耗设备跟上当今高强度任务处理,利用新的神经网络API帮助底层芯片加速数据处理。
画中画
谷歌更加强调多任务处理场景中的流畅性,例如用户可以在Netflix上观看电影,支持将电影屏幕缩小成悬浮窗口,在看电影的同时进行查看日历、搜索信息等其他工作
智能文本选择
智能文本选择(Smart Text Selection)是使用谷歌的机器学习来检测何时选择地址或电话号码,然后自动将其应用于相应的应用程序的功能
自动填写
对于用户设备上最常用的应用,Android O将会帮助用户进行快速登录,而不用每次都填写账户名和密码。
Google Play Protect
可以视为安卓应用的病毒扫描程序
系统/应用启动程序加速
谷歌表示,在Android O上, Pixel设备的启动几乎只需要原来一半的时间
2017年09月,iOS11.0
强化了iMessages,主要是加入了对Apple Pay转账的支持
增加了对AR增强现实的支持,为开发者提供ARKit
优化了相机的功能
可以看出,从一开始两个平台的高歌猛进,版本频发(特别是Android系统,当初的版本真的是满天飞,记得还有个中移动定制的android版本),到现在基本上是一年一个版本。两个系统都从野蛮成长阶段过度到了平稳发展的阶段。
同时两个平台也显示出了高度的同质化,从拍照、音乐、App市场、地图之类的基本功能,到语音助手(siri、now)、支付的高阶功能,再到现如今的AI、AR等,两个系统虽然你追我赶,但基本还是保持了步调的一致。随着Android系统性能的不断优化,如今的Android高端机至少在系统层面已经不差iOS了。
可以预见,未来2个系统也注定会越来越像,无论是功能还是性能,甚至随着三星、华为、oppovivo、小米等厂商的发力,Android系统在某些细节层面肯定会超过iOS。细节+性价比,也许是用户从iOS转向Android的理由之一,而用户维持iOS的理由则是已经习惯了iOS的生态,怕做出改变。
无论如何,这两个系统恐怕还得长期共存,他们互相恐怕是无法打败对方的,更有可能的是一起被新出现的更高层次的系统打败,毫无还手之力的那种。
原文发布时间为:2017-10-31
本文作者:烫爷
本文来自云栖社区合作伙伴“51CTO”,了解相关信息可以关注。