Android总结(1-3章)

前言:

在突击复习后结束Android考试的战斗,现在该回过头来再好好看看“战场”上留下的“痕迹”。每一个战役虽然都很“残酷”,但也都有值得留下和记忆的地方也,有它们美好的一面。

第一章

1.Android发布日期、公司2007115日由Google/谷歌发布。

2.简述Android的体系结构:

Android系统采用分层架构,由高到低分为4层,依次是应用程序层Application)、应用程序框架层Application Framework)、核心类库Libraries)和Linux内核Linux Kernel)。

应用程序层

应用程序层是一个核心应用程序的集合,所有安装在手机上的应用程序都属于这一层,例如系统自带的联系人程序、短信程序,或者从Google Play上下载的小游戏等都属于应用程序层。

应用程序框架层

应用程序框架层主要提供了构建应用程序时用到的各种API

核心类库

核心类库中包含系统库及Android运行环境。主要是通过C/C++库来为Android系统提供主要的特性支持。

Android运行时库(Android Runtime)主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用,另外Android运行时库中还包括了dalvik虚拟机,它使得每一个Android应用都能运行在独立的进程当中,并且拥有一个自己的dalvik虚拟机实例。

Linux内核

Android系统主要基于Linux内核开发,Linux内核层为Android设备的各种硬件提供了底层驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、电源管理驱动等。

3.市场上主流智能手机操作系统:

①Windows Phone、②Android、③iPhone

4.Android开发环境:

①Java开发工具包JDK、②Eclipse开发环境、③Android软件开发包Android SDK、④Android开发工具包ADT。

5.Android应用程序目录结构:(主要的)

src:该目录是放置所有Java代码的地方。在src目录中可以创建多个包,每个包中可以存放不同的文件或者Activity。

gen:该目录是自动生成的,主要有一个R.java文件,在项目中添加的任何资源文件都会在其中生成一个相应的资源Id,这个文件一定不要手动修改,当res资源文件修改时,R.java文件就会重新编译。(R文件的作用)

AndroidManifest.xml

该文件是整个项目的配置文件,在程序中定义的四大组件都需要在这个文件里注册,另外还可以在这个文件中给应用程序添加声明权限,也可以重新指定创建项目时程序最低兼容版本和最高版本。清单文件配置的信息会配置到Android系统中,当程序运行时,系统会先找到清单文件中配置的信息,然后根据设置的信息打开相应的组件。

6.Android应用程序安装过程:

①Java编译器将.java文件编译成.class文件;

②SDK中的dx工具将.class文件转译为.dex文件;

③将dex文件和资源文件打包成压缩文件并签名,成为apk文件;

④将apk文件安装的手机(模拟器)。

第二章

1.常用控件:(基本属性的写法和功能)

TextView:文本框,可以在界面上显示文字,通常作为提示信息展示。

EditText:编辑框,可以在上面输入文字,它有一个inputType属性,可以控制输入的内容只能是数字或者字母等。

Button:按钮,用于响应用户的点击事件/设置监听器。

RadioButton:单选按钮,用RadioGroup包裹,RadioGroup(单选按钮组)里面可以放置多个RadioButton,一组RadioButton中只能有一个被选中。

Toast:显示文本提示信息。该组件有两个方法:makeText()和show(),其中makeText()方法用于设置要显示的字符串,show()方法显示消息框。

语法:

Toast.makeText(Context,Text,Time).show();

a.Context是一个抽象类,表示应用程序环境的信息,即当前组件的上下文环境,在Activity中使用“当前主程序类名.this”即可。

b.Text是要显示的消息字符串。

c.Time表示显示时长,该属性是特定的值,一般用int类型整数0和1表示,0代表short,即表示较短时间显示;1代表long,即表示较长时间显示。

例子:

Toast.makeText(this,“按键弹起!”,0).show();

ListView:以列表的形式展示具体的数据内容,并且能够根据数据的长度自适应屏幕显示。使用时需要用适配器(Adapter)对其进行数据适配,可以将适配器理解为界面数据绑定。

2.五个布局类:

