一.Android应用的基本组件介绍:


1.Activity是Android应用中负责与用户交互的组件,为Android应用提供了可视化用户界面。
2.Activity只能通过setContentView(View)来显示指定组件。
3.View组件是所有UI控件、容器控件的基类,View组件就是Android应用中用户实实在在看到的部分。
4.View组件需要放到【容器组件】中,或者使用Activity将它显示出来。
5.setContentView()方法可接受一个【View对象】作为参数,也可接受一个布局管理资源的ID作为参数。
6.实际上Activity是Window的容器,Activity包含一个getWindow()方法,该方法返回该Activity所包含的窗口。
如果应用程序不调用Activity的setContentView()来设置该窗口显示的内容,那么该程序将显示一个空窗口。
7.Activity包含了一个setTheme(int resid)方法来设置其窗口的风格,例如窗口不显示标题、以对话框形式显示窗口,都可通过该方法来实现。


8.Service与Activity的地位是并列的,它也代表一个单独的Android组件,通常位于后台运行。
9.Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。


10.从代码实现角度来看,BroadcastReceiver非常类似于事件编程中的监听器。
与普通事件监听器不同的是:普通事件监听器监听的事件源是程序中的对象;而BroadcastReceiver监听的事件源是Android应用中的其他组件。

11.多个应用程序之间进行实时的数据交换,Android系统为这种跨应用的数据交换提供了一个标准:ContentProvider。
12.当用户实现自己的ContentProvider时,需要实现insert(向ContentProvider插入数据)、delete(删除ContentProvider中指定数据)、update(更新ContentProvider中指定数据)、query(从ContentProvider查询数据)抽象方法。
13.通常与ContentProvider结合使用的是ContentResolver,一个应用程序使用ContentProvider暴露自己的数据,而另一个应用程序则通过ContentResolver来访问数据。


14.Activity、Service、BroadcastReceiver三种组件之间的通信都以Intent作为载体。
15.Intent封装了当前组件需要启动或触发的目标组件的大量信息。
16.显式Intent:显式Intent明确指定需要启动或者触发的组件的名称。
隐式Intent:隐式Intent只是指定需要启动或者触发的组件应满足怎样的条件。

17.被调用组件可通过IntentFilter来生命自己所满足的条件。



三.事件处理:



1.两套事件处理机制 :基于回调的事件处理和基于监听器的事件处理。
【基于监听器的事件处理:
2.事件响应的动作实际上就是一系列程序语句,通常以方法的形式组织起来,这些方法也被称为事件处理器(Event Handler)。
3.当用户按下一个按钮或者单击某个菜单项时,这些动作就会激发一个相应的事件,
该事件就会触发事件源上注册的事件监听器(特殊的Java对象),事件监听器调用对应的事件处理器(事件监听器里的实例方法)来做出相应的响应。
4.每个组件均可针对特定的事件指定一个事件监听器,每个事件监听器也可监听一个或多个事件源。
5.普通java程序里的方法由程序主动调用的,事件处理中的事件处理器方法是由系统负责调用的。】
【基于回调的事件处理:
6.当用户在GUI组件上激发某个事件时,组件自己特定的方法将会负责处理该事件。
事件源和事件监听器是统一的,当事件发生特定事件之后 ,该事件还是由事件源本身负责处理。
7.boolean类型的返回值用于标识该处理方法是否能完全处理该事件:
如果处理事件的回调方法返回true,标明该处理方法已完全处理该事件,该事件不会传播出去。
如果处理事件的回调方法返回false,标明该处理方法并未完全处理该事件,该事件会传播出去。
8.某组件上所放生的事情不仅激发该组件上的回调方法,也会触发该组件所在Activity的回调用法————只要该组件没有完全处理该事件。
9.当该组件上发生某个按键被按下的事件时,Android系统最先触发的应该是该按键上绑定的事件监听器,接着才触发该组件提供的事件回调方法。
10.通过为View提供事件处理的回调方法,可以很好地把事件处理方法封装在该View内部。】


11.Configuration类专门用于描述手机设备上的配置信息,这些配置信息包括用户特定的配置项,也包括系统的动态设备配置。
12.如果程序需要监听系统设置的更改,则可以考虑重写Activity的onConfigurationChanged(Configuration newConfig)方法,该方法是一个基于回调的事件处理方法。


