android从程序员到架构师之路-课程大纲(参考模板)

合集下载

Android_从程序员到架构师之路_V2_ok(1)资料

Android_从程序员到架构师之路_V2_ok(1)资料

Android:从程序员到架构师之路By 高焕堂课程简介:一般而言,人们大多先学开发(代码)的技术,随后才学(架构)设计的方法。

然而,在实际做事时,却是先设计,随后才写出代码来。

敏捷过程则让设计与写码迭代循环下去,一直到完成为止。

在本课程里,就遵循敏捷的迭代过程,从思想、方法、模式、范例和成功案例各种不同角度,带你学习从设计到代码的途径。

让你在活泼的过程中,轻松地从原本的代码世界,迅速熟悉设计的新天地。

在跃入架构设计新天地时,你很快会发现,架构设计的主要流派有二:●抽象思维派:致力于抽象出稳定、可靠、不变的共同性架构;亦即,追求<万变不离其宗>的宗。

●组合创新派:致力于组合出具体独特性的创新架构;亦即,追求<与众不同>的特质。

在本课程里,将以后者(组合创新)为主轴,希望能陪伴你在移动互联网、智能终端的创新潮流中,能如鱼得水、展现无比的创造力。

此外,也会帮你建立扎实的抽象思维能力。

为了让你能顺利从(代码)开发跃升到(架构)设计,本课程会坚持一个美好的信念:”各项架构设计决策都必须能迅速落实为代码”。

一方面符合敏捷的原则;另一方面,你可以从熟悉的代码中,领悟到其幕后的设计思想和技术。

例如,本课程也以Android开源的代码来阐述其幕后的UI、IPC、HAL等架构的设计思维和技巧。

为了特别强调架构与代码两者之间的无隙缝衔接,高焕堂老师特别设计了EIT代码造形,让组合创新派的设计核心:接口(即EIT的<I>)能直接落实到代码。

因之,EIT造形成为架构与代码的核心交汇点。

此外,在本课程里,将由高老师指导大家亲自进行架构设计,直接取得实务经验;例如,以移动互联网+智能家庭的情境,设计出手机与TV整合、多萤互动的新型系统架构,并迅速落实为可执行的框架代码。

并藉由成功案例分享来提供大量的实务设计模式,融合到框架的开发与API设计上,让学员在最短的时间内获得扎实的设计经验和技巧;往上应用于各行各业上。

Android开发工程师培训课程大纲

Android开发工程师培训课程大纲

Android开发工程师培训课程大纲程序开发随着信息化成为热门行业,随着移动互联出现,Android的火爆让Android程序员成为炙手可热被企业哄抢的对象,开发人才的大量空缺让程序员迎来新一波高薪就业热潮。

科技时刻在发展,Android作为前沿科技变化更是日新月异,Android程序员必须时刻提升自身专业实力,以求更好发展得目的。

千锋Android开发工程师培训作为行业最具权威的Android研发和人才培训基地,专业的教学始终走在行业前沿位置,虽是行业领军者,但一直学习,努力提升自身,以新颖的教学和雄厚的师资赢得学员一致认可。

