资源描述
1.Android的优缺点Android的优势主要体现在以下几个方面:(1)系统的开放性和免费性。 (2)移动互联网的发展。 (3)相关厂商的大力支持。但是Android也不是个完美的系统,同样面临着以下挑战。(1)用户体验不致,安全性有待提高。(2)技术的进一步完善。(3)开放手机联盟模式的挑战(4)其他技术的竞争2.Android平台的技术架构Android平台采用了软件栈,又名软件叠层的架构,由低到高分为四部分:(1)Linux内核层:该层是基础,包含各种驱动,并提供操作系统的基本功能。(2)中间层:该层包括程序库(Libraries)和Android运行时环境。(3)应用程序框架:该层是编写核心应用所使用的API框架,开发者可以使用这些框架来开发自己的应用,但必须遵守该框架的开发原则。(4)应用层:该层是各种应用软件,包括通话、短信、日历、地图、浏览器等核心应用程序,这些应用程序都是使用Java编写的。3Android应用程序构成一个Android应用程序通常是由以下4个组件构成的:(1)活动(Activity)活动类将会显示由视图控件组成的用户接口,并对事件做出响应。(2)意图(Intent) 意图(Intent)用来描述应用程序的功能。它是利用消息实现应用程序间的交互机制,并能够在程序运行的过程中连接两个不同的组件。(3)服务(Service)服务(Service)是Arndoid应用程序中具有较长的生命周期但是没有用户界面的程序。它在后台运行,并且可以与其他程序进行交互。能独立运行,需要通过某一个Activity来调用.(4)内容提供器(ContentProvider)Android应用程序可以使用文件SQLite数据库来存储数据。内容提供器(ContentPovider)提供了一种多应用间数据共享的方式。当某个应用程序的数据需要与其他应用程序共享时,内容提供器就会发挥作用。4.项目的根目录中包含了一些自动生成的文件夹和文件,其主要功能及作用:(1)src文件夹:用来存放项目中所有的Java源文件。(2)gen文件夹:包含一个自动生成的R.java文件,该文件是只读模式的,不能手动更改。 (3)android.jar文件:包含构建应用程序所需的AndroidSDK库。(4)assets文件夹:用来存放应用程序需要使用的视频和音频文件,直接打包到应用程序中不会被编译。(5)libs文件夹:可以将开发用到的第三方JAR包复制到此文件夹,Eelipse会将此文件夹中的所有JAR包自动添加到项目中。(6)res文件夹:该文件夹用于存放项目中的资源文件,并将其以二进制文件的形式编译进应用程序中。 5. Activity具有生命周期,在生命周期的过程中共有四种状态:(1)激活或者运行状态:此时Activity运行在屏幕的前台。(2)暂停状态:此时Activity 失去了焦点但是仍然对用户可见,例如在该Activity上遮挡了一个透明的或者非全屏的Activity。(3)停止状态:此时Activity被其他Activity完全覆盖。(4)终止状态:此时Activity将会被系统清理出内存。6.Activity类中的方法功能 7.Activity的生命周期还可以根据不同的标准分为完整生命周期、可见生命周期和前台生命周期:(1)完整生命期:从Activity最初调用onCreate()方法到最终调用onDestroy()方法的这个过程称为完整生命周期。Activity会在onCreate()方法中进行所有全局状态的设置,在onDestroy()方法中释放其占据的所有资源。(2)可见生命周期:从Activity调用onStart()方法开始,到调用对应的onStop()方法为止的这个过程称为可见生命周期。在这段时间内,用户可以在屏幕上看到这个Activity,尽管并不一定是在前台显示,也不一定可以与其交互。在这两个方法之间,开发者可以维护Activity在显示时所需的资源。因为每当Activity显示或者隐藏时都会调用相应的方法,所以onStart()方法和onStop()方法在整个生命周期中可以多次被调用。(3)前台生命周期:从Activity调用onResume()方法开始,到调用对应的onPause()方法为止的这个过程称为前台生命周期,这段时间当前的Activity处于其他所有Activity的前面,且可以与用户交互。 8.Log类常用的静态方法9.Android中的资源使用Android中的资源是指非代码部分,是代码中使用的外部文件,如图片音频、动画、字符串等,并作为应用程序的一部分,这些文件将被编译到应用程序 10.Android中的界面元素主要由以下几个部分构成:(1)视图组件(View)。(2)视图容器(ViewGroup)。(3)布局管理(Layout)。11.事件处理机制Android系统中引用Java的事件处理机制,包括事件、事件源和事件监听器三个事件模型:(1)事件(Event):是一个描述事件源状态改变的对象,事件不是通过new运算符创建的,而是由用户操作触发的。事件可以是键盘事件、触摸事件等。事件一般作为事件处理方法的参数,以便从中获取事件的相关信息。(2)事件源(Event Source):产生事件的对象,事件源通常是UI组件,例如单击按钮,则按钮就是事件源。(3)事件监听器(Event Listener):当事件产生时,事件监听器用于对该事件进行响应和处理。监听器需要实现监听接口中定义的事件处理方法。 12.布局管理(1)线性布局(LinearLayout)(2)相对布局(RelativeLayout)(3)表格布局(TableLayout)(4)绝对布局(AbsoluteLayout)(5)框架布局(FrameLayout)(6)网格布局(GridLayout)13.创建Toast的步骤如下:(1)调用Toast的静态方法makeText()创建一个指定文本和时长的提示信息。(2)调用Toast的show()方法显示提示信息。14.创建提示对话框的步骤如下:(1)获得AlertDialog的静态内部类Builder对象,由该类来创建对话框。(2)通过Builder对象设置对话框的标题、按钮以及按钮将要响应的事件。(3)调用Builder的Create()方法创建对话框。(4)调用Builder的show()方法显示对话框。15Widget组件通用属性 16.四种视图(1)图片视图(ImageView) (2)滚动视图(ScrollView)(3)网格视图(GridView) (4)列表视图(ListView)17. Android中菜单分为两种类型:(1)选项菜单(OptionMenu) (2)上下文菜单(ContextMenu)18.创建选项菜单需要以下几个步骤:(1)覆盖Activity的onCreateOptionsMenu()方法,当第一次打开菜单时该方法被自动调用。 (2)调用Menu的add()方法添加菜单项(MenuItem)。(3)当菜单项被选择时覆盖Activity的onOptionsItemSelected()方法响应事件。19创建上下文菜单需要如下步骤:(1)重写Activity的onCreateContextMenu()方法,调用Menu的add()方法添加菜单项(Menultem)。(2)重写onContextItemSelected()方法,响应菜单单击事件。(3)在Activity的onCreate()方法中,调用registerForContextMenu()方法,为视图注册上下文菜单。20.ActionBar的主要功能是标识用户当前操作页面的位置,并且提供额外的操作按钮方便用户操作和界面导航。其好处是它能够提供全局统一的UI界面,并且自动适应各种不同大小的屏幕,从而使用户在体验任意一款使用了ActionBar的软件时,都能够快速习惯使用。如图3-23所示为ActionBar的基本样式。其中:(1)标签1所示为ActionBar的图标和标识在当前页面的位置。(2)标签2所示为ActionButton,一般将常用的功能放到这里。(3)标签3所示为OverFlow Button,应用的选项菜单,如果ActionBar没有足够的空间,Action Button也将自动添加到这里。(4)标签4所示为Tabs ActionBar,为应用提供了统一Tabs,类似于选项卡样式,便于页面切换。 21.Intent属性及对应方法22Intent启动不同组件的方法23.实现广播和接收Intent机制包含四个步骤:(1)注册相应的广播接收器(Broadcast Receiver)。广播接收器是接收广播消息并对消息作出反应的组件。(2)发送广播。该过程将消息内容和用于过滤的信息封装起来,并广播给广播接收器。(3)满足条件的广播接收器执行接收方法onReceiver()。(4)销毁广播接收器。 24.Service具有以下特点:(1)没有用户界面,不与用户交互。(2)长时间运行,不占程序控制权。(3)比Activity的优先级高,不会轻易被Android 系统终止,即使Service被系统纹上,在系统资源恢复后Service仍将自动运行。(4)用于进程间通信,解决两个不同进程之间的调用和通信问题。25.创建一个Service类时,需要继承android.app.Service类,并且重写其onCreate()、onStart()以及onDestroy()等方法。这些方法在Service生命周期中的不同阶段被调用:(1)onCreate()方法用来初始化Service,标志着Service生命周期的开始。(2)onStart()方法用来启动一个Service,代表Service进入了运行的状态。(3)onDestroy()方法用来释放Service占用的资源,标志着Service生命周期的结束。26.Service类创建后,可以通过两种方式启动Service:(1)启动方式:使用Context.startService()方法启动Service,调用者与Service之间没有关联,即使调用者退出,Service服务依然运行。(2)绑定方式:通过Context.bindService()启动Service,调用者与Service之间绑定在一起,调用者一旦退出,Service服务也就终止。27.程序可被理解为数据输入、输出以及数据处理的过程,程序执行中通常需读取处理数据并且将处理后的结果存放起来。存放数据需要使用数据存储机制,Android提供了四种数据存储方式: (1)使用Preference存储数据: Preference采用“键值”对方式组织和管理数据,其数据存储在XML文件中。相对于其他方式,它是一个轻量级的存储机制。该方式实现比较简单,适合简单数据的存储。(2)使用File存储数据:文件存储的特点介于Preference与SQLite之间,比Preference方式使适合存储较大的数据;从存储结构化来看,这种方式不同于SQLite,不适合结构化的数据存储。(3)使用SQLite存储数据:SQLite相对于MySQL数据库来说,是一个轻量级的数据库,适合移动设备中复杂数据的存储,Android已经集成了SQLite数据库,通过这种方式能够很容易地对数据进行增加、插入、删除、更新等操作。相比Preference和文件存储,使用SQLite较为复杂。(4)使用网络存储数据:将数据通过java.net.*和android.net.*包中的类存储于网络,这将在后续的网络通信中涉及。28.使用SharedPreferences存储数据比较简单,步骤如下: (1)首先使用getSharedPreferences()得到SharedPreferences对象。调用getSharedPreferences()方法时,需要指定如下两个参数: 一是存储数据的XML文件名,这个XML文件存储在“/data/data/包名/shared_prefs/”目录下,其文件名由该参数指定,注意文件名不需要指定后缀(.xml),系统会在该文件名之后自动添加xml后缀并创建之;二是操作模式,其取值有三种: MODE_WORLD_READABLE(可读)、MODE WORLD_ WRITEABLE(可写)和MODE_ PRIVATE(私有)。(2)使用SharedPreferences.Editor的putXXX()方法保存数据。(3)使用SharedPreferences.Editor的commit()方法将本次操作的数据写到XML文件中。 (4)使用SharedPreferences的getXXX()方法获取相应数据。30.ContentProvider(内容提供器)是所有应用程序之间数据存储和检索的一个桥梁,其作用是使各个应用程序之间能共享数据。31.Android中常用的网络编程方式如下:(1)针对TCP/IP协议的Socket和ServerSocket。(2)针对HTTP协议的网络编程,如HttpURLConnection和HttpClient.(3)直接使用WebKit访问网络。32.一般情况下Socket类的工作步骤如下:(1)根据指定地址和端口创建一个Socket对象。(2)调用getInputStream()方法或getOutputStream()方法打开连接到Socket的输入出流。(3)客户端与服务器根据一定的协议交互,直到关闭连接。(4)关闭客户端的Socket。29.File存储数据33.一般情况下,ServerSocket类的工作步骤如下:(1)根据指定端口创建一个新的ServerSocket对象。(2)调用ServerSocket的accept()方法,在指定的端口监听到来的连接。accept()直处于阻塞状态,直到有客户端试图建立连接,这时accept()方法返回连接客户端与服务器的Socket对象。(3)调用getInputStream()方法或getOutputStream()方法建立与客户端交互的输入/输出流。(4)服务器与客户端根据定的协议交互,直到关闭连接。(5)关闭服务器端的Socket。(6)回到第2步,继续监听下一次的连接。34.在Android中使用HTTP进行网络通信有以下两种:(1) HttpURLConnection。 (2)Apache HTTP客户端组件HttpClient。35.Android平台中WebKit引擎可分为Java引擎库和WebCore引擎库两个部分:(1)Java引擎使用JavaScript实现,该引擎负责与Android应用程序进行通信;(2)WebCore引擎库负责处理实际的网页生成与版面元素。36.WebView具有以下几个优点:1.功能强大,支持CSS、JavaScript和HTML,并能很好地融入布局,使页面更加美观。(2)能够对浏览器控件进行详细的设置,例如字体、背景颜色、滚动条样式。(3)能够捕捉到所有浏览器操作,例如单击、打开或关闭URL。37. SensorEventListener是传感器监听接口,包括以下两个方法:(1) onSensorChanged(SensorEvent event)方法:监控传感器值的改变,该方法的参数是一个SensorEvent对象,该对象具有sensor(传感器对象)、accuracy(精 确度)、values( 新值)、timestamp(事件)4 个描述传感器事件的属性。(2) onAccuracyChanged(Sensor sensor,int accuracy)方法: 响应传感器精准度的变化。该方法具有两个参数:第1个参数表示传感器;第2个参数表示传感器精准度的反馈值。38.百度地图Android SDK提供的服务主要有:(1)地图:提供地图(2D、3D)的展示和缩放、平移、旋转、改变视角等地图操作。(2)地理编码:提供地理坐标和地址之间相互转换的能力。(3)线路规划:支持公交信息查询、公交换乘查询、驾车线路规划和步行路径检索。(4)覆盖物:提供多种地图覆盖物(自定义标注、几何图形、文字绘制、地形图图层、热力图图层等),满足开发者的各种需求。(5)定位:采用多种定位模式,使用定位SDK获取位置信息,使用地图SDK我的心置图层进行位置展示。(6)导航:支持调启百度地图导航和Web导航来满足用户对导航功能的需求。除此之外,还有POI检索、LBS云检索、离线地图和其他功能。
展开阅读全文