-
.
.
第一章
Android
入门基础
1
、教学要求
?
了解通信技术,包括
1G
、
2G
、
3G
、
4G
技术。
?
掌握开发环境的搭建,学会
Android
Studio
搭建开发环境。
?
掌握
An
droid
程序的开发,并能够手动开发
HelloWorld
程序。
2
、通信技术
?
第一代通信技术(
1G
)
:
是指最初的模拟信号
、仅限语音的蜂窝标准。类似于简单的无
线电台,通话锁定在固定频率上,不安全。
p>
?
第二代通信
技术(
2G
)
:
是指第
2
代移动通信技术,代表为
G
SM
,以数字语音传输技术
为核心。具有接收数据的功能,信号
和通话质量好,技术实现简单等特点。
?
第三代通信技术(
3G
)
:
是指将无线通信与国
际互联网等多媒体通信结合的新一代移动
通信系统。声音和数据的传输速度有了较大的提
升。
?
第
四代通信技术(
4G
)
:
又称
IMT-
Advanced
技术,它包括了
TD-LTE
和
FDD-LTE
。速度
非常快,可传输高质量视频和图像。
IMT--
International
Mobile
Telecommunications
Advanced(
高级国际移动通信
)
3
、什么是
Android
操作系统
< br>
Android
操作系统最初是由安迪·罗宾(
Andy Rubin
)开发出的,
2005
年被
Google
收
< br>购,并于
2007
年
11
月
5
日正式向外界展示了这款系统。
Android
是一款符合环保概念的移
动操作
系统,轻薄短小,功能强大。是第一个真正为手机打造的开放性系统。
2008
年
9
月发布
Android
第
1
个
版本
Android1.1
。
Andr
oid
系统一经推出,版本升级
非常快,几乎每隔半年就有一个
新的版本发布。
4
、
Android
操作系统的体系结构
..
..
.
.
6
、
p>
Android
的虚拟机
Dalvik
是
Google
公司自己设计用于
Android
平台的虚拟机,
它可以简单的完成进程隔
离和线程管理,并且可以提高存的使用效率。
Java
虚拟机
与
Android
虚拟机的区别
p>
Java
虚拟机是基于栈的架构,在连续存空间上,读取和存入不方
便。
Dalvik
虚拟机是基于寄存
器的架构,缓存在
CPU
上,存取速度要快的多。它可以简单<
/p>
的完成进程隔离和线程管理,并且可以提高存的使用效率。
p>
说明:
Android
的
< br>Dalvik
虚拟机默认给每一个应用程序分配
16MB
的存,如果
Android
加载的资源
超过这个存,会抛出
OutofMemoryError
异常。
6
、
And
roid
的开发平台
(
1
)
Android studio
(
2
)
DDMS
全称
Dalvik Debug Monitor Service
,它是
Android
开发环境中
Dalvik
虚
拟机调试监控服务。
DDMS
作为
IDE
、
p>
emultor
、真机之间的桥梁,将捕捉到终端的
ID
通过
ADB
建立调试桥,
从而实现发送指令到测试终端的目的。
(
3
)
Android
工程的目录结
构
(
4
)<
/p>
Android
程序打包过程
7
、
Android
的
程序结构
第二章
Android
UI
开发
1
、教学要求
?
?
?
?
?
掌握相对布局、线性布局、帧布局的使用。
了解表格布局、网格布局、绝对布局的使用。
学会使用样式和主题,创建不同风格的布局。
学会使用单元测试
Junit
测试程序。
学会使用
LogCat
快速定位日志信息。
2
、
UI
概述
?
在
And
roid
应用中,
UI
(
User
Interface
)界面是人与手机之
间数据传递、交互信息的
重要媒介和对话接口。
Android
程序开发最重要的一个环节就是界面处理,界面的美观
度直接影
响用户的第一印象,因此,开发一个整齐、美观的界面是至关重要的。
?
Android
< br>应用的界面是由
View
和
Vi
ewGroup
对象构建而成的。
View
类是
Android
系统
平台上用
户界面表示的基本单元,
View
的一些子类被统称为
Widgets
(工具)
,它们提
供了诸如文本输入框和按钮之类的
UI
对象的完整实
现。
..
..
.
.
?
ViewGroup
是
View
的一个扩展,它可以容纳多个
View
,通过
ViewGroup
类可以创建有
联系的子
View
组成的复合控件。
ViewGroup
< br>ViewGroup
View
View
< br>View
View
View
<
/p>
3
、
Android
界面的布局
?
在
Android
应用程序中,界面是通过布局文件设
定的。
?
布局文件采用
XML
格式,
每个应用程
序默认包含一个主界面布局文件,
该文件位于项目
的“
res/layout
”目录中。
?
通过
an
droid:layout_width
和
android:l
ayout_height
属性来指定
Layout
和空间的宽
和高。
?
match_parent:
p>
表示强制扩展视图以显示全部容,从而填充布局单元尽可能多的空
间
。
?
w
rap_content:
表示强制性地扩展视图以显示全部容,
以
wrap_content
为例,
设置
该属性将完整显示其部文本。相当于
AutoSize
p>
,控件会随着容增大或缩小。
?
orientation
?
gravity
?
layout_gravity
?
padding
?
app
的
默
认
布
局
p>
文
件
会
在
MainActivity
中
的
OnCreate()
方
法
中
,
通
过
代
p>
码
setContentView()
将<
/p>
Activity
加载到
View
对象中。
当运行程序时,
才能在界面上看到<
/p>
编写好的布局。
?
setContentView(
)
的参数为
.
布局资源名称。
?
布局文件的添
加,主要在
Layout
文件夹上点右键,以此选择
New->Android XML File,
在弹出的窗口中选择相应
的布局,并填写文件名称即可。
4
、
Android
中的布局的种类
LinearLayout
线性布局有两种方式指定控件位置
,
一种是水平方向,
一种是竖直方向。
设置线性布局为水
平或垂直显示需要设置的属性。
RelativeLayout
像素单位(
< br>px
,
pt
,
< br>dp
,
sp
)
< br>
TableLayout
表格布局就是让控件以表格
的形式来排列组件的,
只要将组件或信息放在单元格中,
控
p>
件就可以整齐的排列。
在
TableLayout
中,
行数由
< br>TableRow
对象控制的,
即布局中有多少
TableRow
对象,就有多少行。
GridLayout
网格布局是
A
ndroid4.0
新增的布局,它实现了控件的交错显示,能够避免因布局嵌套
对设备性能的影响,
更利于自由布局的开发。
网格布局用一组无限细的直线将绘图区域分成
..
..
.
.
行、列
和单元,并指定控件的显示区域和控件在该区域的显示方式。
FrameLayout
帧布局为每个加入其中的控件创建一
个空白区域(称为一帧,每个控件占据一帧)
。采
用帧布局设计
界面时,
只能在屏幕左上角显示一个控件,
如果添加多个控件,
这些控件会按
照顺序在屏幕的左上角重叠显示,且会透明显示之
前控件的文本。
AbsoluteLayout
绝对布局需要通过指定
x
、
y
坐标来控制每一个控件的位置,放入该布局的组件需要通
过
android:layout_x
和
android:layout_y
两个属性指定其准确的坐标值,
并显示在屏幕上。
5
、样式与主题
< br>Android
系统中,包含了很多定义好的样式和主题,这些样式和主题用于定
义布局显示
在界面上的风格。
?
样式
:用
于定义界面元素显示风格,包含一个或多个
View
控件属性集
合。样式只
能作用于单个
View
,使
用样式可以指定多个控件的相同属性,减少代码书写量。
?
主题
:也
是包含一个或多个
View
控件属性集合。它可以影响多个
p>
View
,是全局性
的。主题通过在
中的结点
和
来确
定主题的应用围是整个应用,还是单个
Activity
。
?
注
意:如果一个应用使用了主题,同时单个
view
也使用了样式
,在属性冲突时,
样式优先级高。
?
尽管
An
droid
系统提供了很多样式和主题,但有时这些效果并不能满足实际需求,
此时还可以自定义样式或者主题。
6
、国际化
国际化是指软件开发时,
应该具备支持多种语言和地区的功能,
为不同国家和地区的用
户,提供符合来访者阅读习惯的页面或数据。
由于国际化
Internationalization
这个单词的首字母“
I
”和尾字母“<
/p>
N
”之间有
18
个字符,因此国际化被简称为
I18N
。
为了提供不同语言版本,开发者只需要在
res
目录下新建对应的
values
文件夹。
values
文件夹的命名规则。
7
、单元测试
?
JUnit
是一个测试框架,它是
Android SDK1.5
加入的
自动化测试功能。在完成某个功
能后对该功能进行单独测试,
而
不需要把程序安装到手机或模拟器中进行测试,
这样会
大大提高
程序开发的准确性。
?
JUnit
单元测试既可以嵌入到项目中,也可以作为一个单独的项目,针
对某个项目进行
测试。具体步骤如下:
1
)配置
JUnit
环境
2
)创建测试类
3
)运行测试
?
配置
Ju
nit
环境,在进行
Junit
测试时
,首先需要在
的结点
下配置指令集
,以及在结点
配
置函数库
。
8
、程序调试
..
..
.
.
LogCat
用于输出
Android
程序中的日志信息。它支持五种输出方式,级别由低到高分<
/p>
别是:
Verbose
(
V
)
:显示全部信息,黑色
,可通过
Log.v()
等方法进行信息输出。
Debug
(
D
)
:显示调试信息,蓝色
Info
(
I
)
:显示一般信息,绿色
Warning
< br>(
W
)
:显示警告信息,橙色<
/p>
Error
(
E
)
:显示错误信息,红色
Assert
(
A
)<
/p>
:
Android4.0
新增加的日志级
别
9
、
To
ast
的使用
?
Toast
会显示一个小消息告诉用户一些必要信息,该消息在短时间自动消失,不会干扰
用户操
作。
?
T
oast
组件有两个方法
makeText()
和
show()
,其中
mak
eText()
方法用于设置需要显示
的字符串,
show()
方法显示消息框。
?
Toast toast =
xt(Context,Text,Time); ();
简写形式如
下:
xt(context,
这是弹出消息!
第三章
Activity
1
、教学要求
?
?
?
?
?
掌握
Ac
tivity
的生命周期。
掌握
p>
Activity
的
4
种启动模式。
掌握隐式意图和显式意图的使用。
学
会使用
Intent
传递数据。
p>
学会
Activity
之间数据传递与回传
2
、
Act
ivity
相关定义
?
Activity
是
Android
应用程序的四大组件之一,它负责管
理
Android
应用程序的
用户界面
。一个应用程序一般会包含若干个
Activity
,每一个<
/p>
Activity
组件负责
一个用户界面
的展现。
?
Activity
是通过调用
setContentView
()
方法来显示指定组件的。该方法既可以接
收
View
对象为参数,也可以接收布局文件对应的资源
id
为参数。
?
Activity
就像一个界面管理员,用户在界面上的操作是通过
Activity
来管理的,
支持多种操作事件,如:
onKeyD
own(int
keyCode,KeyEvent
eve
nt)
、
onKeyUp(int
keyCode,KeyEvent event)
、
onTouchEvent(MotionEvent
event)
等。
3
、
Activity
的创建
在
Android
应用中,可以创建一
个或多个
Activity
,创建步骤如下所示:
1
)定义一个类继承自
t
y
或者其子类;
2
< br>)在
res/layout
目录中创建一个
xml
文件,用于创建
Activity
的布局;
3
)在
文件中注册
Activity
;
4
)重写
Activity
的
onCreate()
方法,并在该方法中使用
setContentView()
加载指定
的布局文件;
4
、
Activity
的生命周期
..
..
.
.
生命周期就是一个对象从创建到销
毁的过程,
每一个对象都有生命周期。
同样,
< br>Activity
也具有相应的生命周期,
Activi
ty
的生命周期中分为三种状态:
?
运行状态:当
Activity
在屏幕的最前端时,它是可见的、有焦点的。
?
暂停状态:
Activity
对用户来说仍然是可见的,但它不再拥有焦点。
?
停止状态:当
Activity
完全不可见时,它就处于停止状态,但仍然保留着当
前状
态和成员信息。然而这些对用户来说都是不可见的。
p>
Activity
从一种状态转变到另一种状态时会触发一些事件,
执行一些回调方法来通知
状态的变化。
?
void
onCreate(Bundle
saveInstanceState)
:创建时执行。
?
void
onStart()
:可见时执行
?
void
onRestart()
:回到前台,再次可见时执行
?
void
onResume()
:获取焦点时执行
?
void
onPause()
:失去焦点时执行
?
void onStop()
p>
:用户不可见,
Activity
进入后台
时执行
?
void
onDestroy()
:被销毁时执行
< br>记住下图给出的
Activity
生命周期过程中的一些
回调函数执行的状态和过程。
?
当
Activity
从
启
动
到
关
闭
时
,
会
依
次
执
行
->
onStart()->onResume()->onPause()->onStop()->onDest
roy()
方法。
?
当
Act
ivity
执行到
onPause()
方法失去焦点时,重新调用回到前台会执行
onResume()
方法,如果此时进程被杀死,则
Activity
会重新执行
onCreate()
事件。
?
当执行到
onStop()
方法
Activity
不可见时,再次回到前台会执行
onStart()
方法,如
果此时进程被杀死,
Activity
会重新执行
onCreate()
事件。
onCreate()
5
p>
、
View
点击事件的监听
Android
程序中,设置
View
的点击事件监听共有四种,分别:
1
)在布局文件中为控件设置
onClick
属性指定点击方法;
..
..
.
.
p>
2
)创建一个部类实现
OnClickLi
stener
接口并重写
onClick()
< br>方法,之后需要为控件
设置
setOnClickLis
tener(Listener listener)
;
<
/p>
3
)主类中实现
OnclickList
ener
接口,然后重写
onClick()
< br>;
4
)创建匿名部类,即在为
控件设置监听时直接创建一个
OnClickListener
实例,并为
该实例指定名称。
6
p>
、
Activity
的启动模式
Android
采用任务栈的方式来管理
p>
Activity
实例。当启动一个应用时,操作系统
就会为其创建一个任务栈。
先启动的
Activit
y
被压入栈底,
后启动的
Activi
ty
放在栈
顶,通过启动模式可以控制
Activity
在任务栈的加载情况。
?
Activity
的启动模式有四种,分别是
standard
、
singleTop
、
singleTask
和
singleInstance
。<
/p>
?
在
中,可以通过
标签的
android:launchMode
属
性设置启动模式。
7
、
Activity
之间数据传递的方式
Intent
是
And
roid
程序中各个组件进行交互的一种重要方式,它不仅可以指定当前组
件要执行的动作,还可以在不同组件之间进行数据传递。
< br>Intent
启动
Activity
的方法有:
startActivity
(
Intent
intent
)
startAct
ivityForResult
(
Intent
intent, int code
)
显式意图
即在通过
< br>Intent
启动
Activity
时,
需明确指定激活组件的名称。
如果需要在本应用中
p>
启动其他的
Activity
时,可以使用
显式意图来启动
Activity
。
Intent intent = new Intent(this, );
startActivity(intent);
显式意图还可以根据目标组件的包名、全路径名来指定开启组件
ssName(
startActivity(intent)
;
隐式意图
没有明确指定组件名的
Intent
称为隐式意图。系统会根据隐式意图中设置的动作
(
action
)
、类别(
category
)
、数
据(
Uri
和数据类型)找到最合适的组件。
< br>
使用隐式意图开启
Activity
< br>的示例代码如下所示:
Intent intent
= new Intent();
//
设置动作和清单文件一样
ion(
startActivity(intent);
数据的传递
Intent
不仅可以用来开启
Activity
,
也可以在
Activity
之间传递数据。
在数据传递时,
可以使用
putExtra(
)
方法将数据存储在
Intent
中。
Intent intent = new
Intent(this,);
ra(
startActivity(intent);
数据取出
..
..
.
.
String data = intent.
getStri
ngExtra
(
Bundle
数据传
递,
putExtra()
不仅可以传递基本类型数据,还可以
传递
Bundle
对象。
Intent intent = getIntent();
Bundle bundle = ras();
String stuName = ing(
数据的回传
Andorid
提
供
了
一
个
startActivityForResult()
方
法
,
来
实
现
回
传
数<
/p>
据
。
startActivityFor
Result()
方法接收两个参数,第一个参数是
Inten
t
,第二个参数用于判
断数据的来源。
注意:
startActivity
ForResult
方法启动多个
Activity
,
每一个
Activity
返回的数据都会回
调到
onActivityResult(
)
方法。因此首先就是要检查
requestCode
,来确定数据的来源。
然后再通过
resultCod
e
来判断结果执行是否成功。
最后打开
data
< br>,获取其中容并进行输出。
ProgressBar
常用的几个方法:
setMax()<
/p>
,
setProgress()
,
getProgress()
。
打开系统照相机清单文件的配置
第四章
数据存储
1
、教学要求
?
了解
5<
/p>
种数据存储方式的特点。
?
文件存储(以
I/O
流的方式存入手机存、
SD
卡)
?
S
haredPrefernces
存储,常用于存储简单的参数设置,本质上是
XML
,通过
Map
方式。
?
SQLite
数据库
?
ContentProvider
,
Android
四大组件之一,以数
据库形式存入手机存,可以
共享自己的数据给其他应用使用,提供统一的数据方式方式,
更规。
?
网络存储,把文件存储在服务器,而不是本地。
..
..
.
.
?
学会使
用文件存储,
SharedPrefrences
存储数据。<
/p>
?
掌握
p>
XML
文件的序列化及解析。
2
、文件存储
文件存储是
Android
中最基本的一种数据存储方式,它
与
Java
中的文件存储类似,都
是通
过
I/O
流的形式把数据原封不动的存储到文档中。
Android
中的文件存储分为部存储和外部
存储。
部存储:
使用的是
< br>Context
提供的
openFileOutput(
)
和
openFileInput()
方法,
通过这两个方法
可以分别获取
F
ileOutputStream
对象和
FileInputS
tream
对象,具体如下:
FileOutputStream openFileOutput(string
name, int mode);
FileInputStream
openFileInput(string name);
openFileOut
put
用于打开应用程序的输出流,将数据从存中输出到指定文件中,即写
入文件。
openFileInput
用于打开对应文件的输入流,
将数据从文件中输入到存中,
即读取文件。
文件的操作模式
int mode<
/p>
表示文件操作方式,即读写方式,取值有
4
种:
MODE_PRIVATE
:该文件只能被当前程序读写,默认操作方式
MODE_A
PPEND
:该文件容可以追加,常用的方式之一
MODE_WORLD_READABLE
:该文件可以被其他程序读取
,安全性低,通常不用
MODE_WORLD_WRITE
ABLE:
该文件可以被其他程序写入,安全性低,通常不用
外部存储:
外部存储通常是指将外部
文件存储到外部设备上,一般是指
SD
卡等,通常位置
mnt/sdcard
目录下。
外部设备不够安全:
外部存储的文件可以被其他应用程序共享,
当连到计算机时,
文件
可被浏览,修改和删除
外
部
设
备
状
态
有
可
能
被
移
除
、
丢
失
或
处
于
其
他<
/p>
装
态
,
在
使
用
之
前
要
调
用
ernalSto
rageState()
来确认外围设备是否可用。当外围设备具有读写
权限时,
可以通过
FileOutpuStream<
/p>
,
FileInputStream
或<
/p>
FileReader
,
FileWri
ter
进行读
写。
String state =
ernalStorageState();//
获取外设状态
if((_MOUNTED))//
判断外设是否可用
ernalStorageDirectory();//
获取外设路径
操作
SD
卡数据需要在清单文件的
结点下配置权限
3
<
br> XML
android:name=
..
..
.
.
“_EXTERNAL_STORAGE”/>
android:name=
“
p>
_EXTERNAL_STORAGE”/>
、
XML
序列化
(
1
)什么是序列化
(
2
)
XML
序列化
(
3
)
XML
解析
XMLPullParser
的常用属性
(
4
p>
)
JSON
解析
4
、
SharedPreferenc
es
SharedPreferences
是
Android
平台上一个轻量级的存储类,
用于存储
一些应用程序的
配置参数,例如用户名、密码、自定义参数的设置等。
SharedPreferences
中存储的数据是
以
key/value
键值对的形式保存在
文件中,
该
文件位于“
p>
data/data/
”文件夹中。
?
p>
SharedPreferences
存储的数据是以
key/value
键值对的形式保存在
XML
p>
文件中
的。
?
SharedPreferenc
es
中
value
的值只能是
float, int, long, boolean, String,
StringSet
类型数据。
?
使
用
p>
SharedPreferences
存
储
数
据
时
,
p>
首
先
通
过
SharedPreferences(String
name,
int
mode)
p>
获取
SharedPreferences
实例对象
(在
Activity
中可以
直接使用
this
表示上下文)
,如果
不在
Activity
中,则需要传入
一个
Context
获取上下文
p>
SharedPrefernces
对象本身只能获取数据,并不支
持数据的存储和修改,数据的存储
和修改需要通过
()
对象实现,要获取
Editor
实例对象,需要
调
..
..
-
-
-
-
-
-
-
-
-
上一篇:文学术语 美国文学部分
下一篇:英国文学_名词解释_【整理后】