1.  安装

安装Eclipse,安装Adroid插件。安装Adroid SDK。

2.  项目目录说明

2.1.       建立Adroid项目

与一般的Java项目一样

)src文件夹是项目的所有包及源文件(.java),

)res文件夹中则包含了项目中的所有资源,比如:程序图标(drawable)、布局文件(layout)、常量(values)等。

)下面来介绍其他Java项目中没有的的gen文件夹中的R.java文件和每个Android项目都必须有的AndroidManfest.xml文件。

R.java文件是定义该项目所有资源的索引文件。自动生成,只读不能修改。

2.2.       R.java代码清单

AndroidManfest.xml文件则包含了该项目中所使用的Activity、Service、Receiver。

2.3.       AndroidManfest.xml代码清单

AndroidManfest.xml分析

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值,从而形成了IntentFilter。除了能在此元素下指定不同类型的值,属性也能放在这里来描述一个操作所需的唯一的标签、icon和其他信息

action

组件支持的Intent action

category

组件支持的Intent Category。这里指定了应用程序默认启动的activity

uses-sdk

该应用程序所使用的sdk版本相关

资源文件中一些常量的定义。

2.4.       String.xml代码清单

<resources>

<stringname="app_name">测试</string>

<stringname="h0">《黄鹤楼》</string>

<stringname="h1">唐-崔颢[hào]</string>

<stringname="h2">昔人已乘黄鹤去,此地空余黄鹤楼。</string>

<stringname="h3">黄鹤一去不复返,白云千载空悠悠。</string>

<stringname="h4">晴川历历汉阳树,芳草萋萋鹦鹉洲。</string>

<stringname="h5">日暮乡关何处是?烟波江上使人愁。</string>

<stringname="menu_settings">设置</string>

</resources>

String中的代码与R.java代码对应。

publicstaticfinalclass string {

publicstaticfinalintapp_name=0x7f050000;

publicstaticfinalinth0=0x7f050003;

publicstaticfinalinth1=0x7f050004;

publicstaticfinalinth2=0x7f050005;

publicstaticfinalinth3=0x7f050006;

publicstaticfinalinth4=0x7f050007;

publicstaticfinalinth5=0x7f050008;

publicstaticfinalinthello_world=0x7f050001;

publicstaticfinalintmenu_settings=0x7f050002;

}

另外也可以定义颜色常量:例如:color.xml

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

<resources>

<color name="status_idle">#cccccc</color>

<color name="status_done">#637a47</color>

<color name="status_sync">#cc9900</color>

<color name="status_error">#ac4444</color>

</resources>

资源文件的使用:

Resources r =this.getContext().getResources();

String appname= ((String) r.getString(R.string.app_name));

String h0= ((String) r.getString(R.string.h0));

2.5. 布局文件activity_main.xml代码清单

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

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="wrap_content">

<TextView

android:id="@+id/textView0"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/h0"

android:textSize="@dimen/TextSize"/>

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/h1"

android:textSize="@dimen/TextSize"/>

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/h2"

android:textSize="@dimen/TextSize"/>

<TextView

android:id="@+id/textView3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/h3"

android:textSize="@dimen/TextSize"/>

<TextView

android:id="@+id/textView4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/h4"

android:textSize="@dimen/TextSize"/>

<TextView

android:id="@+id/textView5"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/h5"

android:textSize="@dimen/TextSize"/>

</LinearLayout>

LinearLayout

线性版面配置,在这个标签中,所有元件都是按由上到下的排队排成的。

android:orientation

表示这个介质的版面配置方式是从上到下垂直地排列其内部的视图。

android:layout_width

定义当前视图在屏幕上所占的宽度,fill_parent即填充整个屏幕。

android:layout_height

定义当前视图在屏幕上所占的高度,fill_parent即填充整个屏幕。

wrap_content

随着文字栏位的不同而改变这个视图的宽度或高度。

layout_weight

用于给一个线性布局中的多个视图的重要度赋值。所有视图都有layout_weight值,默认为零,即需要显示多大的视图就占据多大的屏幕空间。如果值大于零,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight值和该值在当前屏幕布局的整体 layout_weight值,以及在其他视图屏幕布局的layout_weight值中所占的比例。

在这里,布局中设置了一个TextView,用来配置文本标签Widget,其中设置的属性android:layout_width为整个屏幕的宽度,android:layout_height可以根据文字来改变高度,而android:text则设置了这个TextView要显示的文字内容,这里引用了@string中的hello字符串,即String.xml文件中的@string/h0所代表的字符串资源。h0字符串的内容这就是我们在项目运行时看到的字符串。

2.6.       主程序文件MainActivity.java的代码清单

package com.example.testad;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

publicclassMainActivityextends Activity {

@Override

protectedvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

@Override

publicbooleanonCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.activity_main,menu);

returntrue;

}

}

主程序MainActivity类继承自Activity类,重写了void onCreate(BundlesavedInstanceState)方法。在onCreate方法中通过setContentView(R.layout.main)设置了Activity要显示的布局文件(\layout\ activity_main.xml)。

3.  运行效果

4.  总结Android开发的特点

1.布局文件是通过XML实现。

2.文件分类清晰。

