Android 平台个人笔记

在过一段时间Android就会推出2.2版本,据说支持多任务了,希望能赶上Apple的Iphone os4.0.
现在的Android支持Java和C/C++两种语言,后者要用到NDK,方便开发者编写应用中性能相对重要的那一部分。里面会有一些native library,如OpenGL ES2.0用于编写性能要求高的游戏应用。但主要还是用Java来完成。以下来自www.5billion.com.cn的入门视频教程
Android平台架构:

应用程序构成:

应用程序交互:

在Android中除了引擎API都是应用,应用建在API之上,而且所有的应用都是平等的,因此可以用自己定制的应用来替换系统自带的一些应用,如拨号盘的设计。
开发中所用的工具都在D:\android-sdk-windows\tools\目录下
SDK目录为:D:\android-sdk-windows\platforms\android-2.1_r01-windows 可以直接下载sdk包解压到目录即可
文档目录:D:\android-sdk-windows\docs
使用ADT开发的目录说明:
assets: 应用打包文件
R.java 关联资源文件
--res
--drawable 图标,图像等资源
--layout 布局,UI main.xml
--values 字符串,颜色文件
AndroidManifest.xml应用描述文件
classes.dex 等价于Java中的.class文件
.apk 相当于Java中的jar包
@string/hello 说明引用strings.xml中定义的名为hello的字符串
Android中使用xml文件来控制UI而不是用Java包来生成,这样把具体的算法和视图分开类似于MVC
main.xml中进行UI设计
<?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:gravity="center_horizontal"
android:text="@string/txt_a"
/>
<TextView 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="@string/love"
/>  
<Button
android:id="@+id/flag_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
</LinearLayout>
字符串常量的定义strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="love">I love who?</string>
<string name="txt_a">text_a</string>
<string name="app_name">iLove</string>
<string name="dialog_title">No Localisation</string>
<string name="dialog_text">This dialog box"'"s strings are not localised. For every locale, the text here will come from values/strings.xml.</string>
</resources>
主程序文件
package aquar.ilove;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class Love extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// assign flag.png to the button, loading correct flag image for current locale
Button b;
(b = (Button)findViewById(R.id.flag_button)).setBackgroundDrawable
(this.getResources().getDrawable(R.drawable.flag));

// build dialog box to display when user clicks the flag
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(R.string.dialog_text)
.setCancelable(false)
.setTitle(R.string.dialog_title)
.setPositiveButton("Done", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
final AlertDialog alert = builder.create();

// set click listener on the flag to show the dialog box 
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
alert.show();
}
});
}
}

posted @ 2010-05-02 23:24  莫忆往西  阅读(157)  评论(0编辑  收藏  举报