一:本课程能让你学到什么,做到什么?1. 学习Java语言及核心知识,快速掌握应用程序开发所需的程序语言基础2. 掌握Android开发环节中的工具和控件的属性和使用方法,了解技术的开发环境、熟练掌握开发工具3. 应用实战开发,掌握完整项目开发流程,增强团队合作意识二:谁最适合参加Android开发培训课程?- 热爱技术开发,有严谨的逻辑思维能力- 理工科院校或有相关职业培训的学员,有一定Java程序基础等(基础薄弱学员,可以参加免费程序基础课程)三: 可胜任的职位. Android应用研发工程师. Android测试工程师. Android系统UI设计师. Android系统架构设计师. Android系统移植师. Android动漫架构师四:课程介绍一、JAVA基础1.Java基础与基本思想(必须);2.HTML/CSS/JavaScript(Android web应用必须);二、Android基础开发课程1-架构&开发环境搭建2-工程结构&核心组件&模拟器&DDMS&LogCat;3-Android程序生命周期&Activity组件;4-UI事件处理与布局管理;5-View&基础UI控件;6-Intent与Intent过滤器;7-高级UI控件8-SharedPreferences&文件操作;9-SQLite数据库基础CRUD;项目案例(两周32课时)三、Android中级开发课程1-UI样式&主题&UI设计;2-Android后台服务;3-Handler与Looper技术8-SharedPreferences&文件操作;9-SQLite数据库基础CRUD;项目案例(两周32课时)四,Android中级开发课程1-UI样式&主题&UI设计;2-Android后台服务;3-Handler与Looper技术4-ContentProvider共享数据;5-BroadcastReceiver与Notification;6-SQLite数据库高级&DAO模式;7-MVC 模式N层架构;8-XML数据解析;9-HTTP网络编程;10-WebKit应用与JavaScript支持;11-Socket编程&协议&多线程;12-WebService&云计算;13-国际化与本地化;项目案例(两周32课时);五Android高级开发课程1-收发SMS/MMS短消息;2-电话相关应用;3-WiFI编程;4-蓝牙编程;5-定位与GPS;6-Map地图应用开发;7-传感器应用开发;8-2D图形开发技术;9-动画开发技术;10-OpenGL基础应用;11-OpenGL高级应用;12-音频捕捉与回放;13-视频捕捉与回放;14-游戏开发与游戏引擎;15-JNI&NDK&应用移植;16-开机启动桌面组件开发&快捷方式;Android开发工程师收入较高备受互联网行业重视,很多技术型人才要转型到Android 开发,从事移动互联网行业,千锋Android开发工程师培训是Android培训行业领导者,培养了很多游戏的Android开发者,为很多面临转型和想要从事Android开发的人才提供了良好的培训平台。

android从程序员到架构师之路介绍

android从程序员到架构师之路介绍

麦可网/ 高端android体系化学习Android:从程序员到架构师之路Android发展多年的今天,很多工程师都遇到职业发展瓶颈了,不知道如何向上走,因此麦可网携手台湾Android教父高焕堂老师推出了《Android架构师之路》这套国内唯一的课程,通过这套课程学习,学员们会学习高老师提出的EIT架构设计模式,能从普通Android工程师往Android架构设计师这个新的台阶攀登,同时更加熟悉Android本身体系结构设计,也可以换位以Android系统的设计师角度来思考问题。

由于Android是开源开放的平台,国内开发者不仅涉及App应用开发,也深入到底层软硬整合开发。

随着Android产业急速扩大,上下层模块日益增多,复杂性增高。

无论是软硬件开发者都需要优越的架构思维、模式和方法,来支撑复杂的软硬整合、跨平台和自动化测试问题。

本课程解析移动应用开发的架构思维、模式和方法;并落实为Android的多层框架体系;所介绍的架构设计决策,都能落实为代码,为一个非常务实的课程。

随着这套课程的推出,麦可网已经有了高级应用,Framework,底层嵌入式,架构师之路等一系列互补系统的Android课程,全面覆盖纵横领域。

毫无悬念的麦可网已经具备了国内最强大,系统,专业的Android课程体系。

这套课程的针对人群:Android开发已经有至少两年经验的IT工程师,多年开发经验想深入了解Android这个开源平台的资深工程师,Android项目团队的技术管理者。

我们不建议:不建议Android初学者学习这套课程;不建议没有项目经验者学习这套课程;不建议没有遇到瓶颈者学习这套课程。

有人问:架构课程是否会讲解的很虚?这套课程有超过2/5 都是案例,结合代码和UML案例来分析各个设计场景,所以大可放心,欢迎点击我们的试听课程。

Android教学大纲

Android教学大纲

Android教学⼤纲Android从⼊门到精通课程教学⼤纲课程编号:201709210012学分:4学分学时:64学时(其中:讲授学时:35学时上机学时:29学时)先修课程:⽆后续课程:⽆适⽤专业:计算机相关专业开课部门:计算机系⼀、课程性质与⽬标Android从⼊门到精通是计算机专业学⽣必修的⼀门重要专业拓展选修课。

本课程中内容覆盖全⾯、讲解详细,其中包括Android应⽤和开发环境、Android应⽤的界⾯编程、常⽤的UI组件介绍、Android事件处理、深⼊理解Activity与Fragment、使⽤Intent和IntentFilter 进⾏通信、Android应⽤的资源、图形与图像处理、Android数据存储与IO、使⽤ContentProvider实现数据共享、Service与BroadcastReceiver、Android⽹络应⽤、多媒体应⽤开发、⽂字控实战项⽬等,了解Android技术发展应⽤的领域与前景,激发学⽣的学习兴趣,为进⼀步学习和应⽤计算机奠定良好的基础。

