您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > #LAMP人# 沈大海- Android应用开发-
Android开发技术培训沈大海LAMP人主题分享交流会群:3330312知识大纲•Android手机空间划分•AndroidFramework•AndroidSDK,NDK开发环境搭建•AndroidApplication分析•AndroidLoopHandler机制•Android应用开发基本组件使用•实现AIDL定义远程通讯Service•实现Widget,Wallpaper•GoogleMap开发•LocaltionManager•使用NDK开发•开源引擎Cocos2d-x介绍•开发优化Android手机软硬件形态AndroidFramework5Android体系结构•应用程序(Applications):依据User的期望而将AF的组件及Libaraies组件组合而成的高阶服务。•应用框架(ApplicationFramework,简称AF):这是结合Applications与Libraries的幕后主架构,让Libraries组件能不断地为Applications所重复使用(Reuse)。•丰富而又可扩展的视图(Views)•内容提供器(ContentProviders)•资源管理器(ResourceManager)•通知管理器(NotificationManager)•活动管理器(ActivityManager)•Libraries:Android里已经提供的C/C++库存组件(或称模块)。例如,SQLite数据库系统、OpenGL3D绘图系统等。•AndroidRuntime:Java语言层级的VirtualMachine。•Linux核心:Android依赖Linux2.6来提供核心的服务,例如内存管理、进程(Process)管理、执行绪(Thread)管理等。6Android层次-kernelAndroid基于Linux2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。LinuxKernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。使用binder作为进程间通讯机制,取代传统进程间通讯机制7LinuxKernelDisplayDriverCameraDriverFlashDriverSDDriverKeypadDriverTouchDriverUSBDriverPMCommonKernel(FileSystem,Networking,etc)HardwareCameraISPTouchCPUMVEDDriverGCUDriverMMAccelerateBatteryChargingRTCAlarmModemIPCDriverWIFI/BTAndroidEnhancement(Binder,Ash,Log,ADB,etc)SensorsDriverAndroid–HardwareAbstractionLayer用户空间的C/C++库遵循Apache协议定义Android需要linuxdriver实现的接口将Android彻底和硬件抽象出来8Android层次结构-AndroidRuntimeAndroid包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。Dalvik虚拟机则是基于寄存器的,而非大多数虚拟机所采用的基于栈的实现Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层内存管理。9Android包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(applicationframework)暴露给开发者。下面列出一些核心库:系统C库多媒体库:OpenCore界面管理LibWebCoreSGL3D库FreeTypeSQLiteAndroid层次结构-Libraries10Android层次结构-ApplicationFramework通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。所有的应用程序其实是一组服务和系统,包括:ViewActivityManagerContentProviderNotificationManager11Android层次结构-ApplicationsAndroid魅力的终极体现:对用户:良好的用户体验,强大的用户亲和力对开发者:快速而灵活的开发平台,让开发者的灵感能快速转化为产品12Android进程运行基本开发方向-Android移植、集成所需知识:Linux操作系统知识Linux内核知识Linux驱动程序知识Android底层库Dalvik虚拟机AndroidGUI系统音频、视频和多媒体电话部分的连接部分传感器部分编译工具Vim或者EmacsAndroidShell脚本AndroidmakefileAndroidpython使用Android/build/tools基本开发方向-应用开发所需知识:Android核心组件AndroidUI组件AndroidGUI编程Android事件处理NDK开发OpenGL开发编译工具EclipseJava,C语言基本开发方向—Android系统开发所需知识:Linux操作系统知识Linux内核知识Linux驱动程序知识Android底层库Dalvik虚拟机AndroidGUI系统音频、视频和多媒体电话部分的连接部分传感器部分编译工具Vim或者EmacsAndroidShell脚本AndroidmakefileAndroid/build/toolsJava开发JNI技术三种开发形式•SDK开发–Windowslinuxmac•NDK开发–Windowslinux•源码开发–(完全源代码,Linux中开发)AndroidApplicationsAndroidapkbuildandpackagingAndroidapplicationunpackagingandrunAAPT打包示意图21限定符的类型和有效的值限定符有效值语言语言码,遵循ISO639-1标准,小写,如en,zh.地区遵循ISO3166-1-alpha-2标准,大写,前面加小写的“r‖,例如:rUS,rCN屏幕朝向port,land,square屏幕像素密度92dpi,108dpi等触摸屏类型notouch,stylus,finger键盘是否可用keysexposed,keyshidden首选的输入法nokeys,qwerty,12key首选非触摸导航方法nonav,dpad,trackball,wheel屏幕尺寸320x240,640x480等,大尺寸必须在前22资源管理框架23Activity介绍l展现为一个用户可视化界面lActivity可以多种形式呈现,如全屏模式,对话框模式,透明模式等lActivity的部分重要属性:landroid:label=stringresourcelandroid:icon=drawableresourcelandroid:launchMode=[multiple|singleTop|singleTask|singleInstance]24基础UI•menu:如何打造友好的菜单•ListView:用好列表,做好程序•Dialog:人机友好互动交流•Toast和Notification:温馨的提醒•各种View组件•自定义View组件25Applicationuidescription通过绑定Activity的setContentView()方法,在onResume之后绘制Atree-structureuiView/windowsbase图形系统层次结构AndroidAppsApplicationFrameworkNativeLibrariesHALSurfaceFlingerActivityManagerWindowManagerViewSystemDisplayDriver(FrameBuffer..)View----Image,Shape,Text,Animation,Canvas...2DgraphicsprocessActivityandroid.view.*android.graphics.*(Canvas,Paint,Path,Picture,Region...)ActivityManagerWindowManagerframeworks/base/core/jni/android/graphicSurfaceFlingerHAL/FrameBufferGetSurfaceObj./external/skia3DgraphicsprocessActivityandroid.opengl.*javax.microedition.khronos.egljavax.microedition.khronos.opengl(GLSurfaceView...)ActivityManagerWindowManagerframeworks/.../gles_jni/*SurfaceFlingerHAL/FrameBufferGetSurfaceObj./frameworks/base/openglAndroid图形系统GUIinclude:Java---android.graphics(Skialib,drawfeature)android.view.surfaceandroid.view.viewjavax.microedition.khronos.openglesandroid.openglC/C++--PixelFlinger(toollib)libuiSurfaceFlingerSkiaOpengl/es3DAndroid图形系统Android-动画tween对view的内容进行一系列变换(平移,缩放,渐变..)frame顺序播放一组图片,达到动画的效果.动画的类型Xml定义动画使用的配置节点编码定义动画使用的类渐变透明度动画效果alpha/AlphaAnimation渐变尺寸缩放动画效果scale/ScaleAnimation画面位置移动动画效果translate/TranslateAnimation画面旋转动画效果rotate/RotateAnimationAndroid-动画(缩放)定义动画文件res/anim/scale.xml?xmlversion=1.0encoding=utf-8?setxmlns:android=:interpolator=@android:anim/accelerate_decelerate_interpolatorandroid:fromXScale=0.0//起始时X轴比例(相较于图片本身)android:fromYScale=0.0android:toXScale=5//结束时y轴上的比例android:toYScale=5android:pivotX=50%//x轴轴心android:pivotY=50%//y轴轴心android:fillAfter=false//为true,该动画转化在动画结束后被应用android:duration=5000///持续时间(毫秒)/set注:LinearInterpolator,Accelerateinterpolator,DecelerateInterpolator,自定义Android-动画(缩放)定义布局文件ImageViewandro
本文标题:#LAMP人# 沈大海- Android应用开发-
链接地址:https://www.777doc.com/doc-5090957 .html