安卓开发 之小白养成-Android环境搭建 二

  • Android开发环境搭建 

3.1 SDT开发工具包下载和解压

那第一件事,我们就是要下载开发工具,那么开发工具我这里给出两个,一个是谷歌安卓工具开发者官网,这是一个谷歌的最权威的官方网站,英文的,悲催的是正常的手段是没有办法打开的,因为谷歌和中国的关系不太和谐,所以就得采用一些特殊的手段,(http://developer.android.com)

第二个网址呢,这是一个国内的网址,这个网站也是提供了一系列安卓开发工具的下载,国内的用户可以到这个网站上去下载

http://www.androiddevtools.cn/

大家可以在这里去正常下载是没有问题的

      自虐式: 下载eclipse 、ADT 、SDK

Eclpise 不推荐!!!

  1. 使用打包好的。
  2. 下载eclipse,下载ADT,把ADT装入Eclipse。然后再下载SDK,直接解压,然后在eclipse中指定sdk的目录就可以了。

 

开发各种的目录禁止出现中文!!!

Android studio 

inteljidea          

   社区版  免费   继承adt之后,有了Android studio

   旗舰版   收费

 

eclipse jdk  一定要匹配

ADT(android develop tools)作用:就是安卓开发工具,用来生成一些源文件,是eclipse的一个插件

SDK(standard develop kits)的作用:安卓相关的软件开发工具包,SDK只是一个压缩包,任何地方下载的解压之后都可以。不分64位32位

ADT 提供了这个android开发的框架。下载了之后,必须安装在eclipse

 

      从Android官方网站获取最新的SDT开发工具包。

下载地址:http://dl.google.com/android/adt/adt-bundle-windows-x86.zip

由于一些众所周知的原因,该网站一般很难打开。

 

工具包包含以下内容:

  1. Eclipse + ADT 插件
  2. Android SDK
  3. Android Platform-tools
  4. 最新的Android 开发平台
  5. 最新的模拟器镜像

 

下载之后,直接解压后打开Eclipse即可使用

 

注意:1)解压的目录不能有中文目录

  1. Eclipse要和JDK匹配(如果是64位都必须是64位,32位都必须是32位)

 

3.2 创建Android模拟器

点击手机形状的图形(android virtual device manager) 创建一个新的android模拟器

3.3 启动AVDDDMS说明

点击start可以启动虚拟机。虚拟机启动后就相当于一个Android手机。

DDMS:Dalvik Debug Monitor Service  对Android设备进行调试的时候使用。

 

 

 

第一个Android应用程序

4.1打开eclipse -File-New - Android Application project

 

SDK目录内容:

SDK里面的platforms里是空的,怎样有内容呢?打开SDKManager.exe,去下载SDK不同版本的开发工具包

Tools:SDK开发的标准工具

Etras:可用扩展工具

        --Android Support Library:高版本的API可以在低版本上使用,向下兼容

        --Google USB Driver:真机连接时的驱动

        --Google Web Driver:访问WEB的驱动

        --Intel X86 Emulator Accelerator: 如果你的处理器是英特尔的并且是I3以上的,就可以使用这个加速器

常见的API要记住

SDK Plateform:就是开发程序时所需要的JAR包

Samples for SDK:SDK的一些例子程序

ARM...System Image:模拟器所需要的镜像

Intel x86...:

用哪个模拟器就用哪个镜像

Google APIs:谷歌给我们提供的一些应用JAR包,比如说谷歌地图

Sources for Android SDK:安卓SDK的所有源代码

 

DDMS介绍:一个工具

 DDMS将搭建起IDE与测试终端(Emulator 或者connected device)的链接,

它们应用各自独立的端口监听调试器的信息,DDMS可以实时监测到测试终端的连接情况。

当有新的测试终端连接后,DDMS将捕捉到终端的ID,并通过adb建立调试器,从而实现发送指令到测试终端的目的。

左边:Devices界面:是当前ECLIPSE所连接的设备,

右边:Thread:调试进程里面的线程的,

        Heap:观察应用程序运行的堆栈信息

        File Explorer:文件管理器,列出来的是安卓手机里的目录结构,真机都有文件管理器和这里的内容是一致的

        Emulator Control:模拟器控制,可以模拟打电话,发信息

LogCat介绍:

LogCat(日志猫)是Android下的一个调试工具

安卓程序实际上运行在一个单独的设备上,日志实际上打印在手机内部的日志缓冲区里。

可以通过android.util.Log类来打印日志信息

日志信息是分等级的:

Log.v() -------------------- VERBOSE(提醒)黑色

Log.d() -------------------- DEBUG(调试)蓝色

Log.i() -------------------- INFO(信息) 绿色

Log.w() -------------------- WARN(警告) 橙色

Log.e() -------------------- ERROR(错误) 红色

以上log的级别依次升高,Debug信息应当只存在于开发中,INFO、 WARN、ERROR这3种log将出现在发布版本中。

  • Android工程目录说明

src/  java原代码存放目录

gen/ 自动生成目录

gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。 这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的资源,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。

res/ 资源(Resource)目录

在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。

libs/ 支持库目录

