您的位置:首页 > 移动开发 > Android开发

Android入门之第一个程序编写与启动

2012-12-22 11:10 316 查看

1. 创建Android程序







1.1创建Android Project

Project name:项目名

Build Target:Android版本

Application name:程序名,显示在程序列表中,以及程序启动后的标题栏

Package name:包名,程序的唯一标识

Create Activity:选择程序启动时是否创建一个窗体,设置主窗体名字

Min SDK Version:设置运行该程序所需的最低版本

2. 安装、卸载程序

2.1Eclipse安装

右键点击工程 – Run as – Android Application

2.2虚拟机卸载

设置 – 应用程序 – 管理应用程序 – 选中要卸载的程序 – 卸载

3. 了解项目目录结构



3.1 src:源代码

3.2 gen:系统自动生成的文件

R.java 中记录了项目中各种资源ID(包括图片、各种View的ID等等)

3.3 res:系统资源,所有文件都会在R文件生成资源ID

drawable:图片

layout:界面布局 main.xml、各种自定义的layout的xml文件

values:数据 strings.xml文件,存放各种国际化的字符串ID

anim:定义动画的XML

raw:原生文件

3.4 assets:资源路径,不会在R文件注册

3.5 libs:外部的jar包(此文件夹根据需要手工创建)

3.6 project.properties:供Eclipse使用,读取该项目使用Android版本号。早期版本名为:default.properties

3.7 AndroidManifest.xml:清单文件,在软件安装的时候被读取

Android中的四大组件(Activity、ContentProvider、BroadcastReceiver、Service)都需要在该文件中注册

程序所需的权限也需要在此文件中声明,例如:电话、短信、互联网、访问SD卡

3.8 bin:二进制文件,包括class、资源文件、dex、apk等

3.9 proguard.cfg:用来混淆代码的配置文件,防止别人反编译

3.2.1 HelloWorldActivity类的介绍

package com.test.app1;

import android.app.Activity;

import android.os.Bundle;

/**

* eclipse自动创建出来的activity,实现了Activity类。

* @author chen

*

*/

public class HelloWorldActivity extends Activity {

/**

* onCreate方法,在Activity开启时自动调用onCreate方法。重写此方法,

* 即可让android虚拟机在开启此程序的activity时自动调用此方法。

*/

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);//开启窗口相关设置信息

/**

* 将res文件夹下的layout文件夹中的main.xml设置的相关控件设置到

* 窗口对象的内容中去,即便于显示出来。

*/

setContentView(R.layout.main);

}

}

3.2.2 Res文件夹下layout文件夹中的main.xml的介绍

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

<!-- 布局文件,Linear layout为线性的布局。可以横排或竖排 -->

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

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<!-- 五大布局:LinearLayout线性、RelativeLayout相对、FrameLayout针式、TableLayout表格、AbsoluteLayout绝对布局

都是可以嵌套的。比如LinearLayout布局,还可以指定orientation排列方向的值为vertical垂直式或horizontal水平式

当layout_width的值可以选择:

wrap_content 根据内容大小填满宽度

fill_parent 根据上级控件宽度填满

match_parent 与fill_parent作用一致,都是根据上线控件宽度而来填充满本级宽度。

-->

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello" />

<!-- android:text:控制文本,可国际化到strings.xml文件中。

android:inputType:输入内容的类型,可以为phone、textPersonName、textPassword、textEmailAddress等等值

android:singleLine:指定是否为单行 true|false,默认是多行即false。

android:layout_gravity :指定摆放位置,可取值:left、right、center等等也可取多值如 bottom|right。

android:hint :用于EditText等控件中,指提示用户输入内容,当用户光标点击入此框中,提示内容消失。

android:id 指定此控件的id,以便在java文件中,用可通过findViewById拿到此控件对象进行操作。

android:paddingLeft:相关的padding内边距多少dp等,与css中很相似

android:layout_marginLeft:相关的margin外边距多少dp等,与css中很相似

RelativeLayout页面中,还有特殊的相关属性

android:layout_toRightOf:值为某一控件的ID号。代表此控件的摆放位置在,某一控件的右边。

android:layout_toLeftOf:值为某一控件的ID号。代表此控件的摆放位置在,某一控件的左边。

android:layout_above:值为某一控件的ID号。代表此控件的摆放位置在,某一控件的上边。

android:layout_below:值为某一控件的ID号。代表此控件的摆放位置在,某一控件的下边。

android:layout_alignParentRight:值为true|false。代表是否与上级控件的右边对齐。

-->

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/test" />

</LinearLayout>

3.2.3.Res文件夹下values文件夹中的strings.xml的介绍

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

<!-- 存放国际化的一些相关资源 -->

<resources>

<!-- 其中文件中用到字符串,strings.xml文件中若有定义可以这样直接引用 : @string/hello -->

<string name="hello">真的很好呢</string>

<string name="test">你好吗</string>

<string name="app_name">第一个应用呢</string>

<string name="app_name_title">第一个应用主界面</string>

</resources>

3.2.3 根目录中AndroidManifest.xml清单文件的介绍

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

<!-- package属性即为应用唯一的id号了。一个手机就只能有package不能重名。最后被发布到手机的

/data/data文件夹下。在手机的设置-应用程序-中可依据此管理程序应用。安装或卸载等。

-->

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

package="com.test.xml"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk android:minSdkVersion="10" />

<!-- android junit test的相关配置,targetPackage必须指定,

若是本工程要填写本工程mainfest要标签package属性的值中

若是其它的工程,若打到其它工程后,找到其它工程的manifest文件,并把其中的package属性值拷贝复制到targetPackage中-->

<instrumentation android:targetPackage="com.test.xml" android:name="android.test.InstrumentationTestRunner" />

<!-- 配置声明相关的权限,写sd卡要外存储设置的写权限即 WRITER_EXTERNAL_STORAGE

程序中用到电话了,则需要配置声明CALL_PHONE的权限

发短信需要用到SEND_SMS的权限等等

-->

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.CALL_PHONE"/>

<!-- application中的android:label为应用名称,在手机的设置-应用程序-安装/卸载时看成到的名称 -->

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name" >

<!-- uses-library android:name="android.test.runner" 声明此项目需要用到junit的类库 -->

<uses-library android:name="android.test.runner" />

<!-- activity中的android:label,就手机菜单界面和打开时的标题名称 、一般与application中的label是相同的,当然也可不同-->

<activity

android:name=".MainActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<!--四大组件 Activity、BroadcastReceiver、ContentProvider、Service都需要此配置 -->

</application>

</manifest>

4. 程序启动过程

4.1 Eclipse将.java源文件编译成.class

4.2 使用dx工具将所有.class文件转换为.dex文件

4.3 再将.dex文件和所有资源打包成.apk文件

4.4 将.apk文件安装到虚拟机完成程序安装

4.5 启动程序 – 开启进程 – 开启主线程

4.6 创建Activity对象 – 执行OnCreate()方法

4.7 按照main.xml文件初始化界面

大学生毕业后头5年决定你的一生海量android源码和学习教程与资料集

数字电视接口规范大全(行业标准)程序员必备:英语口语学习教程大全

20本Linux电子书学习教程2013年25家IT高科技公司薪酬排行榜

2013年Android平台8大预测优秀Android开发人员必须注意的10个误区
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: