Android开发教程1~3章笔记

本文围绕Android系统展开,介绍了智能移动设备操作系统,阐述了Android系统架构、XML基础及用途。还讲解了Android工程项目文件构成,如Android.jar、资源文件夹等。分析了Android应用组成,包括Activity等组件及生命周期。最后介绍了应用程序调试、发布流程和国际化方法。

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系统的总体架构

在这里插入图片描述
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 是全局应用程序描述文件,它定义了应用程序的能力和权限,以及运行方式。

<?xml version="1.0" encoding="utf-8"?>
<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 应用程序的国际化
在这里插入图片描述在这里插入图片描述
res\values-zh-rCN

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">欢迎!</string>
    <string name="local">地区:中国</string>
</resources>

res\values-en-rUS

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Welcome!</string>
    <string name="local">Local:USA</string>
</resources>

res/layout/activity_main.xml

<?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" />
    <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("地区和语言的国际化示例");
	}

}
目录 第1 掀起你的盖头来——初识Android 1.1 认识Android 1.2 Android的背景 1.2.1 Android的历史 1.2.2 Android的发展 1.3 我的Android我做主 1.3.1 开发基于Android平台的应用 1.3.2 参加Android开发者大赛 1.3.3 个人英雄主义再现——得到更多人的认可和尊重 1.3.4 获得应有的收益——AndroidMarket 1.4 真实体验——Android模拟器 1.4.1 模拟器概述 1.4.2 模拟器和真机的区别 1.4.3 模拟器使用注意事项 1.5 更上一层楼——加入Android开发社区 1.6 本小结 第2 工欲善其事 必先利其器——搭建Android开发环境 2.1 开发Android应用前的准备 2.1.1 Android开发系统要求 2.1.2 Android软件开发包 2.1.3 其他注意事项 2.2 Windows开发环境搭建 2.2.1 JDK、Eclipse、AndroidSDK软件安装 2.2.2 SDK的家在哪里——设定AndroidSDKHome 2.2.3 真的准备好了吗——开发环境验证 2.2.4 创建Android虚拟设备(AVD) 2.3 Linux一族——Ubuntu开发环境搭建 2.3.1 Java、Eclipse和ADT插件安装 2.3.2 设定AndroidSDKHome 2.4 MacOS一族——苹果开发环境搭建 2.5 本小结 第3 清点可用资本——AndroidSDK介绍 3.1 AndroidSDK基础 3.2 深入探寻AndroidSDK的密码 3.2.1 AndroidSDK目录结构 3.2.2 android.jar及内部结构 3.2.3 SDK文档及阅读技巧 3.2.4 先来热热身——AndroidSDK例子解析 3.2.5 SDK提供的工具介绍 3.3 Android典型包分析 3.3.1 开发的基石——AndroidAPI核心开发包介绍 3.3.2 拓展开发外延——Android可选API介绍 3.4 本小结 第4 赚钱的市场——AndroidMarket及应用发布 4.1 GoogleMarket产生背景与目的 4.2 体验“选货”的乐趣——在G1上体验Market的使用 4.3 Android开发活动及特色应用 4.3.1 开发应用的领域 4.3.2 AndroidMarket特色应用一览 4.4 你也可以做东家——申请Market账号 4.4.1 卖东西要先入伙——准备工作 4.4.2 入伙过程——申请 4.5 开张了——在Market上发布应用 4.5.1 发布时可能遇到的错误 4.5.2 卖东西也要签名——生成签名文件 4.5.3 打包、签名、发布应用 4.6 本小结
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值