好歹也做了一年多的移动开发,其中大部分时间是做移动中间件,也有android和iphone的,android算是断断续续做了一年吧,iphone倒是就接触了一两个月的样子。尽管现在没做了,毕竟还是很喜欢的,隔了将近一年没碰这个东西了,忘的都差不多了,这里复习一下以前的android开发知识,以后再有机会做的时候能够尽快上手。
环境配置就不说了,新建项目后,项目有时候会出现一点问题,项目没有错误也会有感叹号或者红叉,我一般是这样解决的,
对于红叉:删除 C:\Documents and Settings\Administrator\.android\ 目录下的debug.keystore及ddms.cfg文件,如果没有找到,就在eclipse上的window->preferences->Android->Build->Default debug keystore下可以找到。
对于感叹号:点击工具栏project->clean清理一下,如果还不能解决就看BuildPath —> Configure Build Pah中有没有包引用错误之类的。这里不是很全,手上没有这类的错误,以后遇到再加上。
先看一个Android项目的目录:
src目录:源文件目录
gen:程序自动生成的文件,R.java文件是资源索引id,一般不需要管
res/drawable:这三个文件是程序用到的图片资源,包含三个分辨率,以自适应各种分辨率的屏幕
res/layout:布局xml文件
res/values:字符串统一管理的文件,一般在程序中用到的字符串都同意存放在这个文件,尤其是中文字符串。
AndroidMainfest.xml:组件配置文件,程序中的组件都在这里进行注册
default.properties:项目环境属性
proguard.cfg:项目混淆文件
Android项目有四个核心的组件:Activity,Service,Broadcast Receiver,ContentProvider,然后还有两个重要的东西Intent和View,Intent负责四个组件的通信,View负责程序的界面显示。下面简单的介绍一下这四个组件和Intent,View的功能:
Activity:相当于程序的屏幕,每一个Activity都是继承于Activity类,一个Activity负责显示一个View类所表示的界面,Activity类通常也是一个程序的入口,且是在AndroidManifest.xml文件中指定,下面是一个例子:
<activity android:name=".Hello" //主函数类,继承于Activity
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
主函数类Hello是一个Activity。程序启动后就启动这个主Activity。 下面是是Hello类的定义:
public class Hello extends Activity { //继承Activity
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);//显示main所表示的View类(界面)
}
}
Service:表示一个后台程序,没有界面,生命周期长。例如后台音乐播放程序
Broadcast Receviver:广播组件,可以定义一个接受手机电量的广播,等手机电量较低是就可以提示用户。
ContentProvider:每一个程序都属于不同的进程,ContentProvider就是提供不同进程的数据通信的,即不同应用程序共享数据是通过ContentProvider实现,例如短信应用需要用到通讯录应用的联系人信息。
View:Android的图形界面可以分为三层,底层是Activity,Activity上面是Window,Window上面是View,View是基本的控件,如按钮,菜单等都是View。
Intent:组件之间的信使,如从一个Activity跳转到另一个Activity就要通过Intent来实现,如其中一种跳转:
Intent intent = new Intent();
intent.setClass(AActivity.this, BActivity.class);
AActivity.this.startActivity(intent);
上面的代码就是从AActivity跳转到BActivity。
基本的东西貌似就这些,上面的都是回忆一些开发的基本东西,下章整理一下开发中记录在word的一些零碎的笔记吧。