1、 Android系统架构
A. Linux内核层:基于Linux2.6内核,为设备提供驱动。
B. 系统运行库层:1. C/C++库:为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL|ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等;2.Android运行时库:包含了Dalvik虚拟机和Java开发时用到的库。
C. 应用框架层:主要提供了构建应用程序时可能用到的各种API。
D. 应用层:所有安装在手机上的应用。
2、 Android应用的基本组件
A. Activity (活动)和view:Activity是负责与用户交互的组件。view是所有UI控件、容器控件的基类。如果需要通过某个Activity 把指定的view显示出来,调用Activity的SetContentView() 方法即可。Activity的SetThem ( int resid )方法设置窗口风格。
B. Service(服务):通常用于后台运行,不需要与用户交互。拥有独立的生命周期,用于提供后台服务和监听其他组件的运行状态。
C. BroadcastReceiver :广播消息接收器,监听的事件源是其他的组件;只需要实现自己的BroadcastReceiver子类并重写onReceive( Context context ,Intent intent)方法,即可接收广播消息。
D. ContentProvider :应用之间实现数据交换的标准组件。
E. Intent 和IntentFilter :严格说并不是组件,但是是Android应用内不同组件之间通信的载体。
3、 Android开发环境搭建
A. Android SDK、JDK
B. Eclipse
C. ADT
4、 Android应用结构分析
A. src :用于存放Java代码
B. gen:自动生成的,主要包含一个R.java文件,在项目中添加的任何资源都会生成相应的资源id,存放在这个文件中。
C. assets:存放一些随程序打包的文件,运行时程序会动态的读取这些文件。
D. bin:编译时自动产生的文件,会包含一个安装包。
E. libs:如果使用了第三方jar包,那么jar包会存放在这个文件夹下
F. res:存放各种应用使用的资源文件,所有以drawable开头的文件夹都是用来存放图片的;所有以value开头的文件都是用来存放字符串的;layout开头文件则用来存放布局文件;使用这些资源的方式有两种(以使用helloworld字符串为例):
1. 在代码中通过R.string.hello _world可以获得字符串引用
2. 在XML中通过@string/hello_world 可以获得字符串引用
引用图片资源时string替换为drawable,布局资源替换为layout
G. AndroidManifest.xml:整个项目的配置文件,四大组件都要在这里注册,还可以在这个文件中添加应用程序的权限声明
H. project.properties:通过一行代码制定了编译程序时使用的SDK版本
5、 日志工具的使用
A. 首先添加LogCat 到eclipse
B. Android中日志工具类是Log(android.util.Log)类中的几个方法如下:
1. Log.v():用于打印最琐碎意义最小的日志,对应级别verbose
2. Log.d():用于打印一些调试信息,对应级别 debug,比verbose高一级
3. Log.i():用于打印一些比较重要的数据,这些数据可以帮你分析用户行为,对应级别info,比debug高一级。
4. Log.w():用于打印警告信息,提示程序在这个地方有潜在风险,最好修复,对应级别warn,比info高一级。
5. Log.e():用于打印程序中的错误信息,对应的程序出现严重问题了,必须尽快修复,对应级别error,比warn高一级。
C. 如果你的LogCat中并没有打印出任何信息,有可能是因为你当前的设备失去焦点了。这时你只需要进入到DDMS视图,在Devices窗口中点击一下你当前的设备,打印信息就会出来了。
D. LogCat和log 配合可以实现通过级别显示日志信息的过滤器,例如选择debug,系统只会显示debug及以上级别的日志信息。