⼆、课程的主要内容及基本要求第1章 Android应⽤和开发环境(4学时)[知识点]Android的历史和发展搭建Android开发环境开始第⼀个安卓应⽤Android应⽤的基本组件介绍[重点]搭建Android开发环境开始第⼀个安卓应⽤Androiod应⽤的基本组件介绍[难点]搭建Android开发环境开始第⼀个安卓应⽤Androiod应⽤的基本组件介绍[基本要求]了解Android的发展和历史掌握Android的系统架构掌握如何搭建Android开发环境掌握Android应⽤的⽬录结构掌握第⼀个Android应⽤的编写和运⾏掌握Android应⽤的基础组件[实践与练习]完成相关习题。

第2章Android应⽤的界⾯编程(6学时)[知识点]界⾯编程和视图布局管理器⼏组重要的UI组件[重点]界⾯编程和视图布局管理器⼏组重要的UI组件[难点]界⾯编程和视图布局管理器⼏组重要的UI组件[基本要求]掌握Android界⾯的⼏种布局⽅式掌握常⽤的集中UI组件掌握两种重要的Adapter⽤法[实践与练习]完成相关习题。

Android最佳学习路线图

Android最佳学习路线图

Android 游戏与应用开发最佳学习路线图为了帮助大家更好的学习Android ,并快速入门特此我们为大家制定了以下学习路线图,希望能够帮助大家。

一、 路线图概括:二、具体需要掌握知识点:Java基础Android游戏与应用开发四、 在此我们为大家推荐:由【尚观4G 只能操作系统研究室】郭宏志老师编写的 《Android 应用开发详解》这本书以及我们的免费教学视频网站,本书提供大量的实战项目及详细解决方案,相信对初学者还是相关开发人员都会有比较大的帮助。

五、 免费视频教程及下载地址Java 入门与强化1/playlist/4003320-1320045357-1.html#33879945 Java 入门与强化2/playlist/4003320-1320045357-1.html#33880275 Java 入门与强化3/playlist/4003320-1320045357-1.html#33880423 Java入门与强化4/playlist/4003320-1320045357-1.html#33887542 Android环境搭建1/playlist/4003320-1320045357-1.html#34055420 Androiud环境搭建2/playlist/4003320-1320045357-1.html#34265145 Android环境搭建3/playlist/4003320-1320045357-1.html#34266369 Android游戏及应用开发之1/playlist/4003320-1320045357-1.html#33844107 Android游戏及应用开发之2/playlist/4003320-1320045357-1.html#33845175 Android游戏及应用开发之3/playlist/4003320-1320045357-1.html#33851696 Android游戏及应用开发之4/playlist/4003320-1320045357-1.html#33852758 Android游戏及应用开发之5/playlist/4003320-1320045357-1.html#33848363 Android游戏及应用开发之6/playlist/4003320-1320045357-1.html#33855468 Android游戏及应用开发之7/playlist/4003320-1320045357-1.html#33857388下载地址:Android 最佳入门视频/file/t02a973ad8尚观-4G手机游戏及应用开发1/file/t02c1e4b06尚观-4G手机游戏及应用开发2/file/t08499e1c7尚观-4G手机游戏及应用开发免费基础课之iPhone1/file/t02e16605f尚观-4G手机游戏及应用开发免费基础课之iPhone2/file/t03f013897尚观-4G手机游戏及应用开发免费基础课之iPhone2/file/t0f3211309尚观-4G手机游戏及应用开发免费基础课之Android播放器/file/t0ca4e4583尚观-4G手机游戏及应用开发免费基础课之Android游戏俄罗斯方块/file/t0d7c72157尚观-4G手机游戏及应用开发免费基础课之Android博客登陆客户端/file/t094baf7e0Android 学习路线图收藏1.Java基础很多朋友一上手就开始学习Android,似乎太着急了一些。

安卓工程师培训课程路线

安卓工程师培训课程路线

