Google Android开发入门与实战》


200711Google推出了开放的Android平台


1掀起你的盖头来初始Android

Android是基于Java并运行在Linux内核上的操作系统,这个系统是轻量级的,但是功能很全面。

“开放手机联盟”open handset alliancegoogle组建的共同开发名为Android的开放源代码的移动操作系统。

20071112日发布第一版Android SDK

20081021日,Android被宣布开放源代码。


2工欲善其事必先利其器搭建Android开发环境

JDKAndroid SDKeclipseADT插件


3清点可用资本—Android SDK介绍


4赚钱的市场—Android Market及应用发布

2008828日,Google公司透露将要推出新一代网上平台Android Market,并将其定位为开放的内容分享系统。

什么是APK文件?APKAndroid Package的缩写,即Android安装包。

Android Market要求发布的应用必须是经过签名的,生成签名文件有两种方式,一种是使用命令行方式,另一种是借助ADP插件生成签名文件。


5千里之行始于足下第一个应用Hello World

Android当中基本上所有的UI都是由View或者View的子类实现的。


6磨刀不误砍柴工—Android应用程序结构介绍

Android作为一个移动设备的开发平台,其软件层次结构包括了一个操作系统(OS)、中间件(MiddleWare)和应用程序(Application)。

应用程序、应用程序框架:Android本身提供了桌面、联系人、电话、浏览器等众多核心应用。普通开发者可以使用Android核心应用程序使用的系统API

库和运行环境:系统C库等等..

Android的核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。

一般来说Android程序主要由4部分组成:ActivityBroadcast Intent ReceiverServiceContent Provider

Activity:一般代表手机屏幕的一屏,如果把手机比作一个浏览器,那么Activity就相当于一个网页。在activity当中,我们可以添加一些View,并且可以对这些View做一些事件的处理。多个Activity之间相互跳转有可能有返回值。Activity是由Android系统进行维护的,它也有自己的生命周期,即它的一个产生、运行、销毁的一个周期。

通过Intent我们可以在多个Activity之间进行跳转。

Broadcast Intent Receiver:可以使用BroadcastReceiver来让应用对一个外部的事件做出响应。

Service:是一种程序,它可以运行很长的时间,但是它却没有用户界面。

工程目录:

src:源文件存放目录;

res:这个目录主要放置应用用到的资源文件;分3个目录进行存放。

drawable:放置应用用到的图片资源;

Layout:放置用到的布局文件;

values:放置字符串(string.xml)、颜色(colors.xml)、数组(arrays.xml);

AndroidManifest.xml:相当于应用的配置文件。在这个文件里边,必须声明应用的名称,应用所用到的ActivityService、以及receiver等。


7良好的学习开端—Android基本组件介绍

视图组件View:是Android当中最基本的UI类;

视图容器组件Viewgroup:作用就是View的容器,它负责对添加进Viewgroup的这些View进行布局;

布局组件Layout:是Viewgroup的实现类;

布局参数LayoutParams:决定ViewViewgroup中的位置;

setContentView(R.layout.main)负责当前的Activitymain.xml文件相关联。

LinearLayout:子元素按垂直或水平方向排列;

FrameLayout:好比一块在屏幕上提前预定好的空白区域;

RelativeLayout:相对布局类;

语法:

Android:id定义组件的id

Android:layout_width定义组件的宽度,wrap_content(仅仅包裹住内容)fill_parent(填充父容器)

Android:layout_height定义组件的高度

Android:background=@drawbale/blue”定义组件的背景

Android:padding=10dip”,dip的意思是依赖于设备的像素,padding表示填充,margin表示边距

Android:layout_below=@id/label”放在idlabel的组件下方

Android:layout_alignParentRight=true”和父容器的右边齐平

Android:layout_marginLeft=10dip”左边距

Android:layout_toLeftOf=@id/cancel”设置此组件在idcancel的组件的左边

Android:layout_alignTop=@id/cancel”设置此组件和idcancel组件的高度齐平

LayoutInflater:这个类用来将XML的布局文件变成一个VIew的类。

TableLayout:是一种表格式的布局;

