修改Eclipse的字体,我希望大一些,反正22寸的显示屏:

Window->Preferences->General->Apprearance->Colors and Fonts -> Java -> Java Editor Text Font(...) -> Edit

在此次,我们先创建一个Hello,Android的程序,并既而讨论Andriod的程序架构。

1、创建project:File > New > Project > Andriod > Andriod Project

2、如图填入poject信息

  • Project Name:这是project的名字,同时根据这个名字在workspace中自动生成相关目录(见location)。
  • Application Name:这个映用的名字,加载在Andriod设备中,图标上显示的映用名称。
  • package Name:这是java的package的名称,这里,我使用了com.wei.learning.helloandriod。为了避免名称冲突,采用了标准的namespace的方式。
  • Create Activity:这是Andriod的Activity子类的名称,一个Anctivity是一个可执行的类,相当于main。
  • Min SDK Version,这是表明该映用能够兼容的最小的API版本号,这里选择了7,也就是可支持Andriod 2.1以上的版本。通常选择Build Target的编译版本一致。Andriod是前向兼容的,以本例子为例,可以在Andriod 2.2的平台上跑,但是如果我们在Build Target中选择了2.2,不能保证则会2.1的平台上跑。

如果我们不是用Eclipse,我们也可以用命令行生成project,如下:

android create project /
--package com.wei.learning.helloandroid /
--activity HelloAndroid /
--target 2 /
--path <path-to-your-project>/HelloAndroid

3、写我们的Hello,Andriod例子

在HelloAndriod/src/com/wei/learning/helloandriod/中是我们的源代码文件,这里只有一个,HelloAndriod.java,内容如下:

package com.wei.learning.helloandriod;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;//在Eclipse中可以简单采用Shift+Ctrl+O可以自动根据内容生成所需要的import的package。

public class HelloAndriod extends Activity { //一个Activity是实体用于处理用户操作,一个映用可以多个分割的activities,但同一时刻用户主能与其中一个互动
/** Called when the activity is first created.
* 这里的注释采用javadoc的标准写法,以便生成我们的API的HTML文档。
* OnCreate()用于初始化和UI的建立。*/

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* View是在UI layout中使用的元素,包括button等等,这里使用TextView。创建对讲后,设置文本内容,最后使用setcontentView()来将tv对象防止在activity UI中。*/
TextView tv = new TextView(this);
tv.setText("Hello, Andriod!");
setContentView(tv);

//setContentView(R.layout.main);
}
}

4、javadoc的注释

javadoc的注释方式已经忘得差不多,需要复习一下。

/** ...... */ 注释若干行,并写入 javadoc 文档,命令行为:javadoc -d 文档存放目录 -author -version 源文件名.java,在Eclipse中Porject-> Generate Javadoc...

在/** */里面是可以使用HTML的脚本,例如<li>,<br>等等。可以在类,方法之前加入注释说明。例子如下:

/**
* 方法/类的简述.
* <p>详细说明第一行<br>
* 详细说明第二行
* @param ,用于参数描述
* @return ,描述返回之没有返回值
*/

@author 标明开发该类模块的作者
@version 标明该类模块的版本
@see 参考转向,也就是相关主题
@param 对方法中某参数的说明
@return 对方法返回值的说明
@exception 对方法可能抛出的异常进行说明
@author 作者名
@version 版本号

5、运行

菜单Run > Run,或者直接按三角图标,选择”Andriod Application“,将会启动模拟器,由于我们设置为2.1的编译环境,将会启动我们创建的VM2.1来运行。结果如下左边图,按右边返回键,可以见右图,图标等信息已将安装。

 

6、project的相关内容

我们先将例子跑起来,回过头,我们认真看看Andriod project的结构,如图所示。图中所见的结构同我们在project目录,目录有:
AndroidManifest.xml bin/ gen/ res/ assets/ default.properties proguard.cfg src/

gen/

gen/下面有一个重要的文件R.java,这个文件由系统为一些资源自动生成唯一标识的ID,想象以前的VC中也有类似的文件。R相当于resourse。

assets/

放入project所需的内容,例如图片。

res/

我们在res/中加入某些资源,例如一个图标,会在gen/下的R.java中生成一个ID,而assets下的资源将不会,需要通过路径来进行访问。res/drawable/中用于存放image,对于图标,提供h,m,l三个分辨率,以适用不同分辨率的设备。