课程简介
课程一共分为5个阶段,包括Java编程开发、Android基础开发、Android高 级开发、企业案例实战。课程知识点全面而实用,涵盖了Java基础编程、高级 编程、Android界面高级编程、动画特效、网络通信、云存储、热门企业案例实 战等移动开发的核心内容。课程每一阶段的内容都经过精心设计与实践,既能 够满足学习的连贯性,又能够满足真实企业移动开发人才需求。通过理论与实 战相结合的方式,力求让每位学员真正掌握技术开发关键点,在短期内迅速提 高实战能力。
第一阶段:java编程开发
1、Java语法与Java面向对象思想 (课程内容:本课程从零起点,讲述了Java内核的起源、发展历程以及目前广泛 的场合;详细讲解语法及面向对象思想;详细讲解Java API中常用库的使用; 讲 解泛型、反射。)
2、java数据结构及算法 (课程内容:数据结构与算法是一门非常重要的基础课程,Java语言中数据结构 与算法大部分由Java的集合框架实现,本部分内容主要是要详细讲解怎么使用 集合框架、详细讲解JavaBean与集合框架在开发项目时的使用、详细讲解xml与 Json。)
第一阶段:java编程开发
3、GUI界面编辑 (课程内容:所有的上层语言都可以使用库实现界面,学习界面技术后就可以做 出桌面应用软件。本课程重点讲解AWT与Swing的界面实现技术,并会带领学员 开发小项目贪吃蛇、计算器等来巩固学习GUI技术。)
4、java进程、线程 (课程内容:进程与线程在程序开发中无疑占有极其重要的地位,而 Java 语言 为了能提供统一的、与平台无关的关于进程和线程的编程接口,必然要对操作 系统提供的相关功能做进一步封装。本课程全面讲解Java 中关于进程与线程的 相关封装类,揭示如何创建 Java 进程与线程,Java 封装类和实际的系统本地 进程和线程是如何对应的,以及使用 Java 进程和线程时的并发控制。)Leabharlann 第一阶段:java编程开发

Android移动应用开发案例教程(慕课版)-课程大纲.docx[5页]

Android移动应用开发案例教程(慕课版)-课程大纲.docx[5页]
5.3.Intent和IntentFilter的解析
5.3.2 IntentFilter解析
5.3.3.案例2:手机浏览器启动APP开发
5.4.Activity的传值
5.4.1.Activity跳转时传递数据
5.4.2.获得Activity返回的数据
5.4.3.案例3:个人信息发送与接收APP开发
5.5.Activity的生命周期
八、Android的网络编程Volley和Gson框架
8.1学习目标
8.2 HTTP协议简介
8.3 Volley框架的使用
8.3.1 Volley框架的简介
8.3.2 Android中使用Volley
6.1.学习目标
6.2.ListView控件
6.2.1.ListView控件介绍
6.2.2.ListView控件的使用
6.2.3. ListView常用Adapter
6.2.4.案例1:使用ListView完成通讯录开发
6.3. BaseAdapter适配器
6.3.1. BaseAdapter适配器介绍
4.3.常用UI控件的应用
4.3.1.ImageView控件的使用
4.3.2.ImageButton控件的使用
4.3.3.ProgressBar控件的使用
4.3.4.案例2:Progressbar自定义菊花加载效果
4.4.Window与Dialog的应用
4.4.1.Toast控件的使用
4.4.2.PopupWindow的应用
4.4.3.AlertDialog的应用
4.4.4.案例3:用户登录协议确认功能开发
4.5.课程小结
4.6.课后练习
4.7.课堂笔记

Android课程大纲

Android课程大纲

Android课程大纲Android—Java基础(25天)Java开发环境搭建1.基础知识2.JAVA环境的搭建3.Hello World4.小程序JAVA语法基础基本语法1.掌握关键字、标识符2.了解常量、进制转换3.掌握变量、数据类型、类型转换4.掌握运算符、转义字符5.运算符优先级分支语句1.JAVA语句有哪些结构2.分支结构3.if语句的用法4.switch语句的用法循环语句1.什么是循环语句2.for循环3.while循环4.do-while循环5.break语句6.continue语句方法的使用1.什么是方法2.方法的声明3.方法的调用4.什么是方法重载5.递归算法什面向对象面向对象1.掌握面向对象设计思想2.构造方法3.类的封装性4.内存分析5.各种关键字6.继承7.访问权限8.方法重写9.接口10.多态11.内部类12.单例模式13.工厂模式数组数组1.JAVA中数组概念2.一维数组的声明和使用3.数组的排序:冒泡,插入,选择,4.数组的搜索:顺序,二分搜索法。