FrameLayout:(框架布局、帧布局一层一层重叠显示。最先添加的在最底层,最后添加的在最上层。<FrameLayout></FrameLayout>

LinearLayout:(线性布局)主要有两种形式,一种是水平线性布局,一种是垂直线性布局

常用属性:

android:layout_width=“match_parent”/“wrap_content”/长度单位0dp

android:layout_height=“wrap_content”等

android:orientation=“vertical”/“horizontal”,vertical表示线性布局是垂直显示的,horizontal表示线性布局是水平显示的,默认为horizontal。

AbsoluteLayout:(绝对布局)需要通过x,y坐标来控制每个空间的位置,用的不多了。

RelativeLayout:(相对布局)在Eclipse中开发Android程序时,默认采用的就是相对布局。两种形式:相对于容器而言、相对于控件而言。为了准确定位布局中得控件,相对布局提供了很多属性。

常用属性以主要含义:p23

android:layout_toRightOf:在指定控件的右边

android:layout_below:在指定控件的下边

android:layout_alignLeft:与指定控件左对齐

TableLayout:(表格布局)无宽度和 高度属性,由插入的控件控制。(行数由TableRow控制,每行有多少控件就有多少列)。P26

第三章

1.Activity基本含义

Activity是Android应用程序的四大组件之一,它负责管理Android应用程序的用户界面。一个应用程序一般会包含若干个Activity,每个Activity负责一个用户界面的展示。

注意:(在清单文件中进行注册)p49

MainActivity要继承Activity类

在AndroidManifest.xml文件中,对ActivityExample进行注册,

代码:

<activity

android:name=”cn.itcast.activitybasic.ActivityExample”

android:label=”ActivityExample”>

<intent-filter>

<action android:name=”android.intent.action.MAIN”/>

<category android:name=”android.intent.category.LAUNCHER”/>

</intent-filter>

</activity>

要把ActivityExample设置为应用程序默认启动的界面,需要在<activity>节点中配置<intent-filter>节点。该节点中的<action android:name=android.intent.action.MAIN/>表示将当前Activity设置为程序最先启动的Activity。

<category android:name=android.intent.category.LAUNCHER/>

表示让当前Activity在桌面上创建图标。

2.Activity三种状态:

Activity的生命周期中分为状态,分别是运行状态暂停状态停止状态

运行状态当Activity在屏幕的最前端时,它是可见的、有焦点的,可以用来处理用户的创建操作,如点击、双击、长按事件等,这种状态称为运行态。

暂停状态:在某些情况下,Activity对用户来说仍然是可见的,但它不再拥有焦点,即用户对它的操作是没有实际意义的。例如,当最上面的Activity没有完全覆盖屏幕或者是透明的,被覆盖的Activity仍然对用户可见,并且存活。

停止状态:当Activity完全不可见时它就处于停止状态,但仍然保留着用户状态和成员信息。

重点:

Activity从一种状态转变成另一种状态时会触发一些事件,执行一些回调方法来通知状态的变化,具体方法如下:

1)onCreate(Bundle savedInstanceState):创建时执行。(在生命周期中只调用一次)

2)onStart():可见时执行。

3)onRestart():回到前台,再次可见时执行。

4)onResume():获取焦点时执行。

5)onPause():失去焦点时执行。(暂停状态)

6)onStop():用户不可见进入后台时执行。(停止状态)

7)onDestroy():销毁时执行。

3.Activity的生命周期:

Activity生命周期模型图例(p50)

4.Avtivity的4启动模式:

Avtivity的启动模式有4种,分别是standard、singleTop、singleTask、singleInstance。

standard模式:标准模式,是Avtivity的默认启动模式,在此模式下,每当启动一个新的Avtivity,它就会进入任务栈,并处于栈顶的位置。(满足“先进后出”原则)

singleTop模式:单一顶部模式,与standard模式类似,不同的是,当启动的Avtivity已经位于栈顶时,则直接使用它不创建新的实例。如果启动的Avtivity没有位于栈顶时,则创建一个新的实例位于栈顶。

singleTask模式:单一任务模式,每次启动该Avtivity时,系统首先会检查栈中是否存在该活动的实例,如果发现已经存在则直接使用该实例,并将当前Avtivity之上的所有Avtivity出栈,如果没有发现则创建一个新的实例

singleInstanc模式:单一实例模式,指定为singleInstance模式的Avtivity会启动一个新的任务栈来管理这个Avtivity。(一般一个应用程序只创建一个任务栈/只会被创建一个实例)

5.Intent

①作用:用于激活组件(Avtivity、服务、广播接收者),承担了Android应用程序三大核心组价相互的通信功能。

②Android中Intent寻找目标组件的方式有两种,一种是显示意图,另一种是隐式意图。

两者区别:

显示意图开启组件时必须要指明组件的名称,一般只在本应用程序切换组件时使用。

隐式意图:没有明确指明组件名的意图为隐式意图。它不仅可以开启本应用的组件还可以开启其他应用的组件,但必须使用意图过滤器IntentFilter(<intent-filter></intent-filter>)

6.Activity中数据的传递

Intent可以用来开启Activity,同时它也可以用来在Activity之间传递数据。

使用Intent传递数据只需要调用putExtra()方法将想要存储的数据存储在Intent中即可:

intent.putExtra(“extra_data”,data);

//一个参数接收的是key,第二个参数接收的是value

取出传递来的数据:

String data= = intent.getStringExtra(“extra_data”);

7.回传数据的方法及参数:

startActivityForResult(intent,1)方法实现回传数据,该方法有两个参数,第一个是Intent,第二个是参数的请求码,用于判断数据的来源。

setResult(1,intent)方法接收两个参数,第一个参数resultCode结果码,一般使用0或1;第二个参数则是把带有数据的Intent传递回去,最后调用finish()方法销毁当前Activity。

 

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值