andorid 介绍和 环境搭建
android发行版本:
1.后期工作中开发后的软件就是被安装在第一层,即应用程序层上
- 1. 应用程序层(Applications)
Android 平 台不仅仅是操作系统, 也包含了许多应用程序,诸如 SMS 短信客户端程序、电话拨号程序、图片浏览器、Web 浏览器等应用程序。这些应用程序都是 用 Java 语言编写 的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加 灵活和个性化。
- 2. 应用程序框架层(Application Framework)
应用程序框架层是我们从事Android开发的基础,很多核心应用程序也是通过这一层来实现其核心功能的,该层简化了组件的重用,开发人员可以直接使用其提供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。
A. Activity Manager(活动管理器)
管理各个应用程序生命周期以及通常的导航回退功能
B. Window Manager(窗口管理器)
管理所有的窗口程序
C. Content Provider(内容提供器)
使不同应用程序之间存取或者分享数据
D. View System(视图系统)
构建应用程序的基本组件
E. Notification Manager ( 通告管理器 )
使得应用程序可以在状态栏中显示自定义的提示信息
F. Package Manager(包管理器)
Android 系统内的程序管理
G. Telephony Manager ( 电话管理器 )
管理所有的移动设备功能
H. Resource Manager(资源管理器)
提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等
I. Location Manager ( 位置管理器 )
提供位置服务
J. XMPP Service(XMPP服务)
提供Google Talk服务
- 3. 系统运行库层(Libraries)
从图中可以看出,系统运行库层可以分成两部分,分别是系统库和 Android 运行时,分别介绍如下:
A. 系统库
系统库是应用程序框架的支撑,是连接应用程序框架层与 Linux 内核层的重要纽带。其主要分为如下几个:
- Surface Manager:执行多个应用程序时候,负责管理显示与存取操作间的互动,另外也负责 2D 绘图与 3D 绘图进行显示合成。
- Media Framework:多媒体库,基于 PacketVideo OpenCore;支持多种常用的音频、视频格式录制和回放,编码格式包括MPEG4、MP3、H.264、AAC、ARM。
- SQLite : 小型的关系型数据库引擎。
- OpenGL|ES:根据 OpenGL ES 1.0API 标准实现的 3D 绘图函数库。
- FreeType:提供点阵字与向量字的描绘与显示。
- WebKit:一套网页浏览器的软件引擎。
- SGL:底层的 2D 图形渲染引擎。
- SSL:在 Android 上通信过程中实现握手。
- Libc:从 BSD 继承来的标准 C系统函数库,专门为基于 embedded linux 的设备定制。
B. Android runtime
Android 应用程序采用 Java 语言编写,程序在 Android runtime 中执行,其运行时分为核心库和 Dalvik 虚拟机两部分。
- 核心库:核心库提供了 Java 语言 API 中的大多数功能,同时也包含了 Android 的一些核心 API,如 android.os、android.net、android.media 等等。
- Dalvik 虚 拟机:Android 程序不同于 J2me 程序,每个 Android 应用程序都有一个专有的进程,并且不是多个程序运行在一个虚拟机中,而是每 个 Android 程序都有一个 Dalvik 虚拟机的实例,并在该实例中执行。Dalvik 虚拟机是一种基于寄存器的 Java 虚拟机,而不是 传统的基于栈的虚拟机,并进行了内存资源使用的优化以及支持多个虚拟机的特点。需要注意的是,不同于 J2me,Android 程序在虚拟机中执行的并 非编译后的字节码,而是通过转换工具 dx 将 Java 字节码转成 dex 格式的中间码。
- 4. Linux 内核层(Linux Kernel)
Android 是基于 Linux2.6 内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于 Linux 内核。
Android SDK在线更新镜像服务器
中国科学院开源协会镜像站地址:
IPV4/IPV6:
http://mirrors.opencas.cn
端口:80IPV4/IPV6:
http://mirrors.opencas.org
端口:80IPV4/IPV6:
http://mirrors.opencas.ac.cn
端口:80
上海GDG镜像服务器地址:
http://sdk.gdgshanghai.com
端口:8000北京化工大学镜像服务器地址:
IPv4:
http://ubuntu.buct.edu.cn/
端口:80IPv4:
http://ubuntu.buct.cn/
端口:80IPv6:
http://ubuntu.buct6.edu.cn/
端口:80
大连东软信息学院镜像服务器地址:
http://mirrors.neusoft.edu.cn
端口:80
使用方法:
启动 Android SDK Manager ,打开主界面,依次选择『Tools』、『Options...』,弹出『Android SDK Manager - Settings』窗口;
在『Android SDK Manager - Settings』窗口中,在『HTTP Proxy Server」和「HTTP Proxy Port』输入框内填入上面镜像服务器地址(不包含http://,如下图)和端口,并且选中『Force https://... sources to be fetched using http://...』复选框。设置完成后单击『Close』按钮关闭『Android SDK Manager - Settings』窗口返回到主界面;
依次选择『Packages』、『Reload』。
docs:里面包含了文档,即帮助文档和说明文档。官方api
打开方式:docs文件夹下的index.html
sources :文件夹中存储系统类的官方源码
samples :文件夹中存储官方提供的样例代码
导入样例工程的方式:
new --other--Android---Androd simple project--选择好相应工程后finish后就可以。
Ctrl+Shift+/ 在代码窗口中加入/* ... */注释
Ctrl+Shift+\ 消除/* ... */注释
Ctrl+Shift+O 将缺少的import语句加入Ctrl+1 快速修复(最经典的快捷键,就不用多说了)
Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)
Ctrl+M 最大化当前的Edit或View (再按则反之)
Ctrl+/ 注释当前行,再按则取消注释
Ctrl+Shift+F 格式化当前代码
F3 跳到声明或定义的地方
F4 显示类图
Ctrl + Alt + ↓(↑) : 向下(上)复制本行
常见配置:
1.显示行号:Window->Preferences>General->Editors->Text Editors->勾选show line numbers
2.增强Eclipse、MyEclipse的代码自动提示功能
Windows→Preferences→Java→Editor→Content Assist
AutoActivation Delay默认值为200(单位是毫秒)也就是说在打“.”之后停留200毫秒才能出现智能感知的提示。那么将它修改为20之后提示速度明显上升。
原理:“Auto Activation triggers for java”这个选项就是指触发代码提示的的选项,把“.” 改成“.abcdefghijklmnopqrstuvwxyz(,”的意思,就是指遇到26个字母和.,(这些符号就触发代码提示功能了。
总结:“Auto Activation triggers for java”这个选项就是指触发代码提示的的选项,把“.”改成 “.abcdefghijklmnopqrstuvwxyz(,”的意思,就是指遇到26个字母和.,(这些符号就触发代码提示功 能了。顺便说一下,修改类名,接口名等以不同颜色高亮的,可以这样配置在“java”→“eSditor”→ “syntac”,右边展开“java”→“classes”,勾上“Enable”这个选项,选择自己喜欢的颜色即可。当然还有其他相关的颜色配置。具体就不说啦。其实,在“Preferences”这个东西,有很多可以配置的 东西,使得MyEclipse 优化的,具体的就要各个人根据自己个人喜好去配置了。
Target:选择要运行的android 版本(也可理解为内核?),此处有两个版本,取决于你在最初时下载的选择,个人理解这两个同样为2.2版本差异在
从名称上不难理解,一个是优化后的内核包,一个是google原生态的,当然这两个都是Google原版本,未被做过其他改动,通过查看img以及表现在
系统启动后安装的一些自带软件和功能上的差异,原生态的占用内存小;以及在皮肤,字体,地图等一些外在差异。
Size:就是要模拟卡存储卡的大小,视个人需求而定,推荐256MB以上,此处的KiB就是KB,MiB就是MB。
Skin:Built-in其实就是定义屏幕尺寸的像素,可以使用由SDk直接提供的常见分辨率,具体的可查看(你的文件解压存放路径)android-sdk-windows/platforms/android-8/skins/;
HVGA 320*480像素;QVGA 320*240像素;WQVGA400 400*240像素;WQVGA432 432*240像素;WVGA800 800*480像素;WVGA854 854*480像��
Resolution就是自定义分辨率,除非有特殊需求,否则不建议自定义,因为自定义的尺寸没有对应的右侧界面,当然你也可以自己做对应的此存的皮肤。
一般选择好尺寸后在Hardware中会自动增添一项abstracted lcd density,默认是160,下文解释此处。
Hardware:Abstracted Lcd Density默认160,最直接的表现就是手机图标和文字的大小,120最小,可根据分辨率的大小自定义,一般推荐使用默认值即可。
SD Card Support 是否支持插入/弹出闪存卡;
Dpad Support 是否要让手机支持DPad键,默认为yes,表示支持。DPad键就是手机上的那些Home键、返回键、电话键、电源键。
不过测试表明即使no,皮肤上的那些键也可用,可以理解为外设之类的手柄,键盘等。
Accelerometer是否要让手机支持加速器功能,默认为yes,表示支持。
Maximum horizontal camera pixels若让手机支持照相机功能,接着会要求定义照相机的像素,默认水平像素为640。
Cache partition size要指定/cache分割区的大小,默认值为66 MB。
Audio playback support是否要让手机支持音乐播放功能,默认为yes,表示支持。
Track-ball support是否要让手机支持轨迹球功能,默认为yes,表示支持。
Maximum vertical camera pixels让手机支持照相机功能,接着会要求定义照相机的像素,默认垂直像素为480。
Camera support 手机是否支持照相功能,默认no。
Battery support是否要让手机支持电池功能,默认为yes,表示支持。
Touch-screen support是否要让手机支持触碰屏幕功能,默认为yes,表示支持。
Audio recording support是否要让手机支持音乐录制功能,默认为yes,表示支持。
GPS support 是否支持手机定位,默认yes。
Cache partition support是否要让Android手机系统支持额外的/cache分割区,这样放在/cache的暂存文件不会使用到Android系统空间,默认为yes,表示支持。
Keyboard support是否要让手机支持QWERTY键盘输入功能,默认为yes,表示支持。
Max VM application heap size最大虚拟机应用程序堆大小,就是系统最低内存阀值,当运行低于这个值,系统会结束一些进程,默认值16。
Device ram size是否要更改手机的内存容量,默认值为96 MB,建议更改为256 MB以上。
至此就完成搭载Android 2.2版的定制化AVD硬件装置设定了,但实际中有些硬件不受控制。
推荐定制设置:
Size:512MB
Skin:Built-in -> HVGA
Hardware:Abstracted Lcd Density 160 (可自定义,输入其他值也可比如200)
Cache partition size 128MB
Camera support yes
Device ram size 512
语言设置为setting -> language & keyboard -> select language,界面中文在重启后生效。
至此发现:1,C:/Documents and Settings/Administrator/.android/avd下即为配置文件,在下一节目录中可找到配置文件config.ini,进行相应参数的更改。更改配置文件后需要重新启动模拟器才行。
直接使用模拟器新建相同名称的,并选择进行覆盖,也可更改参数,可立即生效。
2,运行(你的文件解压存放路径)android-sdk-windows/tools/android.bat,放送到桌面快捷方式,可启动模拟器。
也发现一点小问题,1,模拟器进程emulator.exe比较消耗CPU,运行程序时酷睿双核的常常占到30-40;
2,鼠标操作反应不好,延迟感严重,比较不爽。(待解决)
My Android – lasted
设置虚拟机屏幕的大小
运行(Start)虚拟机后,会弹出一个对话框,
Launch option,主要可以用来设置虚拟机屏幕与电脑屏幕的比例关系,以及重置虚拟机。
Scale display to real size:选中后可以自定义设置。
Screen size(in):虚拟机屏幕像素尺寸,默认值3。
Monitor dpi:电脑屏幕的每英寸像素点数,默认值96,点击问号可以设置电脑尺寸和分辨率,会自动算出当前电脑的dpi。
比如我的电脑屏幕尺寸14’,分辨率1600*900,对应的的dpi为131.,看起来就是一个精细程度。
Scale:该值表示虚拟机屏幕与实际屏幕的映射关系,值为1表示两者相对应,小于1,屏幕将被缩小,反之则放大。
Wipe user data:清除用户自定义数据,重置虚拟机。
参数 | 说明 |
manifest | 根节点,描述了package中所有的内容 |
xmlns:android | 包含命名空间的声明。xmlns:android=http://schemas.android.com/apk/res/android,使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据 |
参数 | 说明 |
package | 声明应用程序包 |
application | 包含package中application级别组件声明的根节点。此元素也可包含application的一些全局和默认的属性,如标签、icon、主题、必要的权限,等等。一个manifest能包含零个或一个此元素(不能大于一个) |
android:icon | 应用程序图标 |
android:label | 应用程序名字 |
activity | 用来与用户交互的主要工具。Activity是用户打开一个应用程序的初始页面,大部分被使用到的其他页面也由不同的<activity>所实现,并声明在另外的<activity>标记中。注意,每一个Activity必须有一个<activity>标记对应,无论它给外部使用或是只用于自己的package中。如果一个Activity没有对应的标记,你将不能运行它。另外,为了支持运行时查找Activity,可包含一个或多个<intent-filter>元素来描述Activity所支持的操作 |
android:name | 应用程序默认启动的Activity |
intent-filter | 声明了指定的一组组件支持的Intent值,从而形成了Intent Filter。除了能在此元素下指定不同类型的值,属性也能放在这里来描述一个操作所需的唯一的标签、icon和其他信息 |
action | 组件支持的Intent action |
category | 组件支持的Intent Category。这里指定了应用程序默认启动的Activity |
uses-sdk | 该应用程序所使用的sdk相关版本 |
- 1
注册登录
进入Genymotion官网,点击下载按钮,这里必须要输入邮箱。如果是已经注册过直接输入邮箱即可。
如果未注册,输入邮箱和两次密码后,系统会发送一封邮件到你邮箱,请一定要去验证后在进行下一步下载。
注意:一定要进行验证。
- 2
下载
进入官网后如下图所示,点击Get Genymotion按钮
- 3
选择Free下面的Download按钮,进入页面如下:
选择Get Genymotion.
- 4
运行安装Genymotion
双击运行下载的Genymotion安装文件,选择中文语言并点击下一步,下一步
- 5
可更改安装路径,点击浏览Browse..
软件默认的路径为C:\Program Files\Genymobile\Genymotion
然后下一步
- 6
在弹出框选择是否创建快捷菜单[Don't create a Start Menu folder]
点击下一步
- 7
在弹出框选择是否创建桌面快捷方式[Create a desktop icon],
点击下一步-->安装-->完成
- 8
运行安装VirtualBox
在安装完Genymotion后,会继续安装VirtualBox。
在VirtualBox安装界面,点击下一步
- 9
更改安装路径,点击浏览Browse.. 更改Location的地址
VirtualBox软件默认路径为C:\Program Files\Oracle\VirtualBox\
然后下一步
- 10
询问是否现在安装,选择是
- 11
点击安装
- 12
到这里,我们的程序就已经安装好了。下面我们就开始使用Genymotion
END
使用
打开Genymotion
第一次进入Genymotion,会检查你是否有安卓虚拟设备。如果没有会弹出对话框,询问你是否现在添加一个虚拟设备,点击yes就可以了
创建一个新的虚拟设备[Create a new virtual device]。
需要你输入用户名和密码验证。如:我的是163邮箱 如:****@163.com
(注意:如果验证不通过,请到邮箱确认是否已经验证过)
验证成功后,可以看到有很多虚拟设备,如:S3,S4等
选择想添加的虚拟设备,选择后点击下一步
下载安装,等到下载到100%.点击[Finish]按钮
给已创建的模拟器命名,然后点击创建按钮。
回到主窗口,选择一个我们已经添加的模拟器,点击启动按钮启动模拟器。
启动过程会弹出对话框,询问是否设置ADB连接的对话框,如果需要就点击是,否则就点击否。
启动虚拟机,几秒钟的事,速度非常快
END
注意事项
- 没有帐号的话一定要去官网注册、验证
有两种安装插件的方法
1.使用更新网站自动安装
- 启动Eclipse
- 依次点击菜单栏中的"Help-Install New Software…"
- 在新打开的窗口中点击"Add"(在新打开的窗口的右上方)
- 填入相应的信息然后进行验证
Name: GenymobileLocation: http://plugins.genymotion.com/eclipse - 然后会出现一个名为Genymobile的树形图
- 检查你刚才输入的内容,并点击"Next"
- 阅读并接受相应条款
- Eclipse会警告说该插件没有被签名,尽管这样还是要接受它
- 完成安装后重启Eclipse
- 重启Eclipse后在工具栏中会发现新的按钮
- 最后,通过点击菜单栏的"Help-About-Installation Details"中的"Plug-In"列中将会看到Genymotion,这说明你成功安装了它
2.手动安装
- 确保Eclipse关闭
- 通过Genymotion 官方下载下载插件
- 按照你的操作系统,参照以下步骤:
- Windows
- 如果你有管理员权限,将jar文件放入你Eclipse安装目录中的plugins文件夹下
- 如果没有管理员权限,将jar文件放入你的Local Settings\Eclipse\plugins中
- Mac OS X
- 使用管理员权限,将jar文件放入你Eclipse安装目录中的plugins文件夹下
- 使用管理员权限,将jar文件放入你Eclipse安装目录中的plugins文件夹下
- Linux
- 如果你有管理员权限,将jar文件放入你Eclipse安装目录中的plugins文件夹下
- 如果没有管理员权限,将jar文件放入/home/[user]/Eclipse/plugins下
- Windows
7.2Eclipse插件使用
点击工具栏中的图标
打开插件
第一次使用插件
- 需要设置Genymotion的安装目录(默认路径只会对标准安装时有效)
- Windows: C:\Program Files\Genymobile\Genymotion
- MacOS X: /Applications/Genymotion.app
- Linux: /home/[user]/genymotion
- 先点击"Apply",然后点击"OK"
- 然后重新点击图标开启插件的主窗口,如下图所示
7.3操作
在插件的主窗口中你可以进行如下操作:
- 启动一个虚拟设备
- 创建一个新的虚拟设备
- 刷新虚拟设备列表
"创建"操作将会自动出现Genymotion创建向导
7.4虚拟设备状态
插件主窗口的状态列可以是如下状态
- Off:虚拟设备关闭
- Paused:虚拟设备已经启动,然后暂停;重启之后也会处于相同状态
- On:虚拟设备开启,但并未与ADB连接。这意味着你不能在ADT插件中的"Android Device Chooser"选择该虚拟设备
- Connected:虚拟设备已启动并与ADB连接。这意味着你可以在ADT插件中的"Android Device Chooser"选择该虚拟设备
7.5使用Genymotion测试应用程序
1.点击
启动或创建一个你想使用的虚拟设备
2.关闭Genymotion主窗口
3.右键你的工程文件,选择"Run as Android Application"
4.出现"Android Devices Chooser"窗口
5.点击你启动/创建的虚拟设备
Genymotion-VMNAME-@IP:PORT
其中:VMNAME是Genymotion中虚拟设备名称,@IP:PORT是ip地址和端口(由ADB分配)
当重启或意外暂停虚拟设备时,Android Device Chooser窗口中的显示名称是无关联的。关闭并重新打开Genymotion插件会解决这个问题。
7.6错误处理
当Genymotion插件窗口处于打开状态时,将会在Eclipse的console中打印出相关错误信息。
- Genymotion小工具快捷键
- 电池小工具 CTRL+1
- GPS小工具CTRL+2
- 控制快捷键
- 旋转虚拟设备 CTRL+F11
- 增加声音 CTRL++
- 减小声音 CTRL+-
- 最近使用的应用 CTRL+SPACE
- 后退 CTRL+BACKSPACE
- Home CTRL+HOME
- 电源 CTRL+ESC
andorid 介绍和 环境搭建相关推荐
- 【opencv4】opencv视频教程 C++(opencv教程)1、opencv介绍和环境搭建
下一讲:[opencv4]opencv视频教程 C++(opencv教程)2.加载,修改,保存图像 [opencv_C++] 入门强推!!![B站最全] 文章目录 opencv介绍和环境搭建 open ...
- MyBatis-学习笔记01【01.Mybatis课程介绍及环境搭建】
Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...
- Hadoop学习之整体介绍及环境搭建
Hadoop学习之整体介绍及环境搭建 1 大数据概述 1.1 什么是大数据 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加 工的的原始素材. 大数据:传统处理方 ...
- Web应用测试(一)Selenium介绍及环境搭建
Selenium介绍及环境搭建 一.背景介绍: (更好的阅读体验,请移步我的个人博客)软件测试比赛刚刚落下帷幕,在空档期,写写这些天的感受.不知不觉参加了好多次软件测试比赛了,开发者测试,移动应用测试 ...
- phalapi-入门篇1(简单介绍以及环境搭建)
2019独角兽企业重金招聘Python工程师标准>>> #phalapi-入门篇1(简单介绍以及环境搭建)# ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我 ...
- 厦门感芯科技MC3172(1):介绍和环境搭建
厦门感芯科技MC3172(1):介绍和环境搭建 文章目录 厦门感芯科技MC3172(1):介绍和环境搭建 1. MC3172介绍 2. MC3172的开发环境 2.1 首先安装ide 2.2 找到配置 ...
- uni-app实战之社区交友APP(1)项目介绍和环境搭建
文章目录 前言 一.项目介绍 二.环境搭建和创建项目 1.开发环境搭建 2.创建uni-app项目 三.多端调试环境搭建 1.安卓手机调试配置 2.iOS真机调试配置 3.微信小程序调试配置 4.支付 ...
- 关于React-native的介绍以及环境搭建
React-Native介绍(后面内容的RN就是指react-native) 由facebook公司推出的,基于react,能开发原生app 原理: 1. 利用react框架写好js代码 2. 利用p ...
- 使用WIF实现单点登录Part I——Windows Identity Foundation介绍及环境搭建 -摘自网络...
上个月有一个星期的时间都在研究asp.net mvc统一身份验证及单点登录的实现.经过了一番的探索,最终决定使用微软的Windows Identity Foundation.但是这东西用的人貌似不多, ...
最新文章
- Swagger3.0 天天刷屏,真的香吗?
- 探索可解释及稳定性,AI与博弈,自适应推理——“智源论坛:机器学习青年学者报告会”要点总结
- 【Python CheckiO 题解】Second Index
- Hive简单实际操作(二)
- N皇后问题位运算符解法【转载】
- DN服务器修改配置文件,LDIF修改LDAP记录或配置示例
- Python入门学习笔记(3)
- reduce端的连接实现
- SAP B1 9.1 生产收货数量加已完成数量不能大于计划数量(存储过程控制代码)...
- 12864 显示多种图形
- [HDOJ5734]Acperience(数学,公式推导)
- 基于Java Web的权限管理系统的设计与实现
- JavaScript笔记 03:数组
- web安全day19:DNS欺骗、ARP攻击及钓鱼网站制作
- java 阴阳历,Java基础-有意思的阴阳历互换的算法
- NVIDIA Studio和Game Ready区别
- 用一根网线连接两台计算机,并传输数据
- linux嗅探密码,tcpdump密码嗅探_tag
- PDF编辑器哪个好,PDF文件怎么拆分成多个PDF
- python等于号前后一定要加空格吗_英语标点前后要加空格吗?
热门文章
- 美通社企业新闻汇总 | 2019.3.6 | 庞巴迪创公务机航空最远距离直飞纪录;欢聚时代14.5亿美元收购直播平台Bigo...
- 两款超好用js日历插件(fullcalendar和zabuto_calendar)
- 长按识别图片变大,且可进行拖拽导致无法长按识别二维码
- 联想YOGA Pro14s酷睿版和华硕灵耀Pro14 2022酷睿版的区别 选哪个好
- Play Framework_学习_官网Yabe博客指南(一)
- 刷题记录:牛客NC22164更相减损术
- 使用自定义键盘切换大小写功能失效,一直显示大写字母
- 中山大学南方学院计算机教师,中山大学南方学院新入职的青年教师待遇
- uniquify (synthesis)
- Mac添加锁屏快捷键