5.二维数组的简单使用6.数组的工具类Arrays,System类7.异常异常1.异常机制2.异常的处理3.自定义异常了解Fragment其它子类Java类常用类1.JAVA基本数据类型与其对应的包装类2.JAVA字符串类:String,StringBuffer,StringBuilder3.JAVA中常用的类:Math,Date,Calendar,SimpleDateFormat4.JAVA中常用类:Random,Runtime,System5.正则表达式的简单实用6.什么是枚举集合类-List1.JAVA中集合的概念以及集合框架的介绍2.Collection接口的使用3.List接口的存储特点4.集合中泛型的使用5.迭代器Iterator的工作原理以及使用6.List接口的常用实现类,ArrayList以及LinkedList的实现方式以及存储特点7.Vector以及Stack的使用集合类-Set1.Set集合的存储特点2.TreeSet的实现原理parable接口的使用parator接口的使用5.LinkedHashSet实现类Map集合1.Map集合的特点2.Map集合的常用方法3.获取集合对象的几种方式4.Map集合的常用类:HashMap和TreeMapIO流IO流操作1.File类和常用方法2.IO流的概念和原理3.IO流的分类4.字节流的常用方法5.字符流的常用方法6.文件流7.转换流8.字节缓存流和字符缓存流9.标准输入输出流:System.in和System.out10.内存流的使用11.打印流的使用12.对象序列化13.对象流14.RandomAccessFile15.装饰者模式Java多线程多线程-初步1.JAVA中进程的概念2.JAVA中线程的概念3.线程的创建方式4.线程的优先级5.线程的常用方法6.线程的生命周期7.线程的停止多线程-数据安全1.JAVA中多线程间的数据安全2.synchronized关键字3.同步方法4.同步代码块5.互斥锁6.死锁7.ThreadLocal类多线程—生产者消费者模型1.生产者消费者模型2.线程等待3.线程唤醒4.守护线程网络编程网络编程-TCP1.网络的概念2.网络通信协议3.TCP/IP协议4.IP地址和端口号5.Socket6.ServerSocket网络编程-UDP1.UDP编程2.飞秋练习:多客户端聊天,多线程下载3.UDP编程4.飞秋练习Java-数据库HTML&SQLite 1.HTML的表格,表单,列表标签2.HTML样式的使用:CSS3.SQLite数据库4.create创建表语句5.alter修改表结构语句6.掌握SQL增删改查语句Servlet&网络访问Servlet&网络访问1.B/S和C/S结构2.Tomcat的作用3.Servlet的生命周期4.Servlet的应用5.URL类和常用方法6.HttpURLConnection类获取网络资源HttpClient 1.HttpClient类2.HttpClient与HttpURLConnection的区别3.HttpClient的get请求获取资源4.HttpClient的post请求获取资源5.接口回调在网络下载中的使用6.HttpClient接口回调方式下载网络资源7.文件上传的客户端实现XML解析(SAX&PULL) 1.XML2.XML语法定义3.SAX解析原理4.PULL解析原理反射机制& JSON解析1.反射的使用2.JSON数据格式3.JSON与XML之间的比较4.JSON解析JavaWeb课程内容网页设计基础1、HTML的基本元素2、HTML的table元素3、HTML的form元素4、JavaScript的基本原理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android:从程序员到架构师之路By 高焕堂课程简介:一般而言,人们大多先学开发(代码)的技术,随后才学(架构)设计的方法。

然而,在实际做事时,却是先设计,随后才写出代码来。

敏捷过程则让设计与写码迭代循环下去,一直到完成为止。

在本课程里,就遵循敏捷的迭代过程,从思想、方法、模式、范例和成功案例各种不同角度,带你学习从设计到代码的途径。

让你在活泼的过程中,轻松地从原本的代码世界,迅速熟悉设计的新天地。

在跃入架构设计新天地时,你很快会发现,架构设计的主要流派有二:●抽象思维派:致力于抽象出稳定、可靠、不变的共同性架构;亦即,追求<万变不离其宗>的宗。

●组合创新派:致力于组合出具体独特性的创新架构;亦即,追求<与众不同>的特质。

在本课程里,将以后者(组合创新)为主轴,希望能陪伴你在移动互联网、智能终端的创新潮流中,能如鱼得水、展现无比的创造力。

此外,也会帮你建立扎实的抽象思维能力。

为了让你能顺利从(代码)开发跃升到(架构)设计,本课程会坚持一个美好的信念:”各项架构设计决策都必须能迅速落实为代码”。