13.Android的消息传递机制是另一种形式的“事件处理”,这种机制主要是为了解决Android应用的多线程问题。
14.Handler类的主要作用有两个:在新启动的线程中发送消息;在主线程中获处理消息。
Handler包含如下方法用于发送、处理消息:

          void handleMessage(Message msg):处理消息的方法。该方法通常用于被重写。
		  final boolean hasMessage(int What):检查消息队列中是否包含what属性为指定值的消息。
		  final boolean hasMessage(int What, Object object):检查消息队列中是否包含what属性为指定值且object属性为指定对象的消息。
		  多个重载的Message obtainMessage():获取消息。
		  sendEmptyMessage(int waht):发送空消息。
		  final boolean sendEmptyMessageDelayed(int what, long delayMillis):指定多少毫秒之后发送空消息。
		  final boolean sendMessage(Message msg):立即发送消息。
          final boolean sendMessageDelayed(Message msg, long delayMillis):指定多少毫秒之后发送消息。
15.TimerTask对象的本质就是启动一条新线程,handleMessage(Message msg)方法位于主线程。



十六、GPS应用开发:



1.GPS定位系统由三部分组成,即由GPS卫星组成的空间部分,若干地面站组成的控制部分和普通用户手中的接收机(硬件支持GPS功能)这三个部分。
2.Android为支持GPS提供了LocationManager,通过LocationManager类及其他几个辅助类,所有GPS定位相关的服务、对象都将由该类的对象来产生。
3.掌握LocationManager、LocationProvider与LocationListener等API的功能和用法,就可以通过它们来监听、获取android系统中的GPS定位信息。
4.Location:它是一个代表位置信息的抽象类,提供了多种方法获取定位信息。
5.获取GPS定位信息的通用步骤为:
1.获取系统的LocationManager对象
2.使用LocationManager,通过指定LocationProvider来获取定位信息,定位信息由Location对象来表示。
3.从Location对象中获取定位信息。
6.LocationManager提供了一个addProximityAlert(...)方法,该方法用于添加一个临近警告。



十七、使用Google Map服务:



1、Google提供了大量的在线服务,比如Google Map、Google地球、Google街景、Google天气预报等。
2.把上一章获得的GPS信息与本章的Map应用结合起来,可以非常方便地开发出定位、导航等应用程序。

3.调用Google Map的准备:
1.Android系统默认并不支持调用Google Map,需要获取Map API Key。
2.Android SDK默认并不支持Google Map API,为了得到支持Google Map的SDK,必须为Android SDK增加相应的插件。
4.为了在Android平台上调用Google Map服务,Google Map插件提供了一个MapView。
5.MapView的getController()方法会返回该MapView所关联的MapController对象,MapController可对该MapView进行控制,比如控制地图定位到指定位置或控制地图放大、缩小等。
6.在Android应用中调用Google Map服务主要依赖于MapView、MapController、GeoPoint这三个API来开发Android的Map应用。
7.根据经度、纬度在Google Map上定位的步骤如下:
1.获取MapView对应的MapController对象。
2.根据程序获取的经度、纬度值创建GeoPoint对象。
3.调用MapView所关联的MapController对象的animateTo(GeoPoint point)方法定位到指定位置。
4.必须继承MapActivity
8.通过Overlay在Google Map的指定地理位置绘制图片需要如下三步:
1.获取MapView上屏幕坐标与经纬度坐标之间的投影关系。
2.调用Projection的toPixels方法把经纬度坐标转换为屏幕坐标。
3.调用Canvas的drawBitmap方法在屏幕的指定位置绘制图片。
9.把前面介绍的GPS定位与这里的Google Map结合起来,可以非常方便地开发出GPS导航应用。
10.根据地址定位:结合Android的地址解析服务...

更多相关文章

  1. E/JavaBinder:FAILED BINDER TRANSACTION错误解决+RadioGroup调用
  2. 制作动态表格(最好的方法)
  3. Android开发笔记——改变字体颜色的三种方法
  4. Android 自定义控件高度设置onMeasure方法
  5. Android开发一些实用的类、方法及接口(新手向)
  6. android开发中调用系统中分享功能的方法
  7. 有关WebView的一些使用方法
  8. Android 修改spinner 字体颜色 样式的方法
  9. android里通过什么什么事件可以拿到由于click后的EditText的光标

随机推荐

  1. c语言标识符有哪些
  2. C语言中printf,sprintf和fprintf的区别是
  3. Ruby如何生成随机数
  4. 为什么安全编码标准很重要
  5. 如何编写C程序?C程序的基本编写规则
  6. 什么是C#接口
  7. c语言中什么是转义字符
  8. c++检查两个二进制搜索树是否相同
  9. 什么是Ruby
  10. .NET是什么