TableRow:定义了表格布局里的一行;

添加一个Activity,在onCreate方法中关联相应的xml布局文件,在AndroidManifest.xml文件中添加Activity的申明;Activity之间的切换通过Intent来进行;

ScrollView视图组件:直接在LinearLayout外面再增加ScrollView组件即可;

@符号:这个符号提示XML文件的解析器应当对@后的名字进行解析,例如@string/button1,那么解析器会从values/string.xml里边读取button1这个变量的值。

Android应用的灵魂—IntentActivity

Intent:是一次即将操作的抽象描述;

Intent的作用有3种:

1)启动一个新的Activity并且可以携带数据;

2)通过Intent来启动一个服务(Service);

3)通过Intent来广播一个事件。

Bundle:是一个类型安全的容器,它的实现其实就是对HashMap做了一层封装。

Activity传递数据,传名值对:intent.putExtra(“activityMain”,”要传递的数据”); startActivityForResult(intent,REQUEST_CODE);

获取数据:Bundle extras = getIntent().getExtras();   if(extras != null){data = extras.getString(“activityMain”);}

startActivityForResult()和onActivityResult()可以被认为是一组异步的远程调用,可以获取新的Activity的返回值。

ListAdapterListAdapter继承于Adapter,它是ListView和其里边的数据的适配器。

ArrayAdapter:是ListAdapter的一个直接子类,它是一个数组和ListView之间的桥梁。

Android系统默认的布局方式:通过Android.R.layout.XX来进行定义。

SimpleAdapter:通过它可以让ListView当中的每一项里边的内容更加个性化,它是ArrayListListView的桥梁,ArrayList的每一项都是一个Map<String,?>类型。

Dialog类:是一切对话框的基类。


8移动信息仓库—Android的数据存储操作

桌面系统的文件是所有软件公用的,而Android的应用软件数据是该应用软件所私有的。

几种存储方式:

1SharedPreferences对象

2)文件存储

3SQLite存储:SQLiteAndroid所带的一个标准的数据库,它支持SQL语句,它是一个轻量级的嵌入式数据库。

4Content Provider暴露自己的数据,其他应用通过ContentResolver获取数据

5)网络存储


9我来“广播”你的“意图”—IntentBroadcast面对面

Intent定义:一个Intent就是一次对将要执行的操作的抽象描述。具体有3种形式:

1)通过startActivity方法来启动一个新的Activity

2)通过broadcast Intent机制可以将一个Intent发送给任何对这个Intent感兴趣的BroadcastReceiver

3)通过startService(Intent)或bindService(Intent,ServiceConnection,int)来和后台的Service进行交互。

通过sendBroadcast来广播Intent,通过注册Broadcast Receiver来监听Intent


10一切为用户服务—Service应用实例

从字面理解Service的意义是服务,它是在后台运行,不可交互的一个东西。它跟前面讲解的Activity级别差不多,但是它不能自己运行,需要通过某一个Activity或者其他Context对象来调用,如Context.startService()和Context.bindService()两种方式启动Service

Service的生命周期方法比Activity要少一些:只有onCreateonStartonDestroy

1)通过startService启动:调用者退出service不会退出

2)通过bindService启动:调用者退出service一起退出

Android系统中已经有很多自带Service了,例如常见的AlarmServiceGPS Service等。


11循序渐进开发Android应用的基本步骤

1)实现UI

2)数据操作和存储

3)实现多页面跳转

4)增加Service

5)完善细节,如AndroidManifest.xml


12 Android综合案例一 —RSS阅读器实例

RSS是一个网络站点用来和其他站点之间共享内容的一种简易方式。RSS是基于文本的格式,它是XML的一种形式。

SAX的全名是Simple API for XML,同DOM一样也是一个访问XML文档的接口。

13 Android综合案例二基于Google Map开发个人移动地图

14 Android综合案例三基于Android的豆瓣网(Web 2.0)移动客户端开发

15 Android综合案例四在线音乐播放器

16 Android综合案例五手机信息查看助手

17芝麻开门—Android底层开发和移植概述








Logo

更多推荐