基础知识介绍

1.Android是Google公司发布的一款基于Linux内核,使用java语言编写应用程序的手机操作系统,现在和苹果公司的IOS、诺基亚公司的Symbian、以及诺基亚和英特尔联合推出的的Meego手机操作系统共同成为如今最流行的手机操作系统。

2.Android开发的环境准备:

(1).到Google的Android官方网站下载最新的Android开发包SDK,将其解压到目标路径。

(2).在Eclipse中安装Android开发插件ADT(可以使用在线安装方式,也可以从Google官方下载后解压到Eclipse的plugIn目录下)。

(3).在Eclipse中指定Android的SDK路径,至此开发环境搭建完毕,可以使用Eclipse开发Android应用。

3.Android应用程序的4个组成部分(基本构造块):

(1).Activity:活动,Android应用程序的基本功能单位,相当于一个界面应用程序,系统使用Activity堆栈来管理。

(2).Intent:用于从一个Activity/界面到另一个Activity/界面的切换跳转,当外部事件触发时执行的代码,如电话振铃等,通常没有用户界面,可能使用通知单。

Intent数据结构中两个重要的部分:

a.动作(action):主要内容有MAIN(程序进入点)、View、PICK、EDIT等操作。

b.数据(data):动作的目标或者动作的结果,用URI形式表示。

(3).Service:在后台运行的应用程序,它可以运行在它自己的进程,也可以运行在其他应用程序的进程上下文(context)中。其他组件可以绑定到一个服务上面,通过远程过程调用(RPC)来调用这个方法。

(4).Content Provider:用于和其他应用程序共享数据。

4.Activity的主要方法和状态:

当创建一个Android Activity时,有以下两个重要方法需要实现:

(1).onCreate(Bundle bundle):初始化Activity,设置用户界面UI等。

(2).onPause():当一个Activity停止或者结束的处理。

Activity的四个状态:

(1).active/running.

(2).paused.

(3).stopped.

(4).killed/shut down.

5.使用Bundle在Activity间传递数据:

  1. Android程序中的两种Intent:

(1).Activity Action Intents:调用程序之外Activities的intent,只有一个Activity可以处理这种Intent,如打开浏览器。

(2).Broadcast Intents:发送给多个Activity处理的Intent。

7.直接Intent和间接Intent:

(1).直接Intent:指定了component属性的Intent,通过指定具体的组件类,通知应用程序启动对应的组件。

使用setComponent(组件名);或者setClass(context, class)方法来指定Intent的组件属性。

(2).间接Intent:没有指定component属性的Intent,系统根据查找以注册在Android Manifest.xml清单文件中所有的IntentFilter及其中定义的Intent来找到匹配的Intent。

8.Intent的属性:

Intent解析主要依赖Intent的action(动作)、type(类型)、category(类别)这三个属性来进行判断:

(1).action:Intent要执行的动作。

(2).type:Intent的数据类型。

(3).category:被执行动作的附加信息。

(4).extras:附加信息,用于Intent在Activity之间传递数据。

  1. Intent Receiver和Intent Filter:

(1).Intent Receiver用于处理外部事件:

当Android应用程序需要对外部事件处理时,需要使用Broadcast Intent Receiver,需要在Android的Mainfest.xml清单文件中声明,或者使用context.registerReceiver()来注册Intent Receiver。程序并不会因为BroadcastReceiver被呼叫而被执行,而是当BroadcastReceiver被触发时系统会依据需求来执行相应的程序。

程序可以使用context.sendBroadcast()来发出自己的Intent Broadcast给其他程序。

(2). Intent Filter用于描述Activity:

当Intent 要求做某些事情时,Intent Filter被用来描述该Activity能够接收什么样的Intent,Intent Filter都会在Android的Mainfest.xml清单文件中声明。

10.Resolving Intent:

