您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 42Android入门基础培训
Android开发知识点•Android开发环境的搭建(androidstudio+gradle+jdk1.8)•Android框架•Android四大组件:Activity、Service、ContentProvider、BroadcastReceiver•UI及基本布局•数据存储:SharedPreferences、文件、SQLite数据库、网络•Android网络通信volley,xutils,fjFrameforandroid,hessian,okhttp等•其它:NDK,adb、HierarchyView、DDMS、draw9patch一、Android框架1.Aplications(应用层)应用是用Java语言编写的云新在虚拟机上的程序。2.ApplicationFramework(应用框架层)这一层是编写Google发布的核心应用时所使用的API框架,开发人员可以使用这些框架来开发自己的应用。ViewSystem:可以用来构建应用程序,它包括列表、网格、文本框、按钮以及可嵌入的Web浏览器。ContentProviders:它可以让一个应用访问另一个应用的数据,或共享它们自己的数据。ResourceManager:提供非代码资源的访问,如本地字符串、图形和布局文件。NotificationManager:应用可以在状态栏中显示自定义的提示信息。ActivityManager:用来管理应用程序生命周期并提供常用的导航退回功能。WindowManager:管理所有的窗口程序。PackageManager:Android系统内的程序管理。3.Libraries、AndroidRuntime(系统运行库层)当使用Android应用框架时,Android系统会通过一些C/C++库赖支持我们使用的各个组件,使其能更好地为我们服务。Bionic系统C库:C语言标准库,系统最底层的的库,C库通过Linux系统来调用。多媒体库(MediaFramework):Android系统多媒体库,基于PackerVideoOpenCORE,该库支持多种常见格式的音频、视频的回放和录制,以及图片,比如MPEG4、MP3、AAC、AMR、JPG、PNG等。SGL:2D图形引擎库。SSL:位于TCP/IP协议与各种应用层协议之间,为数据通信提供支持。OpenGLES1.0:3D效果的支持。SQLite:关系数据库。Webkit:Web浏览器引擎。FreeType:位图(bitmap)及矢量(vector)。在Android操作系统中,每个Java程序都运行在Dalvik虚拟机上,其只能执行.dex的可执行文件,当Java程序通过编译后,最后还需要通过SDK中的dx工具转为成.dex格式才能正常在虚拟机上执行,Java虚拟机运行的是Java字节码,而Dalvik虚拟机运行的则是其专有的文件格式dex(DalvikExceutable)的文件。Dalvik虚拟机有几个主要特征:专有的dex文件格式、dex的优化,dex文件的结构是紧凑的、基于寄存器、一个应用,一个虚拟机实例,一个进程。每一个Android应用度运行在一个Dalvik虚拟机实例中,每一个虚拟机实例都是一个独立的进程空间4.LinuxKernel(Linux内核层)•显示驱动(DisplayDriver):基于Linux的帧缓冲(FrameBuffer)驱动。•键盘驱动(KeyBoardDriver):作为输入设备的键盘驱动。•Flash内存驱动(FlaseMemoryDriver):基于MTD的Flash驱动程序。•照相机驱动(CameraDriver):常用的基于Linux的v412(VideoforLinux)的驱动。•音频驱动(AudioDriver):常用的基于ALSA的高级Linux声音体系驱动。•蓝牙驱动(BluetoothDriver):基于IEEE802.15.1标准的无线传输技术。•WiFi驱动:基于IEEE802.11标准的驱动程序。•BinderIPC驱动:Android的一个特殊的驱动程序,具有单独的设备节点,提供进程间通信的功能。•PowerManagement(电源管理):比如电池电量等。多媒体编程调用关系二、Android四大组件1.ActivityActivity是Android程序的表示层,程序的每一个显示屏幕就是一个Activity。1、Running位于屏幕最前端时,此时处于可见状态,和用户可交互的状态。2、Paused当Acitivy被另一个透明的或者非全屏的Activity覆盖时的状态叫Paused状态,虽然可见但不可交互。3、Stop当Activity被另外一个Activity覆盖、界面不可见时处于Stop状态。4、KilledActivity被系统杀死或者跟本没启动时就是Killed状态。Android是通过一种Activity栈的方式来管理Activity的,一个Activity在栈中的位置决定它的状态。2.BroadcastReceive你的应用可以使用它对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。广播类型:1)普通广播,通过Context.sendBroadcast(IntentmyIntent)发送的2)有序广播,通过Context.sendOrderedBroadcast(intent,receiverPermission)发送的,该方法第2个参数决定该广播的级别,级别数值是在-1000到1000之间,值越大,发送的优先级越高;广播接收者接收广播时的级别级别(可通过intentfilter中的priority进行设置设为2147483647时优先级最高),同级别接收的先后是随机的,再到级别低的收到广播,高级别的或同级别先接收到广播的可以通过abortBroadcast()方法截断广播使其他的接收者无法收到该广播,还有其他构造函数3)异步广播,通过Context.sendStickyBroadcast(IntentmyIntent)发送的,还有sendStickyOrderedBroadcast(intent,resultReceiver,scheduler,initialCode,initialData,initialExtras)方法,该方法具有有序广播的特性也有异步广播的特性;发送异步广播要:uses-permissionandroid:name=android.permission.BROADCAST_STICKY/权限,接收并处理完Intent后,广播依然存在,直到你调用removeStickyBroadcast(intent)主动把它去掉注意:发送广播时的intent参数与Contex.startActivity()启动起来的Intent不同,前者可以被多个订阅它的广播接收器调用,后者只能被一个(Activity或service)调用。监听广播Intent步骤:1)写一个继承BroadCastReceiver的类,重写onReceive()方法,广播接收器仅在它执行这个方法时处于活跃状态。当onReceive()返回后,它即为失活状态,注意:为了保证用户交互过程的流畅,一些费时的操作要放到线程里,如类名SMSBroadcastReceiver2)注册该广播接收者,注册有两种方法程序动态注册和AndroidManifest文件中进行静态注册(可理解为系统中注册)如下:静态注册,注册的广播,下面的priority表示接收广播的级别2147483647为最高优先级3.ServiceService在后台运行,不与用户进行交互。在默认情况下,Service运行在应用程序进程的主线程中,如果需要在Service中处理一些网络连接等耗时的操作,那么应该将这些任务放在单独的线程中处理,避免阻塞用户界面.创建Service–继承android.app.Service实现自己的服务•必须在AndroidManifest.xml注册service–serviceandroid:name=MyService/service•启动service–startService(i);•停止service–stopService(i);startService–service没有运行,则先调用onCreate方法然后调用onStart方法–service已经运行,则直接调用onStart方法•stopService–调用stopService停止Service–调用onDestory最终销毁service绑定Service调用Context.bindService(),客户端可以绑定到正在运行的Service上,如果此时Service没有运行,系统会调用onCreate()方法来创建Service,但是并不会调用onStart()方法。客户端成功绑定到Service之后,可以从onBind()方法中返回一个IBinder对象,并使用IBinder对象来调用Service的方法。一旦客户端与Service绑定,就意味着客户端和Service之间建立了一个连接,只要还有连接存在,那么系统会一直让Service运行下去。使用bindService()启动的服务与调用者绑定,只要调用者关闭服务就终止,使用此方法启动时,服务首次启动系统先调用服务的onCreate()--onBind(),如果服务已经启动再次调用不会再触发这2个方法,调用者退出时系统会调用服务的onUnbind()--onDestory(),想主动解除绑定可使用Contex.unbindService(),系统依次调用onUnbind()--onDestory();4.ContentProviderContentProvider是一个特殊的存储数据的类型,它提供了一套标准的接口用来获取以及操作数据,实现数据共享方法。•Android自身也提供了几个现成的ContentProvider:–Contacts–Browser–CallLog–Settings–MediaStore使用方法通过ContentResolver来使用具体的某个ContentProvider。ContentResolvercr=getContentResolver();contentResolver提供的方法:–query()–insert()–update()–delete()ContentProvider-URI组成三、UI及基本布局1.View及ViewGroupView是基类,ViewGroup是它的子类。View和ViewGroup最重要的几个方法View和ViewGroup最重要的几个方法:onMeasure(intwidthMeasureSpec,intheightMeasureSpec):当控件的父元素正要放置该控件时调用.父元素会问子控件一个问题,“你想要用多大地方啊?”,然后传入两个参数——widthMeasureSpec和heightMeasureSpeconDraw(Canvascanvas):View类中用于重绘的方法,这个方法是所有View、ViewGroup及其派生类都具有的方法,也是AndroidUI绘制最重要的方法。开发者可重载该方法,并在重载的方法内部基于参数canvas绘制自己的各种图形、图像效果。onLayout(booleanchanged,intleft,inttop,intright,intbottom):View类中布局发生改变时会调用的方法,这个方法是所有View、ViewGroup及其派生类都具有的方法,重载
本文标题:42Android入门基础培训
链接地址:https://www.777doc.com/doc-5354155 .html