首页 > 代码库 > [Android系列—] 1. Android 开发环境搭建与Hello World

[Android系列—] 1. Android 开发环境搭建与Hello World

前言

開始之前先熟悉几个名词:

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

点击图中的button就能够了:


眼下的最新文件号是 :  adt-bundle-windows-x86-20140321.zip

下载完毕后解压到你须要的文件夹, 这里解压到  C:\mysoftware 中, 解压后的文件夹结构:

至此, 环境基本上搭建完毕。


也可到例如以下地址下载:

https://onedrive.live.com/redir?resid=5B4EDBCD9EF1AB6B!195&authkey=!AB78ZyhxOx5kUMs&ithint=file%2c.zip


Eclipse 无法启动

理论上,此时进入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 也能解决这个问题。


Hello World

到这里, 环境搭建就没问题了。

接下来, 创建一个Android 的Hello World.

1.  加入?一个安卓虚拟设备

直接点击虚拟设备管理图标或是  Window-->Android Virtual Device Manager


点击 "new ", 加入?


2.  建立一个安卓应用程序


3. 什么都不做, 直接执行


4. 执行结果


5. 点击进入应用程序的页面,就能开发开发和安装的首个 android app了,



6. 点击 MyFirstApp





Failed to install *.apk on device ...

正常的状况下, 点击执行后,控制台应该出现




在有些机器下,在控制台可能会出现

Failed to install *.apk on device 的错误。


解决方法是:

打开 SDK Manager , 勾选 https