Android开发用的名词

 1. IDE:

  Intelligent Development Environm的简称。即智能开发环境。是一种开发工具。常用的IDE有adt-bundles和Android studio。两个都需要配置jdk。

  2. ADT:

  Android Development tools的简称。即Android开发工具。ADT为Eclipse的插件。在Eclipse和SDK之间起了一个桥梁的作用。

  3. SDK:

  Soft Development Kit的简称。软件开发工具包。在Android中,它为开发者提供了库文件以及其它开发所用到的工具。

  4. JDK:

  Java的开发工具包。包括了Java运行环境、Java工具和Java基础类库。

  5. NDK:

  概念:

  (1).NDK是一系列工具的集合。帮助开发者快速开发C/C++的动态库。

  并能自动将so和Java应用一起打包成apk。这些工具对开发者的帮助是巨大的。

  (2).NDK将是Android平台开发支持C开发的开端。

  作用:

  (1).代码的保护。由于Java层代码很容易被反编译,而C/C++库反编译难度很大。

  (2).可以方便的使用现存的开源库。大部分现存的开源库都是用C/C++代码编写的。

  (3).提高程序的执行效率。将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。

  (4).便于移植。用C/C++写的库可以方便的在其他的嵌入式平台上再次使用。

  1、apk扩展名:apk是Android包的扩展名,一个Android包包含了与某个Android应用程序相关的所有文件,apk文件将AndroidManifest.xml文件、应用程序代码(dex文件)、资源文件和其他文件组成一个压缩包,一个项目只能打包压缩成一个apk文件。
    2、dex扩展名:Android的程序被编译成.dex(Dalvik Executable)格式文件, 然后再进行打包生成可直接安装的apk文件。
    3、ADB( Android Debug Bridge ):SDK自带的一个基于命令行的调试程序。它提供了设备浏览工具、设备上的拷贝工具和为调试转寄端口的功能。
    4、应用程序(APP) :一个或多个Activity、服务、监听和Intent接收器的集合,一个应用程序有一个文件清单,并且打包成一个apk文件。 
    5、Dalvik Android:虚拟机的名字,Dalvik虚拟机是一个只能解释执行dex文件的虚拟机,dex文件针对存储性能和内存管理进行了优化。 Dalvik虚拟机是基于寄存器的虚拟机,并且能够运行经过Dalvik自带的“dx”工具转换过的Java类。 虚拟机运行在兼容Posix的操作系统上,依赖于底层的功能(如线程和低级内存管理)。Dalvik的核心类库有意做得与Java标准版非常类似,但它明显更适合小型移动设备。
    6、内容源:Android术语中的内容源是建立在类ContentProvider之上的用于处理指定格式的内容请求字符串,并返回指定格式的数据的类。
    7、意图(Intent) :意图是一个Intent类,它包含很多描述调用者意图做什么的字段。调用者发送意图到Android意图处理器,意图处理器会遍历所有应用程序的意图过滤器来查找与该意图最匹配的Activity。意图字段包括渴望的动作、种类、数据、数据的MIME类型、一个处理类和其他约束。
    8、意图过滤器(intent-filter):Activity和意图接收器(Receiver)在它们的文件清单中包含一个或多个过滤器,用来描述什么类型的意图或者信息是它们能处理或想接收的。一个意图过滤器列出了一系列要求,例如,意图或信息必须满足的数据类型、被请求的动作和URI的格式。 对于Activity,Android搜索意图和Activity过滤器匹配程度最高的Activity;对于消息,Android会将消息转发给所有匹配意图过滤器的接收器。
    9、Intent接收器(Receiver):一个监听是由Context.broadcastIntent()发出的信息广播的类。
    10、文件清单:应用程序开发中的一个XML文件,用于描述包中多个Activity、Intent过滤器、服务和其他内容。可以打开AndroidManifest.xml查看其包含的内容。
    11、布局资源:一个描述Activity屏幕布局的XML文件。
    12、资源:整个Android术语可以为用户提供的XML、位图或其他文件,构建程序时会导入进来,稍后会被代码加载,Android支持多种类型的资源,请参考Resources中的详细描述,程序定义的资源文件应当保存在res/ 子目录下。
    13、服务(Service) :运行在后台执行多种固定任务的类,如播放音乐或检测网络活动。
    14、AIDL(AndRoid接口描述语言):是一种接口描述语言; 编译器可以通过aidl文件生成一段代码,通过预先定义的接口达到两个进程内部通信进程的目的.
    15、URIs:Android使用URI字符串请求数据(如通信录列表)和动作(如在浏览器中打开网页)。字符串可以具有不同的格式。所有请求数据的URI必须以“content://”开头。有效的动作URI字符串会被设备上的适当的程序处理,例如,以“ http://”开头的URI字符串会被浏览器处理。
    16、JNI:java本地编程接口,是 Java Native Interface 的英文缩写。他能够使java代码与用其他编程语言编写的应用程序和库进行互操作。(其他编程语言大多是c,c++和汇编语言。)
    17、 Action:对Intent发送器意图的描述,一个活动是一个指派给Intent的字符串值。


