Android开发教程1~3章笔记

1.1智能移动设备及其操作系统

常见的智能移动设备操作系统有Android、Symbian、Windows Moblie、
Windows Phone、BlackBerry、iOS

Android通过提供一个开源的Linux内核为基础而构建,开放的开发环境。

1.2Android系统的体系结构

1.2.1 Android系统简介

Google公司2007年11月提出,2008年9月第一款android手机。
Android拥有完善的开发环境,如设备模拟器、调试工具、内存和性能分析工具等,应用程序框架可以方便的重用。Android系统采用了处理速度更快的Dalvik虚拟机,集成了基于WebKit引擎的浏览器以及轻量级数据库管理系统SQLite,拥有优化的图形系统和自定义的2D、3D图形库。

1.2.2 Android系统的总体架构

Android开发教程1~3章笔记_第1张图片
1.4XML基础

eXtensible Markup Language
标记语言是指在普通文本中加入一些具有特定含义的标记(tag)以对文本的内容进行标识和说明的一种文件表示方法。

xml所使用的标签是非预定义的,被设计为具有自我描述性。xml允许作者自定义标签和自己的文档结构。

xml没有任何行为。xml被设计用来结构化、存储以及传输信息,本身只是纯文本。它不能像程序一样运行,也不会有任何运行结果。它仅仅是包装在xml标签中的纯粹信息,需要另外编写控制其传输的样式表文件。传送接收和显示文档需要另外编写软件或者程序。

在xml中内容和显示是分离的。控制xml显示格式可以使用css、js、XSLT。其中XSLT
(eXtensible Stylesheet Language Transformation)是显示xml 的首选。使用xslt有两种模式,一种是在浏览器显示xml之前先将其转换为html,另一种模式是在服务器上进行xslt转换。

1.4.2 xml的用途
主要用途是各种应用程序之间进行数据传输。
xml可以共享数据
xml可以简化数据传输
xml可以简化平台的变更
xml可以使数据更有用

1.4.3 xml的文档结构
xml使用了简单的具有自我描述性的语法,采用一种有逻辑的树形结构。

2.3 Android工程项目的文件构成

src是应用程序源代码所在的文件夹,
一下是创建项目自动生成的MainActivity.java文件

package com.example.hello;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}

gen文件夹是应用程序自动生成的资源文件爱你R.java所在的文件,该文件也是必须的。
R.java文件的作用相当于一个项目字典,项目中的用户界面、字符串、图片、声音等资源都会在该类中创建其唯一ID,当项目中使用这些资源时,会通过该ID得到资源的引用。如果程序开发员变更了任何资源文件爱你的内容或属性,R.java文件爱你会随之变动并自动更行R.java类。

R.drawable.background 表示使用资源目录下的res/drawlable/background.png图片文件

2.3.3 Android.jar文件

Android.jar是支持该应用程序运行的jAR包,它同时还包括该应用程序打包APK文件时需要用到的METE-INF目录。同时还包括Android SDK架构中Android Runtime层中与Dalvik虚拟机同处一层的Android Core Library。这个Jar文件爱你是应用程序的基础。

2.3.4资源文件夹和布局文件

res/drawable 文件夹中主要存放的是一些图片格式文件
res/layout 文件夹中主要存放的是界面布局的xml文件
res/values 文件夹中包含了所有的xml格式的参数描述文件,如string.xml、color.xml、style.xml和array.xml

在android的应用程序中的用户界面有两种生成方式。可以采用xml布局文件来指定用户界面,也可以采用在Activity中书写java代码的方式来设定用户界面。通常使用前一种方法。

一下是xml布局文件的一个示例

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.hello.MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="bujuwenjianshili" />
    <LinearLayout 
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <Button android:id="@+id/btn_1"
                android:text="开始"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        <Button android:id="@+id/btn_2"
                android:text="结束"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        LinearLayout>
        
RelativeLayout>

2.3.6应用配置文件 AndroidManifest.xml

AndroidManifest.xml 是全局应用程序描述文件,它定义了应用程序的能力和权限,以及运行方式。


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.hello"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="17"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <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>
    application>

manifest>

2.3.7 default.properties 文件

定义了程序所使用的sdk版本,该文件为项目配置文件,不需要人为改动。

2.4Android应用的组成

Android应用的基本组件
Activity、Activity Manager、ContentProvider、Service、BroadcastReceiver等组成。

Activity一般含有一组用于构建用户界面的Widget控件,如按钮Button、文本框TextBox、列表List等,实现与用户的交互。一个功能完善的应用程序一般由多个Activity构成,这些Activity之间可相互跳转,可进行页面间的数据传递。

Activity Manager用于管理应用程序的生命周期。

ContentProvider是Android系统提供的一种标准的共享数据的机制。一个应用程序通过实现ContentProvider的抽象接口将自己的数据暴露出去,并且隐蔽了具体的数据存储实现,这样即实现了应用程序内部数据的保密性,又能够让其他应用程序使用这些私有数据。

Service是与Activity独立且可以保持后台运行的服务,相当于一个在后台运行的设有界面的Activity。如果用户不需要显示交互界面但却要长时间运行,就需要使用service

2.4.2 什么是Activity

Activity是Android程序的呈现层,显示可视化的用户界面,并接收用户交互所产生的界面事件。

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity{
	@Override
	protected void onCreate(Bundle savedInstanceState){
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);//设置布局,调用了res/layout/activity_main.xml中定义的界面元素
	}
}

程序启动后显示的第一个界面就是应用程序的第一个Activity。@Override表示重写父类的onCreate()方法,Bundle类型的参数保存了应用程序上次关闭时的状态,并可以通过一个Activity传给下一个Activity;
在Activity的生命周期中,只要失去了焦点(离开界面)就可能被进程终止,这时就需要这种机制,能保存当时的状态,这就是savedInstanceState的作用。

2.4.3Activity的生命周期

活动状态、暂停状态、停止状态、非活动状态

第3章 Android应用程序的调试和发布

3.1 Android应用程序的一般开发流程

1.创建工程项目
2.用XML构建基本的布局和控件
3.编写和调试Java程序
4.修改AndroidManifest.xml文件

3.2 程序调试的常用方法和调试工具
3.2.1 Java Debug
3.2.2 DDMS
3.2.3 Logcat
3.2.4 Dev Tools

3.3 应用程序的国际化
Android开发教程1~3章笔记_第2张图片Android开发教程1~3章笔记_第3张图片
res\values-zh-rCN


<resources>
    <string name="hello">欢迎!string>
    <string name="local">地区:中国string>
resources>

res\values-en-rUS


<resources>
    <string name="hello">Welcome!string>
    <string name="local">Local:USAstring>
resources>

res/layout/activity_main.xml


<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" />
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/local" />
    <ImageView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/flag"/>
LinearLayout>

src\edu\hebust\zxm\internationalexample\MainActivity.java

package edu.hebust.zxm.internationalexample;

import android.app.Activity;
import android.os.Bundle;


public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		this.setTitle("地区和语言的国际化示例");
	}

}

你可能感兴趣的:(Android基础)