移动互联培训

您当前的位置:移动互联培训 > Android开发 >

Android基础知识汇总(2017新版)

来源:Android开发学习网 2017-03-17

Android的知识体系很庞杂,今天华清小编为大家做一个Android基础知识汇总,扫清一些概念上的盲点,也帮助Android初学者对Android基础知识体系有一个基础的、系统的了解。

Android基础知识汇总(2017新版)
Android基础知识汇总(2017新版)

1.Android是什么?

首先我们来简单了解一下Android,Android本义指“机器人”,是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,官方中文名:安卓 。Android手机系统目前在手机系统市场中占比大,其次就是IOS,而我们要做的Android开发就是对Android进行一些修改,或者基于Android系统,开发一些运行在该系统之上的应用程序,也就是我们常说的Android APP。

2.关于Android的版本

Android的版本命名很有意思,从2009年5月开始,Android操作系统改用甜点来作为版本代号,这些版本按照从C大写字母开始的顺序来进行命名:纸杯蛋糕(Cupcake)、甜甜圈(Donut)、闪电泡芙(Éclair)、冻酸奶(Froyo)、姜饼(Gingerbread)、蜂巢(Honeycomb)﹑冰淇淋三明治(Ice Cream Sandwich)、果冻豆(Jelly Bean)、奇巧(KitKat)、棒棒糖(Lollipop)、棉花糖(Marshmallow)、牛轧糖(Nougat),如果你是一个吃货,看到这里会不会流口水?

3.Android开发环境

学习过编程的人都很熟悉,每个开发语言都有自己独特的开发和运行环境,就像我们人类每个都有自己的语言一样,这点应该不难理解,那么我们就来看一下,Android开发环境具体包括哪些内容。

3.1.Android SDK:Android SDK包含了一个调试器、库、一个模拟器、文档、实例代码和教程。

3.2.Eclipse:一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

3.3.ADT: 用于Eclipse的Android开发工具(Android Development Tools,ADT)插件是对Eclipse IDE的扩展,用以支持android应用程序的创建和调试。

3.4.AVD(Android Virtual Device): AVD是一个模拟器实例,可以用来模拟一个真实的设备,说白了就是在电脑,通过软件虚拟出一个Android手机,这个手机性能比较差,所以建议好还是用你自己的手机。

4.APK

APK是Android Package的缩写,即Android安装包(anapk)。这个文件时发布应用程序和在移动设备上安装应用程序的媒介,是用户下载到他们设备上的文件。一个.apk文件中的所有代码属于一个应用程序。ps:APK文件其实是zip格式,但后缀名修改为APK,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik的字节码。

5.Android 四大组件(Activity,Service,Broadcast Receiver,Content Provider)

5.1.Activity:

Activity(活动)是一个包含应用程序的用户界面窗口。一个应用程序可以有零个或多个活动。Activity 是所有程序的根本,所有程序都运行在Activity之中,Activity具有自己的生命周期,由系统控制生命周期,程序无法改变。应用程序中,一个Activity通常是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在Intent的描述结构中,有两个重要的部分:动作和动作对应的数据。

工作原理:(1)当程序第一次运行时用户会看到主Activity,主Activity可以通过启动其他的Activity进行相关操作。(2)当启动其他的Activity时当前的Activity将会停止,新的Activity将会压入栈中,同时获取用户焦点,这时就可在这个Activity上操作了。(3)根据栈的先进后出原则,当用户按Back键时,当前这个Activity销毁,前一个Activity重新恢复。

5.2.Broadcast Receiver:广播接收者(BroadcastReceiver)

用于接收广播Intent,广播Intent的发送是通过调用Context.sendBroadCast()、Context.sendOrderedBroadcast()、Context.sendStickyBroadcast()来实现的。通常一个广播Intent可以被订阅了此Intent的多个广播接收者所接收(就像真的收音机一样)。广播(Broadcas)是一种广泛运用的应用程序之间的传输消息的机制。而广播接收者(BroadcastReceiver)是对发送出来的广播进行过滤并接收响应的一类组件。ps:BroadcastReceiver 广泛应用与应用间的交流。

BroadcastReceiver生命周期:每次广播到来时,会重新创建BroadcastReceiver对象,并调用onReceive()方法,执行完以后,该对象即被销毁。当onReceive()方法在10s内没有执行完毕,就会导致ANR。如果需要执行长任务,那么就必须要使用Service。另外在onReceive中使用线程是很危险的事情。因为线程没有执行完,BroadcastReceiver就挂了。

5.3 Service:和Activity属于同一级别的组件,不能自己运行只能后台运行,并且可以和其他组件进行交互。Service可以在很多场合的应用中使用,比如播放多媒体的时候启动了其他Activity这个时候程序要在后台继续播放。ps:一个Service是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。

5.4 Content Provider:ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对你应用的数据进行增删改查。关于共享数据,可以使用文件操作模式,通过指定文件的操作模式为Context.MODEWORLDREADABLE 或 Context.MODEWORLDWRITEABLE同样也可以对外共享数据。但是使用文件共享数据存在数据访问方式不统一的问题。而Content Provider则对外暴露了统一的接口,每个应用程序都可以通过统一的接口操作数据。

6.Intent:

Intent是android中的一种消息通信机制(媒介),专门提供组件互相调用的相关信息,实现调用者和被调用的解耦。

6.1.显示Intent:指定了component属性的intent(调用 setComponent)或者setClass(context,class)来指定)。通过指定具体的组件类,调用应用启动对应的组件。

6.2.隐式Intent:没有指定component属性的Intent。这些Intent需要包含足够的信息,这些系统才能根据这些信息,在所有的可用组件中,确定满足此Intent的组件。

7.Toast:

又称为吐司,是android中用来显示信息的一种机制和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定时间就会自动消失。

8.常用的布局管理器:

就是控制前台显示效果的,布局管理器一般有四种:

LinearLayout:线性布局管理器(默认),分为水平(horizontal)和垂直(vertical)两种,只能进行单行布局。

FrameLayout:所有组件放在左上角,一个覆盖一个。

TableLayout:任意行和列的表格布局管理器,其中TableRow代表一行,可以向行中增加组件。

RelativeLayout:相对布局管理器,根据近一个组件或者顶层父组件来确定下一个组件的位置。

9.ANR(Application No Response):

程序无响应的错误信息。

10.Android体系结构:

官网体系结构图:

Android基础知识汇总之Android体系结构
Android体系结构

 

一 应用程序层

该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。

二 应用程序框架层

该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。

三 系统库和Android运行时

系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.NET、android.media等等。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。

四 Linux内核

Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也是作为硬件与软件栈的抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。

以上就是对Android基础知识的一些汇总,当然android基础知识可能更多,这里只是汇总了一些常见的概念,东西有点儿多,难免有疏漏的地方,欢迎大家补充。

400-611-6270

Copyright ©2004-2018 华清远见教育科技集团 版权所有
京ICP备16055225号,京公海网安备11010802025203号