在res/layout/下的xml文件,用于管理我们的UI,对于一个复杂的UI,如果需要改动一点,有时都不知从何开始,因此Andriod提供了Andriod XML文件。在Andriod的plugin自动生成了main.xml,我实验了一下,修改无效,只是提供信息,这是因为我们在程序用对相关组件进行了code,在本例子中如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>

xml是树状接口,首先描述Layout,然后在Layout中描述各个View和Layout,也就是layout可以嵌套。,只要是View的继承类即可,包括自己定义的。如上所示的就是我们这个例子的一个View的描述。

andriod:这是XML中的定义,说明使用xmlns:andriod作为其namespace。andriod:layout_width 由于例子中只有唯一的元素,可以占用全屏,使用fill_paren。

如果我们希望可直接通过修改XML来进行布局,而不是通过在源代码中进行code。

1) 在main.xml中的TextView中修订为:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>

保存后,我们查看R.java文件,增加了textview的ID。为了和原来的区别,我们修改text内容,在res/values/strings.xml中,修改:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, I/'m your friend!</string>
<string name="app_name">Hello,Andriod</string>
</resources>

让这些内容有效,修改HelloAndriod.java的内容,如下:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); //原来是传递一个View对象,现在是传递R.layout.main,R的定义见R.java,而R.layout.main就是对应res/layuot/main.xml。
}

我们在main.xml中增加以下的属性

android:layout_weight="2"
android:textSize="25pt"
android:gravity="center_horizontal"
android:background="#999999"
android:textColor="#aa5533"

其中gravity有以下的选项:top,bottom,left,right,center_vertical,center_horizontal,center,fill_vertical,fill_horizontal,fill,执行如图。

libs/

如果需要使用第三方的JAR,这放置在此。在这个例子中没有。

AndridoManifest.xml

Mandifest这个名字很熟悉,是我们将java程序压缩为jar包,并生成可执行文件的时候需要使用的一个文件。在这里描述应用的内容,有点向linux rpm中的*.spec文件。表明应用的名称,版本,图标位置,最低版本要求等等。在Eclipse中点击后,可以有图形话界面解释。这是文件的部分内容:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.wei.learning.helloandriod"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" />

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloAndriod"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>

在这里icon为:@drawable/icon,就是在res/drawable/中名字为icon的image。而@string/app_name,表示在res/values/strings.xml中的定义名字为app_name的字符串,在这个例子中文"Hello,Andriod"。activity这里表明的activity的执行目标的类名称。

如果我们需要给我们的应用设定用户的许可,例如允许使用GPS,可以加上<uses-permission android:name="android.permission.ACCESS_GPS /">

每一个Activity都需要在Andriodmanifest.xml文件进行注册。一个映用有多个Activity,里面的类名".HelloAndriod",注意是有一个".",它和package结合起来就是一个完整的类命。而后面<intent-filter>...</intent-filter>中有android.intent.action.MAIN,表明这是应用启动时需要启动的Activity。

参考来源:http://developer.android.com.nyud.net/resources/tutorials/hello-world.html

相关链接: 我的Android开发相关文章

</ul style="margin-left:>

更多相关文章

  1. 【Android(安卓)Debug】 Skipping insecure file ...
  2. 使用IntelliJ IDEA(androidstudio前身)开发android移动应用前的基
  3. ANDROID应用程序的混淆打包分享
  4. OpenCV4Android(安卓)之 OpenCV4Android(安卓)SDK
  5. Android(安卓)应用更新使用Bugly
  6. 关于android设备唯一区分device id的取得
  7. Android笔记2——开发前奏2工程目录介绍和两个小应用
  8. Android之Resource介绍和使用
  9. 【记录】Android(安卓)广播的发送与接收

随机推荐

  1. Android(安卓)判斷機子是否聯網和聯網方
  2. android EditText限制只能输入2位小数的
  3. android的网络访问
  4. Android中全屏无标题设置
  5. Android(安卓)异步网络请求及协调CountDo
  6. android Fragments详解【2】
  7. android中关闭返回键
  8. android 随手记 videoview循环播放网络视
  9. android notifyDataSetChanged不管用
  10. Android(安卓)生成xml文件