程序开发时需要的一些三方的jar包可以放在这个目录,系统会自动把里面的jar包,添加到环境变量。

assets资源目录

Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径,如:file:///android_asset/xxx.3gp

AndroidManifest.xml 项目清单文件

 这个文件列出了应用程序所提供的功能,以后你开发好的各种组件需要在该文件中进行配置,如果应用使用到了系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等等),你还需在该文件中声明使用权限。

project.properties 项目环境信息,一般是不需要修改此文件

res/ 目录

  1. res/drawable

res/目录下有三个 dawable 文件夹

drawable-*dpi】,区别只是将图标按分辨率高低来放入不同的目录,

drawable-hdpi】用来存放高分辨率的图标,

drawable-mdpi】用来存放中等分辨率的图标,

drawable-ldpi】用来存放低分辨率的图标。

 

程序运行时可以根据手机分辨率的高低选取相应目录下的图标。不过,如果不想准备过多图片,那么也可以只准备一张图标将其放入三个目录的任何一个中去。

  1. res/values/

  此目录下主要存放如下文件:

  1. strings.xml

用来定义控件上显示的字符串和数值

为什么需要把应用中出现的文字单独存放在 strings.xml 文中呢?

原因有二,一是为了国际化

二是为了减少应用的体积,降低数据冗余

  1. res/layout/  
  1. 目录下的布局文件简介

布局文件是 ADT 默认自动创建的“main.xml文件。在 Eclipse 中,双击 main.xml文件,或者右击以选择相应的编辑器,选用“Android Layout Editor。在编辑区出现如下界面,默认显示的是“Layout 编辑器”的预览效果。可以点击 Layout 选项卡旁边的 main.xml,切换到代码模式以编辑。

R.java 文件

R.java 文件中默认有 attrdrawablelayoutstring 等四个静态内部类,每个静态内部类分别对应一种资源,如 layout 静态内部类对应 layout 中的界面文件,其中每个静态内 public static final int main=0x7f030000;对应的是 layout 目录下的 main.xml 文件。具体的对应关系,如下图。

 

下载 (72.74 KB)

2011-1-16 22:25

由于目前【drawable-*dpi】目录下都只有 icon.png 一个图片文件,因此此时不同像素 icon.png drawable icon 在【drawable-*dpi】目录下再添加一幅图片sharpandroid.png,那么会有什么效果出现呢?请看下图。

 

下载 (28.32 KB)

2011-1-16 22:26

现在已经理解了 R.java 文件中内容的来源,也即是当开发者在 res/目录中任何一个子 目录中添加相应类型的文件之后,ADT 会在 R.java 文件中相应的匿名内部类当中自动生成一条静态 int 类型的常量,对添加的文件进行索引。如果在 layout 目录下在添加一个新的界面,那么在 public static final class layout 中也会添加相应的静态 int 常量。相反的,当我们再 res 目录下删除任何一个文件,其在 R.java 中对应的记录会被 ADT 自动删除。 再比如说我们在【strings.xml】添加一条记录,在 R.java string 内部类中也会自动增加一条记录。

R.java 文件会给我们开发程序带来很大的方便,比如在程序中我们使用“public static final int icon=0x7f020000;就可以找到其对应的 icon.png 这幅图片。

提示:R.java 文件除了有自动标识资源的“索引”功能之外,还有另一个主要的功能,当 res 目录中的某个资源在应用中没有被使用到,在该应用被编译的时候系统就不会把对应的资源 编译到该应用的 APK 包中,这样可以节省 Android 手机的资源。

 

应用程序执行流程分析

经过前面对 Android 项目目录结构的介绍,以及相关文件的讲解,我们对许多细节已经有所了解,只是 Android 程序是如何执行的呢?下面做一个总结。

发布程序到手机上之后,当双击“抽屉”里该应用的图标时,系统会将这个点击事件包装成一个Intent,该Intent包含两个参数

{action "android.intent.action.MAIN"

category "android.intent.category.LAUNCHER" }

这个Intent被传递给HelloWorld这个应用之后在应用的功能清单文件中寻找与该Intent匹配的Intent过滤器,如果匹配成功,找到相匹配的Intent过滤器所在的Activity元素,再根据 <activity>元素的“name属性来寻找其对应的Activity类。接着Android操作系统创建该Activity类的实例对象,对象创建完成之后,会执行到该类的onCreate方法,此OnCreate方法是重写其父类ActivityOnCreate方法而实现。onCreate方法用来初始化Activity实例对象。如下是HelloWorld.java 类中onCreate方法的代码。

public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

}

其中super.onCreate(savedInstanceState)的作用是调用其父类ActivityOnCreate方法来实现对界面的画图绘制工作。在实现自己定义的Activity子类的OnCreate方法时一定要记得调用该方法,以确保能够绘制界面。

setContentView(R.layout. main)的作用是加载一个界面。该方法中传入的参数是 R.layout. main,其含义为R.java类中静态内部类layout的静态常量main的值,而该值是 一个指向res目录下的layout子目录下main.xml文件的标识符。因此代表着显示main.xml所定义的画面。

关于Activity类的执行流程及其生命周期会在后面的部分详细讲解。

Android程序执行的整个序列图如下所示。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值