前言:

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

第一章

1.Android发布日期、公司:2007年11月5日由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。

Android总结(1-3章)相关推荐

  1. [深入理解Android卷一全文-第九章]深入理解Vold和Rild

    为什么80%的码农都做不了架构师?>>>    由于<深入理解Android 卷一>和<深入理解Android卷二>不再出版,而知识的传播不应该因为纸质媒介的 ...

  2. Android卷一全文 第一章 阅读前的准备工作

    本章主要内容 本章简单介绍Android系统架构.编译环境的搭建以及一些工具的使用. 1.1  系统架构 1.1.1  Android系统架构 Android是Google公司推出的一款手机开发平台. ...

  3. 浅入浅出 Android 安全:第二章 Android Linux 内核层安全

    第二章 Android Linux 内核层安全 来源:Yury Zhauniarovich | Publications 译者:飞龙 协议:CC BY-NC-SA 4.0 作为最广为人知的开源项目之一 ...

  4. 浅入浅出 Android 安全:第一章 Android

    第一章 Android 来源:Yury Zhauniarovich | Publications 译者:飞龙 协议:CC BY-NC-SA 4.0 Android 安全架构的理解不仅帮助我了解 And ...

  5. Android驱动开发第一章

    本章作为学习Linux的第一道门,将对Android以及Linux驱动做一个总体的介绍,以便读者对Linux驱动有一个感性的认识,并更好地学习Linux驱动的方法和技巧打下基础. 首先讲述了四层基础架 ...

  6. Android Camera2 教程 · 第一章 · 概览

    从 Android 5.0 开始,Google 引入了一套全新的相机框架 Camera2(android.hardware.camera2)并且废弃了旧的相机框架 Camera1(android.ha ...

  7. 搭建Android开发环境 第二章

    Andorra环境搭建的主要步骤有: 一.安装JDK 1.JDK的下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index. ...

  8. android权威指南十三章,《Android编程权威指南》第30~32以及第34章读书笔记

    配置文件中的broadcast receiver 在配置文件中完成声明后,即使应用当前并未运行,只要有匹配的broadcast intent的发来,broadcast receiver就会接收.收到i ...

  9. 读书笔记 Pro Android 3 第2章 节选 StrictMode 严苛模式

    Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益.那它都做什么呢?它将报告与线程及虚拟机相关的策 ...

最新文章

  1. 机器学习算法面试—口述(4):决策树
  2. python语言用途-Python在每个行业的用处
  3. 浅析C++中的this指针 通过空指针(NULL)可以正确调用一些类的成员函数?
  4. Java中的out.write()和out.print()的区别
  5. 帆软报表在已经搭载服务器上开发_史上最全企业数据产品选型对比(含数仓、报表、BI、中台、数据治理)...
  6. mysql 命令 字符集_MySQL的字符集操作命令总结
  7. CentOS之安装Netcore运行hellowworld
  8. JDBC06 其他操作及批处理Batch
  9. Day3-字符串-数组-正则表达式
  10. 五分钟看懂快速幂算法
  11. SVN删除文件及其恢复
  12. 基于 软件体系结构(第3版)考试重点和复习指南
  13. html箭头轮播,CSS-用伪类制作小箭头(轮播图的左右切换btn)
  14. 数据结构-二分查找(含全部代码)
  15. 纪念一下获得十大优秀学生
  16. 尚元钓(Fishing Game)
  17. n个节点互异的拉格朗日插值基函数之和等于一证明
  18. java 多字段分组_在Java 8中按多个字段名称分组
  19. 运维的职业发展方向有哪些?该如何规划?
  20. java 中的 while和 do...while语句的区别

热门文章

  1. 【论文解读 AAAI 2020 | Bi-GCN】Rumor Detection on Social Media with Bi-Directional GCN
  2. 二阶常系数非齐次线性微分方程的解
  3. 异常检测|深度学习(李宏毅)(二十一)
  4. php日历排班表,排班表 : 轮班工作者必备的排班神器
  5. (2.1)关系模型之关系结构和约束
  6. freecodecamp_freeCodeCamp如何使我成为最新的训练营毕业生
  7. FutureTask
  8. VMWare安装Win10虚拟机
  9. AI把关啤酒质量 省钱又靠谱!
  10. PE文件之IMAGE_DOS_HEADER