llopx

能跟您分享知识,是我的荣幸

Android学习1

废话不多说,下面看如何开始一个Android项目编程。

首先先建立一个android项目,然后,步骤来了。

Step 1.在AndroidManifest.xml对参数进行初始化。

 1:  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 2:      package="com.microjobsinc.mjandroid" android:versionCode="1" 
 3:        android:versionName="1.0">
 4:    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 5:    <uses-permission android:name=
 6:        "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
 7:    <uses-permission android:name="android.permission.CALL_PHONE" />
 8:    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
 9:    <uses-permission android:name="android.permission.INTERNET" />
10:  
11:    <application android:icon="@drawable/icon2">
12:      <uses-library android:name="com.google.android.maps" />
13:      <activity android:name=".MicroJobs" android:label="@string/app_name">
14:        <intent-filter>
15:          <action android:name="android.intent.action.MAIN" />
16:          <category android:name="android.intent.category.LAUNCHER" />
17:        </intent-filter>
18:      </activity>

解释说明:

application节点(11行)里的第1个activity(13行)就是你程序的入口点。

 

package="com.microjobsinc.mjandroid"

就是程序包的名称。

 

android:versionCode

随着你程序的更新而自动的增长。

 

android:versionName

由你决定这个name是什么内容,它是一个字符串,是给用户看的,比如你可以定为“1.1.1”。

 

<uses-permission android:name=...

因为你的Application需要使用android的一些特性来完成功能,比如要连接internet,gps。。那么这里声明的就是用户的许可开关。

Android里有很多内置的许可,可以去查找“android.Manifest.permission”的文档,同时你也可以自定义许可。)文中的几个特性说明如下:

ACCESS_FINE_LOCATION:从GPS获得你的位置信息。

ACCESS_LOCATION_EXTRA_COMMANDS:所有的位置命令。

CALL_PHONE:可通电话。

ACCESS_MOCK_LOCATION:运行模拟器的时候获得一个模拟的位置。

INTERNET:连接互联网。

 

android:icon="@drawable/icon2"

drawable文件夹下面有icon2这个图片。

 

下面把注意力转到第一个活动(主活动)

1:  <activity android:name=".MicroJobs" android:label="@string/app_name">
2:  

 

首先对这个主活动定义一些属性:

android:name

活动的名称,他的全名是packageName+ActivityName,例子里的全程就是com.microjobsinc.mjandroid.MicroJobs,记住(.)不可缺少。

 

android:label

这个Lable就是当活动显示在屏幕的时候,在屏幕的顶部显示的内容。

 

然后声明一个意向过滤器(intent filter),告诉android什么时候应该运行这个活动(activity):

1:  <intent-filter>
2:    <action android:name="android.intent.action.MAIN" />
3:    <category android:name="android.intent.category.LAUNCHER" />
4:  </intent-filter>

action

比如,Android正在尝试启动一个App,于是它会先寻找一个特定的活动,这个活动一定是已经准备好解析MAIN的方法了(即是它的名称为android.intent.action.MAIN的)。

任何一个能够启动的app都需要这样一个带有action为MAIN活动。

 

category

指明category就是为了在UI上显示一个快捷方式来启动app。

 

Step 2.java文件里的初始化。

MicroJobs.java作为程序的入口,下面分析MicroJob.java代码。

1:  /**
2:  * MicroJobs
3:  */
4:  public class MicroJobs extends MapActivity { }

绝大多数的activity是要从Activity继承,本代码中从MapActivity继承是因为我们想使用android内部集成的强大的地图功能,同时也因为我们绝大部分的操作时在地图上进行的。

我们初始化的内容,需要放置在onCreate方法里,此方法将在app启动时被调用。

如下图所示:

 1:  MapView mvMap;
 2:  MicroJobsDatabase db;
 3:  MyLocationOverlay mMyLocationOverlay;
 4:  double latitude, longitude;
 5:   
 6:  /**
 7:  * Called when the activity is first created.
 8:  *
 9:  * @see com.google.android.maps.MapActivity#onCreate(android.os.Bundle)
10:  */
11:  @Override
12:  public void onCreate(Bundle savedInstanceState) {
13:  super.onCreate(savedInstanceState);
14:   
15:  setContentView(R.layout.main);

首先要注意的是,Oncreate方法接受了一个参数,其类型为Bundle.然后调用了基类的OnCreate方法。但是为什么要传个Bundle类型的数据进去?这个Bundle是什么?

 

Bundle是android用来在活动之间传送结构数据的机制,本质上就是一些key-object的对。这里的代码没有使用任何在Bundle里的资源,但是仍然使用了基类的onCreate.

 

下一行,setContentView告诉android我们想在屏幕上展示R.layout.main.java的信息。这个“R”是自动生成的。

 

Technorati 标签: android,教程

posted on 2010-03-30 18:32  llopx  阅读(1219)  评论(0编辑  收藏  举报

导航