一、基础知识:

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

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

3.AVD(Android Virtual Device): AVD是一个模拟器实例,可以用来模拟一个真实的设备。

4.Activity: Activity(活动)是一个包含应用程序的用户界面窗口。一个应用程序可以有零个或多个活动。Activity 是所有程序的根本,所有程序都运行在Activity之中,Activity具有自己的生命周期,由系统控制生命周期,程序无法改变。

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

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

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

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

7.Android 操作系统: Android是一种基于Linux的开源的收集操作系统。

8.APK是Android Package的缩写,即Android安装包(anapk)。ps:APK文件其实是zip格式,但后缀名修改为APK,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik的字节码。

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

9.1.Activity:应用程序中,一个Activity通常是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在Intent的描述结构中,有两个重要的部分:动作和动作对应的数据。

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

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

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

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

10.常用的布局管理器:

布局管理器一般有四种:

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

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

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

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

11.Android应用程序是用java语言写的,通过aapt工具把编译好的java代码和应用程序所需要的所有数据、资源文件打包成Android包,及后缀为.apk的压缩文件,这个文件时发布应用程序和在移动设备上安装应用程序的媒介,是用户下载到他们设备上的文件。一个.apk文件中的所有代码属于一个应用程序。

10.ANR(Application No Response):程序无响应的错误信息。

11.Android体系结构:

官网体系结构图:

Android从上到下分为4层:Android应用层,Android应用框架层,Android系统运行层,Linux内核层。

12.每一个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效的运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由Java编译器编译,然后通过SDK中的“dx”工具转化成.dex格式由虚拟机执行。

13.Android Activity 生命周期:

生命周期图:

Resumed状态:

在这种状态下,该Activity在前台运行,用户可以与它进行交互。(有时也简称为“running”状态。)

Paused状态:

在这种状态下,该Activity被部分遮蔽(被其他在前台的半透明或不覆盖整个屏幕的活动遮住)。此状态不接受用户输入,并且不能执行任何代码。

Stopped状态:

在这种状态下,该活动是完全隐藏,不可见的,可视为存在于后台。虽然停止,活动实例和所有成员变量如状态信息将被保留,但不能执行任何代码。

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

15.Activity 之间传递数据的几种方式:

(1) 将数据封装在Intent变量中。(使用Intent传递对象有一个局限性,就是不能传递不能序列化的对象)

(2) 使用系统的剪切板来传递数据。

获取剪切板的代码如下:

ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);

(3) 使用全局变量来传递数据:

例如:

//myApp是一个应用级别的全局对象,在应用的任何地方都可以调用这个对象。

MyApp myApp = (MyApp)getApplication();

(4) 使用静态变量传递数据:可以在目标的 Activity 中,声明公开的静态属性,在调用的Activity针对这个属性进行赋值,来进行数据的传递。

16.从Activity中返回数据: (1) startActivity():用于启动意图。

(2) startActivityForResult():启动意图并获取返回结果。在等待返回结果的Activity中必须实现onActivityResult方法。

17.finish方法用来结束Activity的生命周期。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值