`
yxw22
  • 浏览: 26699 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android程序开发初级教程

阅读更多

Android程序开发初级教程() 开始 Hello Android

 

平台简介

  令人激动的Google手机操作系统平台-Android正式发布了,这是一个开放源代码的操作系统,内核为Linux. 作为开发者,我们所关心的是这个平台的架构以及所支持的开发语言。下面是这个平台的架构模型:

  

 

 

  这个平台有以下功能:

  + Application framework: 可重用的和可替换的组件部分,在这个层面上,所有的软件都是平等的。

  + Dalvik virtul machine: 一个基于Linux的虚拟机。

  + Integrated browser: 一个基于开源的WebKit引擎的浏览器,在应用程序层。

  + Optimized graphics: 包含一个自定义的2D图形库和基于OpenGL ES 1.0 标准的3D实现。

  + SQLite: 数据库

  + Media support: 通用的音频,视频和对各种图片格式的支持(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)

  + GSM Telephony: GSM 移动网络, 硬件支持。

  + Bluetooth, EDGE, 3G, and WiFi: 都依赖于硬件支持。

  + Camera, GPS, compass, and accelerometer: 都依赖于硬件支持。

  + Rich development environment: 包含一套完整的开发工具集,方便跟踪调试,内存检测和性能测试,而且提供了Eclipse的插件。

  下面我们就来亲身体验一下Android程序的开发之旅。

  先介绍一下开发环境,下面是对系统及相关软件的版本要求:

  操作系统:

  Windows XP or Vista

  Mac OS X 10.4.8 or later (x86 only)

  Linux (tested on Linux Ubuntu Dapper Drake)

  Supported Development Environments

  Eclipse

  Eclipse 3.2, 3.3 (Europa)

  Android Development Tools plugin (optional)

  Other development environments or IDEs

  JDK 5 or JDK 6 (JRE alone is not sufficient)

  Not compatible with Gnu Compiler for Java (gcj)

  Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows

  我使用Eclipse 3.3 + JDK 1.6. + Ant 1.7 的组合。还有两个重要的就是: Android SDK 以及 Android 用于Eclipse 中的插件。

  Android SDK 的下载链接: http://code.google.com/android/

  如果你是第一次使用这些软件,请注意安装顺序和设置好环境变量。一般的顺序是先安装 JDK 然后解压 ant 压缩包,然后设置 java 环境变量和 ant 环境变量,然后是解压 Android SDK ,再设置 Android SDK的环境变量。总之就是把 JDK, ANT, Android SDK的路径添加到 path 里。

  Android for eclipse plug in 在安装过程很简单,通过网络安装插件就可以了,这个是 URL: https://dl-ssl.google.com/android/eclipse/

  具体的配置过程,可以查看:http://code.google.com/android/intro/installing.html#otherides

以下为一个hello Android的开发步骤:

  创建一个项目:

  创建一个新项目是很简单的,只要你安装了Eclipse插件,并且你的Eclipse软件版本在3.23.3,你就可以开始开发了。

  首先, 看一下要创建"Hello, World"程序从高级层面上有哪些步骤:

  1, 通过 File -> New -> Project 菜单,建立新项目"Android Project"

  2, 填写新项目各种参数。

  3, 编辑自动生成的代码模板。

  尽此而已,我们通过下面的详细说明来完成每个步骤。

  1, 创建一个新的Android项目

  启动Eclipse, 选择 File -> New -> Project 菜单, 如果你安装好了AndroidEclipse插件,你将会在弹出的对话框中看到"Android Project" 的选项。

  

  选择“Android Project”,点击 Next 按钮。

  2, 填写项目的细节参数.

  下面的对话框需要你输入与项目有关的参数:

  

  这个表格中详细介绍了每个参数的含义:

  Project Name: 包含这个项目的文件夹的名称。

  Package Name: 包名,遵循JAVA规范,用包名来区分不同的类是很重要的,例子中用到的是"com.google.android",你应该按照你的计划起一个有别于这个的路径的名称。

  Activity Name: 这是项目的主类名,这个类将会是AndroidActivity类的子类。一个Activity类是一个简单的启动程

  序和控制程序的类。它可以根据需要创建界面,但不是必须的。

  Application Name: 一个易读的标题在你的应用程序上。

  在"选择栏"的 "Use default location" 选项,允许你选择一个已存在的项目。

 3,编辑自动生成的代码。

  当项目创建后,你刚才创建的HelloAndroid就会是包含下面的代码.

  public class HelloAndroid extends Activity

  {

  /** Called when the activity is first created. */

  @Override

  public void onCreate(Bundle icicle)

  {

  super.onCreate(icicle);

  setContentView(R.layout.main);

  }

  }

  下面我们开始修改它

  [构建界面]

  当一个项目建立好以后,最直接的效果,就是在屏幕上显示一些文本,下面是完成后的代码,稍后我们在逐行解释。

  public class HelloAndroid extends Activity {

  /** Called when the activity is first created. */

  @Override

  public void onCreate(Bundle icicle) {

  super.onCreate(icicle);

  TextView tv = new TextView(this);

  tv.setText("Hello, Android");

  setContentView(tv);

  }

  }

  注意你还需要添加 import android.widget.TextView; 在代码开端处。

  在Android程序中, 用户界面是由叫做Views类来组织的。 一个View可以简单理解为可以绘制的对象,像选择按钮,一

  个动画,或者一个文本标签(这个程序中),这个显示文本标签的View子类叫做TextView.

  如何构造一个TextView:

  TexiView tv = new TextView(this);

  TextView的构造参数是Android程序的Context实例, Context可以控制系统调用, 它提供了诸如资源解析, 访问数据库等

  等。Activity类继承自Context类,因为我们的HelloAndroid Activity的子类, 所以它也是一个Context类,所以我们能用"this"TextView构造中。

  当我们构造完TextView后,我们需要告诉它显示什么:

  tv.setText("Hello, Android");

  这个步骤很简单,当我们完成了这些步骤以后,最后要把TextView显示在屏幕上。

  setContentView(tv);

  ActivitysetContentView()方法指示出系统要用哪个View作为Activity的界面, 如果一个Activity类没有执行这个方法,将会没有界面并且显示白屏。在这个程序中,我们要显示文本,所以我们传入已创建好的TextView

  好了,程序代码已经写好,下面看看运行效果。

  运行代码: Hello, Android

  使用AndroidEclipse插件就可以很轻松的运行你的程序,选择Run -> Open Run Dialog。你将会看到下面的对话框

  

  下一步, 高亮"Android Application" 标签, 然后按下左上角的图标(就是像一片纸带个小星星那个), 或者直接双击 "Android Application" 标签, 你将会看到一个新的运行项目,名为"New_configuration".

  

  取一个可以表意的名称,比如"Hello, Android", 然后通过Browser按钮选取你的项目(如果你有很多个项目在Eclipse中,确保你选择要运行的项目), 然后插件会自动搜索在你的项目中的Activity类并且将所有找到的添加在"Activity"标签的下拉列表中。 我们只有"Hello, Android"一个项目,所以它会作为默认选择。

  点击"Apply" 按钮,下图

  

  到这里,已经完成了,你只需要点击"Run"按钮,然后 Android的模拟器将会启动,你的应用程序就会被显示出来。

  

  下次继续介绍如何把界面的布局用XML表示以及使用命令行进行编译和运行Android程序。

将界面实现用XML编排

 

你刚刚完成的"Hello, World"例子我们称之为程序化的界面编排。意思就是说构建你的应用程序界面是直接使用的源代码。如果你已经完成过很多界面程序,你大概熟悉像此类的方式是多么脆弱:一个对布局小小的修改会对源代码造成很头疼的事情。如果忘掉与View的紧密结合,这个导致代码出错和浪费你的调试时间的界面问题也会很简单。

 

这就是为什么Android提供了一种可替换的界面构建方式:基于XML的布局文件。最简单的解释这个概念的方式就是展示一个例子。我们就用刚才创建的项目来进行演示,达到相同的界面效果。

 

<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:text="Hello, Android"/>

 

AndroidXML布局文件的大体的结构很简单。它是一个标签的树,任何一个标签就是View类的名字。在这个例子中,它是一个很简单的只有一个元素的树,一个 TextView。 你可以使用任何继承自View类的名字作为标签的名字。包括在你的代码中自定义的View类。这个结构可以很容易的构建界面,它比你在源代码中使用的结构和语法更简单。这个模式的设计灵感来自于Web开发。就是可以将界面和应用程序逻辑分离的模式。

 

在这个例子中, 也有些是XML的属性,下面是他们的含义:

 

属性

含义

xmlns:android

这是XML命名空间的声明,它是告诉Android的工具, 你将要涉及到公共的属性已被定义在XML命名空间。在每一个Android的布局文件的最外边的标签必须有这个属性。

android:layout_width

这个属性定义了在屏幕上这个View可用的宽度是多少。

android:layout_height

这个属性定义了在屏幕上这个View可用的高度是多少。

android:text

设置TextView所包含的文本内容,当前设置为”Hello, Android”信息

 

 

以上就是一个XML布局文件的样子,但是你需要放在哪里?它要放在你的项目目录的res/文件夹下。 resresources的缩写,它是存放所有非代码资源的文件夹,包含象图片,本地化字符串和XML布局文件。

这些Eclipse的插件已经给你创建好了,在我们上面的例子中,我们没有使用它。在包浏览器中,展开res目录的layout.并且编辑 main.xml,替换掉那个文本内容,然后保存。

 

现在,在包浏览状态,打开在代码文件夹中名为 R.java的文件, 你将看到下面的内容:

 

public final class R {

    public static final class attr {

    };

    public static final class drawable {

        public static final int icon=0x7f020000;

    };

    public static final class layout {

        public static final int main=0x7f030000;

    };

    public static final class string {

        public static final int app_name=0x7f040000;

    };

};

 

 

一个项目的R.java文件是一个定义所有资源的索引文件。使用这个类就像使用一种速记方式来引用你项目中包含的资源。这个有点特别的强大像对于Eclipse这类IDE的代码编译特性,因为它使你快速的,互动式的定位你正在寻找的特定引用。

 

到目前需要注意的重要事情是叫做layout的内部类和他的成员变量main,插件会通知你添加一个新的XML布局文件,然后从新产生这个R.java文件,比如你添加了新的资源到你的项目,你将会看到R.java也相应的改变了

 

最后重要的事情是你需要去修改你的HelloAndroid源代码,去使用新的XML布局你的界面。替换掉编码式的界面模式。下面是你的新代码的样子,你可以看到,代码变得更加简单了。

 

public class HelloAndroid extends Activity {

   

    @Override

    public void onCreate(Bundle icicle) {

        super.onCreate(icicle);

        setContentView(R.layout.main);

    }

}

 

当你做这些改变的时候,不要仅仅复制,粘贴到你的代码中,尝试去体验R.java的代码编译特点。你会发现它对你有很大的帮助。

 

现在完成这些改变以后,你就可以重新运行你的程序,然后你会发现两种不同的界面编排方式会产生同样的效果。

调试你的项目

 

这个用于Eclipse中的Android插件作为Eclipse中的调试器也具有优秀的兼容性。要演示这些,让我们制造一个bug在代码中,改变你的HelloAndroid源代码象下面这样:

 

public class HelloAndroid extends Activity {

   

    @Override

    public void onCreate(Bundle icicle) {

        super.onCreate(icicle);

        Object o = null;

        o.toString();

        setContentView(R.layout.main);

    }

}

 

 

这次简单的变化会引起一个NullPointerException异常,如果你再次运行程序,你将会看到屏幕

 要找到什么地方出错,需要设置个断点在你源代码的 Object o = null; 行后(你可以双击在Eclipse中显示行数的左部区域),然后选择 Run -> Debug选择最后一次的运行加载。你的程序将会重起模拟器,但是这个时候它会挂起,当它走到你刚才设置的断点的时候,在Eclipse的调试模式视图中,它就会停止在你的代码处。就像你可以在其他任意程序中做这个一样。。

 

  

 

 

使用其它的IDE工具创建项目

 

调试你的项目

这个用于Eclipse中的Android插件作为Eclipse中的调试器也具有优秀的兼容性。要演示这些,让我们制造一个bug在代码中,改变你的HelloAndroid源代码象下面这样:

public class HelloAndroid extends Activity {

     /** Called when the activity is first created. */

     @Override

     public void onCreate(Bundle icicle) {

         super.onCreate(icicle);

         Object o = null;

         o.toString();

         setContentView(R.layout.main);

     }

}

这次简单的变化会引起一个NullPointerException异常,如果你再次运行程序,你将会看到下面的屏幕:

 

要找到什么地方出错,需要设置个断点在你源代码的 “Object o = null;” 行后(你可以双击在Eclipse中显示行数的左部区域), 然后选择 Run -> Debug 选择最后一次的运行加载。你的程序将会重起模拟器,但是这个时候它会挂起,当它走到你刚才设置的断点的时候,在Eclipse的调试模式视图中,它就会停止在你的代码处。就像你可以在其他任意程序中做这个一样。。

 

使用其它的IDE工具创建项目

如果你没有使用Eclipse(比如你使用其他的IDE开发工具,或者简单的只使用文本编辑和命令行工具), 那么这个插件不会帮上你忙,别担心,你不会因为没有使用Eclipse而丢失任何开发能力。

其实AndroidEclipse插件也是将一套Android SDK的开发工具包装了。(这些工具像:模拟器,aapt, adb, ddms, 和其他的,可以参考google的相关文档)因此,它也可以被其他工具包装,比如ant.

Android SDK中包含一个Python脚本,叫做”activityCreator.py”它用于为了你的项目创建所有的源代码和目录的编译环境(个人理解), 也就是会产生可用于ant编译的build.xml. 这样就允许你的项目从命令行方式创建或者集成到你选择的IDE中。

比如,要创建一个HelloAndroid项目,就像刚才我们用Eclipse中的一样,你可以使用下面的命令:

activityCreator.py --out HelloAndroid com.google.android.hello.HelloAndroid

要编译你的项目,你要接着使用ant命令,当命令行提示成功时候,你会看到一个名为HelloAndroid.apk的文件在”bin”目录下。这个.apk文件是一个Android的包,它需要使用”adb”工具安装进模拟器。

到这里为止,我向大家展示了Android平台的程序简单的开发实例,本人水平有限,翻译的时间仓促,一定有很多错误和疏漏,请多提修改意见。本系列教程的主要内容都是翻译自GoogleAndroid开发文档。

 

通过下面的链接查看全部内容。

http://code.google.com/android/intro/hello-android.html

 

  • 大小: 314.5 KB
分享到:
评论

相关推荐

    Android程序开发入门教程

    ### Android程序开发入门教程知识点详解 #### 一、Android平台简介 - **平台特性**:Android是一个由Google主导开发的开放源代码操作系统,其内核基于Linux。这使得Android不仅具备了灵活性,还拥有了丰富的资源和...

    免费的防止锁屏小软件,可用于域统一管控下的锁屏机制

    免费的防止锁屏小软件,可用于域统一管控下的锁屏机制

    Python代码实现带装饰的圣诞树控制台输出

    内容概要:本文介绍了一段简单的Python代码,用于在控制台中输出一棵带有装饰的圣诞树。具体介绍了代码结构与逻辑,包括如何计算并输出树形的各层,如何加入装饰元素以及打印树干。还提供了示例装饰字典,允许用户自定义圣诞树装饰位置。 适用人群:所有对Python编程有一定了解的程序员,尤其是想要学习控制台图形输出的开发者。 使用场景及目标:适用于想要掌握如何使用Python代码创建控制台艺术,特别是对于想要增加节日氛围的小项目。目标是帮助开发者理解和实现基本的字符串操作与格式化技巧,同时享受创造乐趣。 其他说明:本示例不仅有助于初学者理解基本的字符串处理和循环机制,而且还能激发学习者的编程兴趣,通过调整装饰物的位置和树的大小,可以让输出更加个性化和丰富。

    白色大气风格的设计师作品模板下载.zip

    白色大气风格的设计师作品模板下载.zip

    电商平台开发需求文档.doc

    电商平台开发需求文档.doc

    白色简洁风格的办公室室内设计门户网站模板下载.zip

    白色简洁风格的办公室室内设计门户网站模板下载.zip

    VB+access干部档案管理系统(源代码+系统)(20246t).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

    VB+ACCESS服装专卖店管理系统设计(源代码+系统+开题报告+答辩PPT)(2024ra).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

    (179065812)基于Android stduio的手机银行开发与设计-用于课程设计

    课程设计---基于Android stduio的手机银行开发与设计 现今,手机已经成为人们生活和工作的必备品,在手机各种系统中Android系统是人们用的比较多的系统。手机银行也是人们在生活中比较常用的功能之一。本项目基于Android的手机银行开发与设计主要功能有登录注册、转账、转账记录查询、修改及查询个人信息、添加好友、向好友转账的功能。本项目主要用Android Studio 开发,数据库SQLite数据库,和夜神模拟器。 基于Android stduio的手机银行开发与设计项目主要功能有登录注册、转账、转账记录查询、修改及查询个人信息、添加好友、向好友转账的功能。。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    白色大气风格的婚礼现场倒计时模板下载.zip

    白色大气风格的婚礼现场倒计时模板下载.zip

    轮式移动机器人轨迹跟踪的MATHLAB程序,运用运动学和动力学模型的双闭环控制,借鉴自抗扰控制技术结合了非线性ESO,跟踪效果良好,控制和抗扰效果较优,可分享控制结构图 这段程序主要是一个小车的动力

    轮式移动机器人轨迹跟踪的MATHLAB程序,运用运动学和动力学模型的双闭环控制,借鉴自抗扰控制技术结合了非线性ESO,跟踪效果良好,控制和抗扰效果较优,可分享控制结构图。 这段程序主要是一个小车的动力学仿真程序,用于模拟小车在参考轨迹下的运动。下面我将对程序进行详细的分析解释。 首先,程序开始时使用`clear`、`clc`和`close all`命令来清除工作空间、命令窗口和图形窗口中的内容。 接下来,程序定义了一系列参数和变量,用于设置仿真的参数和存储仿真过程中的数据。这些参数包括小车的质量、车宽、驱动轮半径等,还有参考轨迹的振幅和频率,仿真步长,仿真时间等。 然后,程序定义了一些元胞数组,用于存储不同阶段的数据。这些数组包括参考轨迹位姿、真实运动轨迹位姿、参考轨迹一阶导数、参考轨迹速度、期望速度、真实速度、控制器输出的控制力矩、控制输入、期望速度与真实速度误差、摩擦值、外界扰动值、总扰动、位姿跟踪误差、扰动观测值等。 接下来,程序给这些变量赋初始值,包括小车的初始位姿和速度,初始速度,期望初始速度,控制器输出的控制力矩,扰动观测值等。 然后,程序进入一个循环,仿真时间从

    vb+ACCESS学生档案管理系统(论文+源代码)(2024ql).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

    数据分析-31-疫情数据分析(包含代码和数据)

    这是一份来自开源的全球新冠肺炎数据集,每日时间序列汇总,包括确诊、死亡和治愈。所有数据来自每日病例报告。数据持续更新中。 由于数据集中没有美国的治愈数据,所以在统计全球的现有确诊人员和治愈率的时候会有很大误差,代码里面先不做这个处理,期待数据集的完善。

    白色大气风格的时装设计公司模板下载.zip

    白色大气风格的时装设计公司模板下载.zip

    白色大气风格的商务会议活动模板下载.rar

    白色大气风格的商务会议活动模板下载.rar

    vb+access工资管理系统(论文+程序+开题报告+外文翻译+答辩PPT)(2024k3).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

    基于微信小程序的学生签到系统设计与实现ssm.zip

    本次开发一套基于微信小程序的生签到系统,有管理员,教师,学生三个角色。管理员功能有个人中心,学生管理,教师管理,签到管理,学生签到管理,班课信息管理,加入班课管理,请假信息管理,审批信息管理,销假信息管理,系统管理。教师和学生都可以在微信端注册和登录,教师可以管理签到信息,管理班课信息,审批请假信息,查看学生签到,查看加入班级,查看审批信息和销假信息。学生可以查看教师发布的学生签到信息,可以自己选择加入班课信息,添加请假信息,查看审批信息,进行销假操作。基于微信小程序的生签到系统服务端用Java开发的网站后台,接收并且处理微信小程序端传入的json数据,数据库用到了MySQL数据库作为数据的存储。

    技术资源分享-我的运维人生-《新年的奇妙团聚与希望之旅》

    **脚本描述**:本脚本围绕着新年这个充满欢乐与希望的时刻展开。故事发生在一个热闹的小镇,主要角色有在外打拼多年的年轻人小李,他的父母,以及一群充满活力的小镇居民。新年将至,小李踏上回家的旅途,满心期待与家人团聚。在小镇上,大家都在积极筹备新年,贴春联、挂灯笼、准备年夜饭。小李与家人重逢后,一起分享着彼此的故事和喜悦。同时,他们也和小镇居民一起举办了热闹的庆祝活动,在欢声笑语中迎接新年的到来。这个新年不仅让小李重新感受到了家的温暖,也让他对未来充满了信心和希望,他决定和小镇一起成长发展。通过这个脚本,展现新年带给人们的幸福、温暖和对未来的憧憬。

    Python 自动办公- Python分类汇总278张Excel表中的数据 Python源码

    Python 自动办公- Python分类汇总278张Excel表中的数据

Global site tag (gtag.js) - Google Analytics