一方面符合敏捷的原则;另一方面,你可以从熟悉的代码中,领悟到其幕后的设计思想和技术。

例如,本课程也以Android开源的代码来阐述其幕后的 UI、IPC、HAL等架构的设计思维和技巧。

为了特别强调架构与代码两者之间的无隙缝衔接,高焕堂老师特别设计了EIT代码造形,让组合创新派的设计核心:接口(即EIT的<I>)能直接落实到代码。

因之,EIT造形成为架构与代码的核心交汇点。

此外,在本课程里,将由高老师指导大家亲自进行架构设计,直接取得实务经验;例如,以移动互联网+智能家庭的情境,设计出手机与TV整合、多萤互动的新型系统架构,并迅速落实为可执行的框架代码。

并藉由成功案例分享来提供大量的实务设计模式,融合到框架的开发与API设计上,让学员在最短的时间内获得扎实的设计经验和技巧;往上应用于各行各业上。

课程大綱:Part-1: 从架构到代码的过程1.1 敏捷与架构的完美组合●敏捷开发的原则和价值观●开发、架构、测试之关系●架构在敏捷过程里的角色●架构师在敏捷过程的职责●过程观点:(需求)测试做<反馈>,敏捷(过程)做<迭代>;●分合观点:(架构)设计做<分>,(代码)开发做<合>●测试触发反馈,反馈带动迭代,迭代驱动<架构代码>重构●迭代促进了<架构师&开发者>的心灵沟通与携手协作●举例:架构师如何设计敏捷的起始架构(Simple Solution)⏹加法设计:围绕问题( Problem)和愿景(Vision),产生创意构想(Creative Idea)⏹减法设计:创意爱上限制(Creativity loves constraint)1.2 代码是架构的外貌,永远青春●架构师与开发者的合作成果:架构+代码=软件(系统)●架构是软件的骨架、代码是软件的外貌●架构是软件的核心●架构的用意:创新组<合>●架构设计的焦点:接口(Interface)●设计决策具有<未来性>,系统才能适应未来1.3 设计与开发的分工合作●架构设计的目的是:组合●架构师做<分>,支持开发者做<合>,合作实践(系统)组合●分得妙,就能合得快(即:分之以为用,合之以为利)●分得妙,就能得好接口(Interface)●架构师的核心工作:接口设计(Interface Design)●开发者的核心工作:依据接口,开发(系统)模块并整合●有许多种开发者:如App开发者、底层系统开发者等1.4 敏捷思维:尽快呈现架构的外貌●接口设计是<物>的组合设计●接口设计是<事>的分工设计●架构师设计多种接口来支撑分工与组合●架构师心中的4种接口:SI、PI、API和UI⏹SI:本架构与外部系统之间的整合接口⏹PI:本架构与内部挿件(Plug-in)之间的接口⏹API:本架构与应用程序(App)之间的接口⏹UI:App与用户的互动接口●依循敏捷原则,接口迅速落实为代码,尽快呈现外貌1.5 EIT造形:接口美丽的外貌●认识EIT软件造形●EIT造形:呈现核心设计的外貌●EIT造形的<I>可涵盖三种:SI、PI、API●EIT造形的<E>代表本架构●EIT造形的<T>代表本架构的配件(即插件:Plug-in)1.6 一群<E&I>美妙的组合是:框架(Framework)●认识GoF的设计模式(Design Pattern)●随着敏捷的迭代过程,EIT造形会逐渐增加●如何巧妙组合渐增的EIT造形:擅用设计模式●组合起来,就成为软件框架了●如何迭成多层级(Layer)的框架体系:以Android为例Part-2: 从Android框架代码中学习设计2.1基础设计模式(Pattern)的代码:以Android为例●Template Method模式:IoC(控制反转)机制●Observer模式:接口设计●Abstract Factory模式:两个EIT造形的组合●Adapter模式:封装接口●Composite模式:实践组合●Façade模式:组合体的接口设计●EIT造形是原子,设计模式是分子●更多EIT造形的组合模式:以Android代码为例2.2 从 UI框架入手●View体系的架构设计(使用Template Method模式)●Activity-View的架构设计(使用Factory模式)●Layout-View的架构设计(使用Composite模式)●WMS(WindowManagerService)-View的架构设计●WMS-SurfaceFlinger的架构设计●Surface-Canvas(画布)的架构设计●SurfaceView与OpenGL的3D绘图架构设计●ListView框架的设计2.3 跨进程(IPC)架构设计●Android 的IPC幕后设计:BD(Binder Driver)驱动架构●以IBinder接口包装BD驱动的服务●包装IBinder接口的Proxy-Stub设计模式●Proxy和Stub类别的代码●设计Proxy和Stub类别的API●如何自动生成Proxy和Stub类别代码●IBinder & AIDL方法⏹方法(一):Implementing a Binder⏹方法(二):Using a Messenger⏹方法(三):Bound Services2.4 Java与C/C++两层框架的设计●JNI(Java Native Interface)代码开发要点●JNI的数据型态(Data Type)转换规则●JNI的线程(Thread)模式:JNIENV类的设计●正向通信:Java函数调用本地C函数●反向通信:本地C函数调用Java函数●Android HAL架构设计⏹HAL(Hardware Abstraction Layer)的意义⏹理解runtime与HAL Stub⏹撰写HAL Stub代码⏹Stub调用Linux Kernel的方法2.5 核心服务的框架设计●认识核心服务(Core Service)⏹核心服务都是在开机过程中,由Android的INIT进程启动的⏹包括Android Service和 Native Service两种⏹以Java语言撰写的,就称为Android Service⏹以C++撰写的,就称为Native Service●亲自撰写一个核心服务⏹撰写一个C++类别⏹继承BBinder基类,继承得来IBinder界面⏹提供接口给Java层(透过JNI)调用2.6 JUnit测试框架的设计●Android的测试工具,都是基于JUnit测试框架的●JUnit框架也是由许多EIT造形所组成;其TestCase基类是<E&I>●从基类衍生出各子类,如ServiceTestCase就是扩充的<E&I>;其内涵的setUP()和tearDown()函数就是<I>●可撰写<T>(即Test case)代码,来启动TDD机制●可使用TestSuite基类来管理一群相关的<T>(即Test case)Part-3: 梳理你的架构设计思想、方法和模式3.1 复习设计概念与技艺概念复习●说明框架的起源、分层与其「无用之用」效果●阐述应用框架魅力的泉源:控制反转(IoC, Inversion of Control)机制●深入认识控制反转机制●主控者是框架,而不是应用程序●现代应用框架:采取广义IoC观念●框架的重要功能:提供默认行为(Default Behavior)技艺复习●抽象(无之)与衍生(有之)●打造框架:细腻的抽象步骤●基本步骤:⏹细腻的手艺(一):数据抽象⏹细腻的手艺(二):函数抽象⏹细腻的手艺(三):将抽象类别转为接口●善用类的继承(Inheritance)机制●设计基类的抽象函数●抽象是手段,组合是目的UML复习●UML的3种基本图表:类图、顺序图和用例图●以UML表达设计模式和框架●EIT造形的两种表达:UML图和代码3.2架构设计的需求分析方法●基本设计技能:把轮胎拔掉●伟大的雕刻师罗丹( Musée Rodin)说:”把不必要的部分去掉”●买主需求:想想为什么(why)汽车架构师会决定把轮胎拔掉呢? 其背后的理由是:买主来了,才知道买主对轮胎的偏好或特殊需求。

只有等到买主决定和挑选了轮胎之后,才能将轮胎装配上去。

●探索买主需求⏹为什么把轮胎拔掉呢?⏹为什么火锅店的桌子要挖洞呢?⏹为什么餐厅要分开<食谱>与<点菜单>呢?3.3 接口设计模式什么是接口(Interface)●在OOP里,将接口定义为一种特殊的类别(Class)●在Java里,将”纯粹抽象类别”称为接口(Interface)●EIT造形的接口表示为<I>●<I>可以合并到<E>里谁控制<I>?●<E>成为控制点●引擎<E><I>驱动轮胎<T>如何控制API ?●UI与API●被动型API与主动型APIAPI与商业模式●API决定控制权&金流●没钱就改版,改版就有钱●以HAL为例,说明API = 话语权●谁拥用接口的制定权,谁就掌握控制点,就能获得较大的话语权●从API看控制力量的强弱等级●把控制力传播出去Part-4: 亲自<敏捷+架构>、并迭代出代码4.1 情境范例:”手机访问TV/STB”●愿景:多屏互动、幸福家庭的实践●亮点:许多智能设备大量进入家庭,在家里的Android TV建立一朵私密云,来整合窗外多个云平台和手机移动终端,变得流行起来。

相关文档
最新文档