1 系统架构
(1)Linux内核 (2)中间件(核心库和Dalvik虚拟机) (3)应用程序框架(5个部分) (4)应用程序
2 android类
android.app :提供高层的程序模型、提供基本的运行环境
android.content :包含各种的对设备上的数据进行访问和发布的类
android.database :通过内容提供者浏览和操作数据库
android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.
android.location :定位和相关服务的类
android.media :提供一些类管理多种音频、视频的媒体接口
android.net :提供帮助网络访问的类,超过通常的java.net.* 接口
android.os :提供了系统服务、消息传输、IPC 机制
android.opengl :提供OpenGL 的工具
android.provider :提供类访问Android 的内容提供者
android.telephony :提供与拨打电话相关的API 交互
android.view :提供基础的用户界面接口框架
android.util :涉及工具性的方法,例如时间日期的操作
android.webkit :默认浏览器操作接口
android.widget :包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用
3 代码目录
src:java代码
gen/R.java 由ADT自动生成,R文件负责调用应用程序中的非代码资源。
res/layout 布局文件
res/drawable 图片
res/values/string.xml 字符串资源
res/values/attrs.xml 自定义属性资源
res/menu 菜单
AndroidManifest.xml 该文件向Android操作系统描述了,本程序所包括的组件,所实现的功能,能处理的数据,要请求的资源等等。
4 布局
FrameLayout:都将固定在屏幕的左上角,不能指定位置,但允许有多个显示对象,只是后一个会直接覆盖在前一个之上显示,会把前面的组件部分或全部挡住。
LinearLayout:里面可以放多个控件,但是一行只能放一个控件
TableLayout:这个要和TableRow配合使用,很像html里面的table
AbsoluteLayout:里面可以放多个控件,并且可以自己定义控件的x,y的位置
RelativeLayout:里面可以放多个控件,不过控件的位置都是相对位置
下面介绍一下RelativeLayout用到的一些重要的属性:
第一类:属性值为true或false
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物
第二类:属性值必须为id的引用名“@id/id-name”
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
第三类:属性值为具体的像素值,如30dip,40px
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离
5 UI
ListView
GridView
TabHost
Spinner(下拉框)
Menu
AlertDialog,ProgressDialog,DatePickerDialog,TimerPickerDialog
Toast
TextView,EditText,CheckedTextView,AutoCompleteTextView (支持自动完成的可编辑文本控件),MultiAutoCompleteTextView
Button,ToggleButton(双状态按钮),CompoundButton,CheckBox,RidioButton
SeekBar(可拖动的进度条),ProgressBar(进度条),RatingBar(评分控件)
DatePicker,TimePicker,DigitalClock,Chronometer(计时器)
ImageButton,ImageSwitcher,ImageView
ScrollView(滚动条)
高级部分:
MediaController,VideoView,WebView,MapView,Gallery
ZoomControls 放大/缩小按钮控件
6 基本组件:
Activity,Intent,Service,BroadCastReceiver,ContentProvider
7 底层应用的调用
通讯:短信,电话,通讯录,
多媒体:音乐,视频,图片,Camera
地图,蓝牙,GPS,传感器,数据存储
8 android中的单位
dip : device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,
px : pixels(像素). 不同设备显示效果相同
pt : point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
sp : scaled pixels(放大像素). 主要用于字体显示best for textsize。
dp是与密度无关,sp 与密度和字体缩放度无关的像素