Android应用程序的画面切换是由resolving intent来实现的,正在运行的Activity可以使用start Activity(myContext)来实现启动另一个Activity。使用Resolving Intent的两个好处:

(1).让Activities可以很容易利用Intent方式去使用别的程序功能。

(2).Activities可以很容易的在任何情况下由新的Activities所取代。

11.Service的使用:

(1).方法1:

a. 启动服务:context.StartService();可以传递参数。

b. 结束服务:context.stopService();

(2).方法2:

a.启动服务:context.bindService();

b.结束服务:context.unbindService();

注意:两种方法可以混合使用。

12.两种Service使用方法的区别:

(1).使用startService()启动服务后,即使调用启动服务的进程结束了,服务仍然存在,直到有进程调用stopService停止服务,或者服务自己自杀(service.stopSelf())。

(2).使用bindService()启动服务后,服务就和调用bindService()的进程同生共死了,当调用bindService()的进程结束了,服务也就跟着结束了,期间也可以调用unbindService()结束服务。

(3).当两种方式混合使用时,比如通过startService()启动服务后,又使用了bindService(),那么只有同时使用stopService()和unbindService()才能结束该服务。

13.Service的进程特性:

(1).Android系统会尝试保留那些启动了或者绑定了服务的进程。

(2).如果服务在进程的onCreate(),onStart(),或者onDestory()方法中执行时,那么主进程将会变成一个前台进程,以确保此代码不会被停止。

(3).如果服务以及开始,那么它的主进程会就重要性而言低于所有看见进程但高于不可见进程。

(4).如果多个客户端绑定了服务,只要有一个客户端对于用户是可见的,即认为该服务是可见的。

14.Android的重要进程:

(1).前台进程:当前用户活动需要的,如在屏幕上运行的活动。

(2).可视化进程:活动是可觉察的,但是不是在前台,如暂停,如在前台对话框之后的以前活动。

(3).服务进程:处理一项服务,不直接可视(可觉察)。

(4).后台进程:处理当前不可觉察活动,如停止。可在回收内存的任何时候结束。

(5).空进程:处理没活动的应用程序组件。

15.Android应用程序生命周期:

(1).每个Android程序运行在它自己的Linux内核之上。

(2).程序不直接控制进程的生命周期。

(3).程序的生命周期由系统决定,取决于正在运行程序的重要性、可用内存等。

(4).Android应用程序组件对应用程序进程有影响。

16.Android程序的重要文件:

(1).java file:主要是应用程序逻辑。

(2).XML file:主要用于用户界面布局。

Android程序使用MVC模式,布局文件为View,Activity为controller。

17.Android常用布局对象:

在Android中views和viewgroups是应用程序用户界面的基本单位。Android应用程序界面常用有以下5种布局管理器:

(1).FrameLayou:帧布局管理器,最简单的布局管理器,指定一个空白区域在屏幕上,稍后可以填充一个对象,所有的子元素都放在屏幕的左上角,不能为子元素指定位置。

(2).LinearLayout:线性布局管理器,所有子元素水平或者垂直排列。

a.垂直列表:每行只有一个元素(垂直只有一列)。

b.水平列表:每列只有一个元素(水平只有一行)。

(3).TableLayout:表格布局管理器,列和行不显示边框线,单元格也不显示边框线,单元格不能跨列。

(4).AbsoluteLayout:绝对布局管理器,子元素可以指定显示在屏幕上的x和y坐标,圆点(0,0)为屏幕的左上角。不推荐使用,因为不同手机的屏幕大小不一致,因此在不同尺寸屏幕上应用程序的界面会不一致。

(5).RelativeLayout:相对布局管理器,可以指定子元素在屏幕上的相对位置。

18.Android应用程序读写文件:

Android对java中的IO做了简化操作,文件读写操作更简单。

作者:陈绮婧

原文链接:https://blog.csdn.net/forget323/article/details/80709512

猜你喜欢

转载自blog.csdn.net/fjnu_se/article/details/80716933