3.代码和UI分开,在国际化和程序维护方面有着巨大的作用。如果你的Android程序需要自适应国际化,比如说多国语言等问题,那么就可以定义不同语言的UI布局,在程序装载时调用不同的布局。而且,如果我们需要修改UI的一些问题,就不必查看代码了,直接更改这些布局文件即可很方便.当然,这需要开发者在开发时使用这种MVC框架,尽量减少使用"硬编码"。

代码下载

Adroid学习系列-入门(1)的更多相关文章

  1. ABP 学习系列 - 目录

    一.ABP 学习系列 - 入门介绍之单表 http://www.cnblogs.com/yabu007/p/8067694.html 二.ABP 学习系列 - 入门介绍之多表 http://www.c ...

  2. 分布式学习系列【dubbo入门实践】

    分布式学习系列[dubbo入门实践] dubbo架构 组成部分:provider,consumer,registry,monitor: provider,consumer注册,订阅类似于消息队列的注册 ...

  3. Gradle学习系列之一——Gradle快速入门

    这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构 ...

  4. Gradle学习系列之一——Gradle快速入门(转)

    这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构 ...

  5. Asp.Net MVC5入门学习系列③

    原文:Asp.Net MVC5入门学习系列③ 添加一个视图(View) 接着上篇的入门系列,上面解说添加一个简单Controller(控制器),这里我们简单的在来添加一个View(视图)来展示我们Co ...

  6. Asp.Net MVC5入门学习系列②

    原文:Asp.Net MVC5入门学习系列② 添加一个Controller(控制器) 因为我们用的是Asp.Net MVC,MVC最终还是一套框架,所以我们还是需要遵循它才能玩下去,或者说是更好的利用 ...

  7. Asp.Net MVC5入门学习系列①

    原文:Asp.Net MVC5入门学习系列① 现在直接开始MVC5的学习系列,学习资源来自Micrsoft. 开始使用Asp.Net MVC 5 打开Visual Studio 2013,然后新建一个 ...

  8. Asp.Net MVC5入门学习系列⑦

    原文:Asp.Net MVC5入门学习系列⑦ 接着上篇结尾所说,如果开发中刚才遇到Model需要添加或者减少字段/属性的话,但是刚好你也利用EF的Code frist通过Model生存的数据库,这时改 ...

  9. Asp.Net MVC5入门学习系列⑤

    原文:Asp.Net MVC5入门学习系列⑤ 检查VS生产的编辑方法和编辑窗体 前面我们一步使用强类型,然后创建Controller(控制器)的时候,VS默认已经给我们把CURD都简单的实现了.这篇的 ...

随机推荐

  1. javaweb学习总结(二十四)——jsp传统标签开发

    一.标签技术的API 1.1.标签技术的API类继承关系 二.标签API简单介绍 2.1.JspTag接口 JspTag接口是所有自定义标签的父接口,它是JSP2.0中新定义的一个标记接口,没有任何属 ...

  2. 关于linux curl 地址参数的问题

    例如 url 为 http://mywebsite.com/index.PHP?a=1&b=2&c=3web形式下访问url地址,使用$_GET是可以获取到所有的参数然而在Linux下 ...

  3. 数据采集:完美下载淘宝Ip数据库 简单的程序节省60元人民币而不必购买数据库

    曾经做网站类型的程序时,经常需要收集客户端的访问数据,然后加以分析.这需要一个Ip数据库,数据表中显示Ip所在的省份市区等信息.网络上有流传的Ip纯真数据库,一些公开的Web服务也可以查询Ip地址信息 ...

  4. 高可用性、负载均衡的mysql集群解决方案

    高可用性.负载均衡的mysql集群解决方案 一.mysql的市场占有率 二.mysql为什么受到如此的欢迎 三.mysql数据库系统的优缺点 四.网络服务器的需求 五.什么是mysql的集群 六.什么 ...

  5. 一致性hash和solr千万级数据分布式搜索引擎中的应用

    互联网创业中大部分人都是草根创业,这个时候没有强劲的服务器,也没有钱去买很昂贵的海量数据库.在这样严峻的条件下,一批又一批的创业者从创业中 获得成功,这个和当前的开源技术.海量数据架构有着必不可分的关 ...

  6. iOS:Tools:快速注释Doxygen

    Xcode5有个新特性就是自己定义的函数也会被检测集成到代码提示里面,也就是在Quick Help有提示.如 /** * @brief 设置id * * @param id 要设置的id */ +(v ...

  7. Unity3D去掉全屏时的屏幕黑边

    给全屏后不在乎拉伸变形仍想让画面占满屏幕的朋友,网上搜了一上午,实在是没有相关的资料,只能自己琢磨了. 使用Canvas Scaler在全屏后Unity虽然会为我们自动拉伸UI,但拉伸后仍然保持我们在 ...

  8. shell变量注意事项

    概念:变量赋值,变量替换,变量引用,命令替换 variable=22 echo variable 可以在同一行设置多个变量.例如 va1=good   va2=chif va3=beijing  #需 ...

  9. vim之插入

    进入vim插入模式,我们熟知的有: 字符位置插入: i      在光标之前插入 a     在光标之后追加 行位置插入: A  在一行的结尾处追加 I   在一行的开头处插入 o  在光标所在位置的 ...

  10. 【转】Log4net用法

    Log4net用法 http://www.cnblogs.com/hfliyi/archive/2012/05/20/2510783.html