开始之前先熟悉几个名词:
SDK -- Software Development Kit, 软件开发工具包。这个词并不陌生, JDK,就是Jave Development Kit,同样对于Android 来说也有Android SDK.
Android SDK 提供了构建,测试和调试安卓应用的API 库和开发者工具。
ADT- Android Developer Tools.安卓开发者工具, 其实这里就是Eclipse 用于Android 开发的插件。
在搭建Android 开发环境之前, 首先要安装JDK,然后下载一个ADT Bundle.
ADT Bundle 是为了快速开发提供的一个下载包
这个下载包包含了:
1, Eclipse 和ADT 插件
2. Android SDK Tools
3. Android Platform-tools
4. The latest Android platform
5. The latest Android system image for the emulator
1. 下载安装JDK
JDK 目前的最新版本已经到 1.8 版了。
就目前的ADT的要求来说, 1.6 版就可以了。
这里使用的是 : jdk1.6.0_24 版本。
JDK的历史版本下载可以到:
http://www.oracle.com/technetwork/java/javase/archive-139210.html
下载完成之后, 点击执行, 一直next 就可以了。
安装完成后配置以下JAVA_HOME.
这里配置成: C:\Program Files\Java\jdk1.6.0_24
2. 下载安装ADT Bundle
ADT Bundle 其实下载解压就可以了。
下载地址: http://developer.android.com/sdk/index.html
点击图中的按钮就可以了:
目前的最新文件号是 : adt-bundle-windows-x86-20140321.zip
下载完成后解压到你需要的目录, 这里解压到 C:\mysoftware 中, 解压后的目录结构:
至此, 环境基本上搭建完成。
也可到如下地址下载:
https://onedrive.live.com/redir?resid=5B4EDBCD9EF1AB6B!195&authkey=!AB78ZyhxOx5kUMs&ithint=file%2c.zip
理论上,此时进入eclipse 目录点击 eclipse.exe 应该就可以启动了。
但是, 发现eclipse 启动之后 , 闪一下就没有了。
eclipse 目录下产生一个 hs_err_pidXXXX.log 的错误文件。
错误的内容如下:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x575cf75b, pid=5912, tid=5832
#
# JRE version: Java(TM) SE Runtime Environment (7.0_55-b13) (build 1.7.0_55-b13)
# Java VM: Java HotSpot(TM) Client VM (24.55-b03 mixed mode windows-x86 )
# Problematic frame:
# C [gdiplus.dll+0xf75b]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- T H R E A D ---------------
Current thread (0x00df9800): JavaThread "main" [_thread_in_native, id=5832, stack(0x00030000,0x00130000)]
siginfo: ExceptionCode=0xc0000005, reading address 0xa74c9eb4
Registers:
EAX=0x1008090b, EBX=0x57975790, ECX=0x00000002, EDX=0x00000010
ESP=0x0012e41c, EBP=0x0012e430, ESI=0xa74c9eb4, EDI=0xa74c9eb4
EIP=0x575cf75b, EFLAGS=0x00010297
Top of Stack: (sp=0x0012e41c)
0x0012e41c: 57782d78 57782db0 00000001 a74c9eb4
0x0012e42c: a74c9eb4 0012e44c 575cf3a3 00000002
0x0012e43c: 57975790 a74c9eb4 57782d60 000003ad
0x0012e44c: 0012e4a4 5769aaa2 a74c9eb4 57975790
0x0012e45c: 00000002 000003ad 0000004f 00000000
0x0012e46c: 57949d48 57782d60 a742b000 57782d60
0x0012e47c: a742b000 00000004 00000000 00000000
0x0012e48c: 00000002 00000000 00000004 00000000
Instructions: (pc=0x575cf75b)
0x575cf73b: 57 90 90 90 90 8b 03 8b d0 c1 ea 18 83 fa 00 74
0x575cf74b: 45 81 fa ff 00 00 00 0f 84 3c f6 ff ff 0f 6e e0
0x575cf75b: 8b 06 0f 6e c0 0f 60 c7 81 f2 ff 00 00 00 0f 6e
0x575cf76b: d2 0f 61 d2 0f 62 d2 0f d5 c2 0f fd c3 0f 6f d0
Register to memory mapping:
EAX=0x1008090b is an unallocated location in the heap
EBX=0x57975790 is an unknown value
ECX=0x00000002 is an unknown value
EDX=0x00000010 is an unknown value
ESP=0x0012e41c is pointing into the stack for thread: 0x00df9800
EBP=0x0012e430 is pointing into the stack for thread: 0x00df9800
ESI=0xa74c9eb4 is an unknown value
EDI=0xa74c9eb4 is an unknown value
Stack: [0x00030000,0x00130000], sp=0x0012e41c, free space=1017k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [gdiplus.dll+0xf75b]
C [gdiplus.dll+0xf3a3]
C [gdiplus.dll+0xdaaa2]
C [gdiplus.dll+0xdac57]
C [gdiplus.dll+0x79c24]
C [gdiplus.dll+0x16d7b]
C [gdiplus.dll+0xf2c0]
C [gdiplus.dll+0x4efe2]
C [gdiplus.dll+0x6d257]
C [gdiplus.dll+0x6d208]
C [gdiplus.dll+0x6d55e]
C [gdiplus.dll+0x9fbbc]
C [gdiplus.dll+0x9fcc8]
C [swt-gdip-win32-4236.dll+0x532b]
j org.eclipse.swt.internal.gdip.Gdip.Graphics_DrawLines(II[II)I+0
j org.eclipse.swt.graphics.GC.drawPolyline([I)V+72
j org.eclipse.e4.ui.workbench.addons.perspectiveswitcher.PerspectiveSwitcher.paint(Lorg/eclipse/swt/events/PaintEvent;)V+116
j org.eclipse.e4.ui.workbench.addons.perspectiveswitcher.PerspectiveSwitcher$5.paintControl(Lorg/eclipse/swt/events/PaintEvent;)V+5
j org.eclipse.swt.widgets.TypedListener.handleEvent(Lorg/eclipse/swt/widgets/Event;)V+1036
J org.eclipse.swt.widgets.EventTable.sendEvent(Lorg/eclipse/swt/widgets/Event;)V
j org.eclipse.swt.widgets.Widget.sendEvent(ILorg/eclipse/swt/widgets/Event;Z)V+73
j org.eclipse.swt.widgets.Widget.sendEvent(ILorg/eclipse/swt/widgets/Event;)V+4
j org.eclipse.swt.widgets.Composite.WM_PAINT(II)Lorg/eclipse/swt/internal/win32/LRESULT;+1429
J org.eclipse.swt.widgets.Control.windowProc(IIII)I
V [jvm.dll+0x13f25a]
V [jvm.dll+0x202c1e]
V [jvm.dll+0x13f2dd]
V [jvm.dll+0xc9b22]
V [jvm.dll+0xcc0d3]
C [swt-win32-4236.dll+0x122f]
C 0x56d80018
C [USER32.dll+0x8734]
C [USER32.dll+0x8816]
C [USER32.dll+0x1a013]
C [USER32.dll+0x1a039]
这里直接给出解法:
修改 eclipse.ini 的 -Xmx 的配置, 从 768 改成 600
修改之后保存, 重启eclipse, 一切正常了。
果然是内存问题造成了。
应该通过配置java_ops 也能解决问题。
到这里, 环境搭建就没问题了。
接下来, 创建一个Android 的Hello World.
1. 添加一个安卓虚拟设备
直接点击虚拟设备管理图标或是 Window-->Android Virtual Device Manager
点击 "new ", 添加
2. 建立一个安卓应用程序
3. 什么都不做, 直接运行
4. 运行结果
5. 点击进入应用程序的页面,就能开发开发和安装的首个 android app了,
6. 点击 MyFirstApp
正常的状况下, 点击运行后,控制台应该出现
在有些机器下,在控制台可能会出现
Failed to install *.apk on device 的错误。
解决方法是:
打开 SDK Manager , 勾选 https
step1: 安装 Android SDK Tools
Step2: 安装Eclipse 的Android 插件:
地址:
Android Plugin - https://dl-ssl.google.com/android/eclipse/
2. 安装Android Studio
android 官方推荐的开发工具目前(2015 或更早)已经是android Studio(而不是ADT Bundle)
下载可以进入:
http://developer.android.com/sdk/index.html