tag 标签: 案例分析

相关博文
  • 热度 19
    2013-6-8 15:00
    804 次阅读|
    0 个评论
         Android 框架实践与案例分析(深入浅出)培训 一:前言:    APK 是AF(Application Framework)和应用开发工程师共同智慧的结晶,APK的运行是AF和应用开发工程师开发的Code相互作用。 本课程依据和Android之父以及Google、三星、HTC中的Android团队合作的经验,力求从设计者的角度带领大家彻底洞悉AF,先从AF的架构和移植讲起,然后详细的以AMS、PMS、WMS的Code细致验证和深度剖析,最后以ANR的彻底剖析结束。 二:这个课程能带给您什么价值? 有Android App开发经验应用软件开发工程师: 第一:解决应用程序频繁出现的疑难杂症,例如ANR、OOM等 第二:应用程序的安装、运行、结束背后的秘密、并以细致的代码剖析来深度探讨; 第三:是从应用开发工程师走向Android架构师最快捷、最实用的的道路; 有经验的Android系统开发人员: 第一:Application Framework内部所有的架构设计秘密揭秘,让你把自己的硬件服务移植进AF如行云流水般畅快; 第二:掌控Android应用程序开发者; 第三:领略最顶级的商业架构思维是如何转化为具体的框架代码的;   中国电子标准协会 http://www.ways.org.cn 三:适合对象:    有至少半年经验的Android应用程序开发;    有Android系统移植经验;      四、培训内容     第一天 第1个主题: Android的哲学思考 1. 造型简单、内涵丰富、无限重复 2. Android的IOC 3. APK与API   第2个主题:Android Application Framework揭秘 1. CS结构:应用框架中的Manager通用的结构 2. Manager与Service一一对应 3. 跨进程通信与AIDL   第3个主题:Android中启动一个新的应用程序揭秘 1. 当我们触摸Android屏幕中Launcher上的一个应用程序的图标的时候到底发生怎样的调用过程? 2. 应用程序的执行入口到底在哪里? 3. 一个新的Android应用程序的进程到底是怎么产生的?   第4个主题:Dalvik VM 1. Dalvik VM的特点,Dalvik VM和JVM的比较 2. Dalvik VM的内存分布及OOM(Out of Memory)的根本原因和解决方案是什么? 3. Preload Classes和 Preload Resources,ClassLoader到底在哪里? 4. Dalvik与Java和C/C++   第5个主题:把Java写的 Service加入到Applciation Framework中 1. IInterface与CTS 2. Binder 3. AIDL 4. Java Service与Manager 5. SystemServer、ServiceManager   第6个主题:Android框架移植移植时的事件驱动机制 1. Android Service是如何应对硬件阻塞的? 2. 开辟新的子线程并不断的poll 3. Listener注册 4. Callback 5. Application Framework中的Handler、Message、Looper、MessageQueue、 6. 事件驱动机制实例   第7个主题:Manager、Service和完整的数据流 1,Manager和Service分离的原则 2,ANR问题 3,阻塞式的操作和非阻塞式操作 4,以实例说明Android中的从最底层到最上层的数据流     时间 內  容 备注 第二天 第1个主题:ActivityManagerService之AMS总体剖析 1.ActivityManagerService的main函数剖析 2,AMS的 setSystemProcess剖析 3.AMS的 installSystemProviders函数剖析 4.AMS的 systemReady剖析   第2个主题:ActivityManagerService之startActivity剖析 1.ActivityManager 2.AMS的startActivityAndWait函数剖析 3.startActivityLocked剖析   第3个主题:ActivityManagerService之Broadcast和BroadcastReceiver剖析 1.registerReceiver流程剖析 2.sendBroadcast流程剖析 3.BROADCAST_INTENT_MSG消息处理函数 4.应用进程处理广播剖析   第4个主题:ActivityManagerService之startService剖析 1.startService代码剖析 2.startService流程图 3.源码剖析   第5个主题:ContentProvider源码剖析 1.ContentProvider注册源码剖析 2.ContentProvider查询源码剖析 3.ContentProvider数据监听源码剖析   第6个主题:ActivityManagerService之进程管理 1.Linux和Android中的进程管理 2.AMS进程管理函数剖析   第7个主题:ActivityManagerService之App的 Crash处理 1.应用进程的Crash处理 2.AMS的handleApplicationCrash剖析 3.AppDeathRecipient binderDied剖析       时间 內  容 备注 第三天 第1个主题:PackageManagerService之main函数剖析 1.构造函数剖析之前期准备工作 2.构造函数剖析之扫描Package 3.构造函数剖析之扫尾工作 第2个主题:PackageManagerService之APK Installation剖析 1.adb install剖析 2.pm剖析 3.installPackageWithVerification函数剖析 4.APK 安装流程 5.Verification介绍   第3个主题:PackageManagerService之queryIntentActivities剖析 1.Intent及IntentFilter介绍 2.Activity信息的管理 3.Intent 匹配查询剖析 4.queryIntentActivities总结   第4个主题:PackageManagerService之installd及UserManager剖析 1. installd剖析 2.UserManager剖析     第5个主题:WindowManagerService之应用程序界面的初始化 1. Android中的窗口 2.应用程序界面初始化的过程   第6个主题:WindowManagerService之窗口管理 1. WindowManagerService.java     WindowState.java     WindowToken.java     AppWindowToken.java     Session.java     InputManager.java     InputMonitor.java 等的分析 2.Activity启动过程中创建窗口的时序   第7个主题:WindowManagerService之WindowManagerImpl剖析 1. addView 2.ViewRoot     第8个主题:WindowManagerService之WindowManagerImpl剖析 1. ViewRoot和WMS的交互 2.WindowState和Surface   第9个主题:彻底洞悉ANR 1. ANR通常出现的场景和常用的解决方案 2.从框架和系统的观点来看:ANR到底是怎么产生的? 3. ANR的终极解决方案是什么?      
  • 热度 21
    2013-2-20 09:59
    2380 次阅读|
    0 个评论
    学习对象:技术负责人/技术总监,项目经理/项目管理人员/架构师/,测试部门/质量管理部门,资深开发人员,一般开发人员 课程内容 课程背景 软件最核心的资产是代码,而对于一个日积月累的产品而言,代码的可维护性意味着未来的可持续性和成本竞争力。从这种角度来说,整洁的代码不只是开发人员的良好习惯,更是产品的关键质量因素。本课程从开发人员的视角,关注产品的核心代码的质量。通过大量的实例剖析讲解: 什么是好的代码:可读、可复用、可维护、可扩展。 如何编写好的代码:函数、类、变量、判定条件、模式、接口 如何对已有的代码进行质量度量 如何测试已有的代码 如何重构已有的代码 如何管理日益复杂的代码 为了切实帮助软件企业降低企业项目开发成本,大面积提高软件工程师编程能力和代码质量管理能力,我们特别推出了实战训练营. 分享多家大型研发中心代码管理经验给大家. 该课程适应于各个阶段的开发群体.初级工程师能够透过大师的眼睛来看待编程,了解编程的价值观和原则;具有丰富经验的设计师和架构师可以通过模式进行反思,探究成功实践背后的意义.把价值观,原则和开发实践结合;管理者通过学习业界著名研发中心的管理经验和失败的教训,来制定自己公司的代码管理策略.   培训目标: 面向以下不同的人群,有不同收获。 角色 收获 技术负责人/技术总监 树立代码质量意识 代码的两面性,静态结构与动态功能 软件技术债务和代码腐化 项目经理/项目管理人员/架构师 学习其他研发机构的代码管理思想 代码管理手段 代码管理相关流程和相关工具 代码审查 测试部门/质量管理部门 代码审查 代码检查列表 代码管理手段 代码管理制度的建立 资深开发人员 编程技艺和相关编程实践 重构手段 一般开发人员 编程技艺和相关编程实践 重构手段 代码坏味道  授课方式: 小班授课(12人之内)+ 案例讲解 + 小组讨论,60%案例讲解,40%实践演练 培训内容: 2天 第一篇: 编程是一种态度-------编程价值观 代码就是债务 内容一:代码是债务 代码的认识---代码就是债务 代码是债务,越少越好 你拥有的代码越多,添加新内容所要付出的成本就越高 通过案例分析让代码库尽可能小的方法: 尽可能创建通用的工具。 删除不用的代码或者特性。 确保项目模块化,并分割成相互没有关联的子项目。 熟悉你经常使用的代码库。 对代码库的规模时刻保持警惕,保持它是小而敏捷的。 通过国际研发中心电信计费系统演示代码是债务的思想,10多年国外研发团队设计与研发第一版本,目前几百人在维护 通过项目演示通过重构如何减少了一半的代码,维护的人员的减少 项目的失败可能归咎于各种各样的原因。一些项目因糟糕的需求而失败,另一些则由于钱和时间超支了,还有少数单纯是因为糟糕的管理所致。如果我们探究其根本原因,是否会发现所有项目失败的罪魁祸首是糟糕的代码呢? Bob大叔坚信糟糕的代码所带来的成本之大足够让一个项目失败。 编程价值观 内容一:编程价值观 编程的方法学 编程价值观---沟通,简单,灵活 优秀代码的评价标准, 什么是高质量编码? 特征是什么? 软件代码的可读性 代码的可扩展性 糟糕代码的特征 劣质代码的代价 大师评价整洁代码的标准 通过某项目代码是演示糟糕的代码,以及经过重构之后的代码,进行对此. 第二篇: 编程是一种技艺-------编程实践篇 高质量函数 内容一:高质量函数/过程 为什么需要函数 函数复杂度度量 函数圈复杂度以及度量 函数抽象层次-单一抽象层次原则SLAP(Single Level of Abstrction Principle) 函数实现模式之—组合函数(Composed Method) 万恶之源—函数过长 函数第一原则:是要短小,函数第二原则:是还要短小,函数第三原则:是必须短小 函数重构之道—抽取方法(Extract Method)和抽取对象函数 函数命名—怎样取好的函数名 通过大量项目代码分析,函数的遇到的各种问题,如何编程高质量函数 容二:函数代码重复 重复的危害 强加的重复/无意的重复/无耐心的重复/开发者之间的重复 不要重复自己DRY—Don"t Repeat Yourself Principle Make It Easy to Reuse(让复用变得容易) 魔法数(Magic number) 重复性代码(Duplicated Code) 接口不同的相似类(Alternative Classes with Different Interfaces) 系统分离关注点 系统架构的基础通用服务组件 通过某项目代码是介绍重复编码问题 演示研发过程之中的常见重复问题,以及如何解决 内容三:函数参数 函数参数过长 最理想的参数数量是零,其次是一,再次是二,有足够的理由才能使用三个以上参数. 函数参数重构之道-引入参数对象(introduce parameter object 函数参数的顺序. 不要把程序参数当做工作变量/临时变量 函数参数模式-collecting parameter 函数返回值 通过大量项目代码是函数参数问题 演示函参数的重构 内容四:变量 变量定义常见的错误 变量的数据类型 变量的初始化原则 变量的作用域 变量的持续性 变量的绑定时间 数据类型和控制结构之间的关系 变量的命名 全局变量 通过大量项目代码演示变量相关问题 演示变量的注意事项 复杂表达式与循环语句 内容一:条件表达式 IF/ELSE语句应该如何编写 Switch/Case语句应该如何编写 复杂条件表示式的危害 过分深层的缩进,或者“嵌套”,已经困扰了计算机界达25年之久,并且至今仍然是产生混乱代码的罪魁祸首之一 复杂表达式重构之道—引入解释变量/分解条件/抽取方法计算条件 表驱动法-多级嵌套IF语句的必然之道 表驱动法使用总则 某保险项目表驱动法应用案例分析 通过大量项目代码演示条件表达式编码问题 复杂表达式的注意事项,如何解决 内容二:利用多态解决复杂表达式 面向对象多态技术的新认识 减少使用if语句,重构到多态 以State/Strategy取代类型代码 引入Null Object 以Command替换条件调度程序 转移聚集操作到Visitor 转移装饰功能到Decorator 通过大量项目代码演示多态可以解决的编程问题 内容三:防止变异 防止变异-如何设计函数,对象,子系.使其内部的变化或不稳定性对其他元素元素产生不良影响 接口,多态,数据封装、间接性和标准都是源于PV 开闭原则 数据驱动(Data-Driven Design)编程 元数据或反射驱动(Meta-data or Reflective )编程 复杂业务逻辑-解释器驱动编程 案例—通过电信项目介绍如何设计应对变化 通过大量项目代码演示多态可以解决的编程问题 内容四:循环控制 选择循环的种类 循环控制 循环的创建-有内向外 循环与数组 递归 Goto语句 控制结构与复杂度 案例—通过电信项目介绍如何设计应对变化 通过大量项目代码演示多态可以解决的编程问题 高质量类设计与编码 内容一:类基础-数据抽象类型(Abstract Data Types) 类的基础:抽象数据类 需要用到ADT的场景 使用ADT的益处 基本类型依赖坏味道 数据泥团坏味道 案例—通过电信项目介绍数据的抽象 通过大量项目代码演示数据抽象类型解决的问题 内容二:数据封装 数据封装 数据的访问 类的封装 通过大量项目代码演示数据封装 内容三:面向对象设计与编程核心----职责分配 单一职责原则 RDD-职责驱动的面向对象设计方法 内容四:面向对象的编程 上帝类/过大的类--违反单一职责 依恋情结-一个方法视乎过于强调处理其他类的数据,而不是处理自己的数据 发散式改变 散弹式修改 消息链 中间人 不当的紧密性 案例—通过电信项目介绍OOP 第三篇: 编程是一种习惯-------管理实践篇 代码改善 内容一:代码重构 重构必然性 实际重构遇到的4大问题 如何发现重构点 如何去重构(重构方式) 如何知道重构何止截止 如何保证重构的正确性 介绍常见的重构技术 重构到模式的目录 内容二:代码测试 代码测试 代码测试的技巧集锦 代码测试的典型错误 改善测试过程 内容三:代码调试 代码调试 寻找代码缺陷 调试的心里因素 调试工具 内容四:修改遗留项目代码的艺术 必须修改遗留的代码起因 遗留代码修改危险事项 如何对依赖代码做测试 依赖代码的感知与分离 依赖代码修改的接缝技术 修改依赖代码的工具 降低风险的措施 接依赖技术 代码管理 内容一:代码质量度量 代码质量的度量 业界其他度量标准 通过分析多个实际项目,分别度量相关是否标准 内容二:代码静态分析工具 代码静态分析工具概述 以Java语言代码静态分析工具为例介绍 CheckStyle:用于编码标准 PMD 的 CPD:帮助发现代码重复 Coverlipse:测量代码覆盖率 JDepend:提供依赖项分析 Metric:有效地查出复杂度 其他语言相关代码静态分析工具 通过案例演示工具在项目之中的应用 内容三:代码评审 代码评审前期准备 代码评审的代码量 代码评审的检查表 代码评审的总结与学习 内容四:代码管理 结合国内多家研发中心的代码管理思路分享 代码质量体系的建立   课程特点: 1、理论与实践相结合,解决你的实际问题。 2、真实案例的剖析,深入浅出的讲解,使你能学以致用。 ************************************************** 【主办单位】 智通培训资讯网http://www.ways.org.cn 【咨询热线】 0755-26506757 13798472936    【联系人】 李正华 【报名邮箱】 martin-lee@163.com     培训客服QQ: 52630255   
相关资源
  • 所需E币: 5
    时间: 2024-9-4 20:57
    大小: 190.75MB
    上传者: HanSom
    系统架构设计师-案例分析总复习,历年真解释及知识点汇总,助力2024下半年软考
  • 所需E币: 3
    时间: 2023-3-5 21:42
    大小: 22.23MB
    上传者: 春秋529
    带完整书签目录,自己手动比对添加的书签,文字扫描版非图片扫描。案例分析比较生动。
  • 所需E币: 4
    时间: 2020-1-8 17:06
    大小: 51.07MB
    上传者: wfengying111
    《MATLAB智能算法30个案例分析》是由北京航空航天大学出版社出版的图书,作者是郁磊、史峰、王辉、胡斐。《MATLAB智能算法30个案例分析》是作者多年从事算法研究的经验总结。书中所有案例均因国内各大MATLAB技术论坛网友的切身需求而精心设计,其中不少案例所涉及的内容和求解方法在国内现已出版的MATLAB书籍中鲜有介绍。《MATLAB智能算法30个案例分析》采用案例形式,以智能算法为主线,讲解了遗传算法、免疫算法、退火算法、粒子群算法、鱼群算法、蚁群算法和神经网络算法等最常用的智能算法的MATLAB实现。《MATLAB智能算法30个案例分析》共给出30个案例,每个案例都是一个使用智能算法解决问题的具体实例,所有案例均由理论讲解、案例背景、MATLAB程序实现和扩展阅读四个部分组成,并配有完整的原创程序,使读者在掌握算法的同时更能快速提高使用算法求解实际问题的能力。《MATLAB智能算法30个案例分析》可作为本科毕业设计、研究生项目设计、博士低年级课题设计参考书籍,同时对广大科研人员也有很高的参考价值。第1章谢菲尔德大学的MATLAB遗传算法工具箱1.1理论基础1.1.1遗传算法概述1.1.2谢菲尔德遗传算法工具箱1.2案例背景1.2.1问题描述1.2.2解题思路及步骤1.3MATLAB程序实现1.3.1工具箱结构1.3.2遗传算法常用函数1.3.3遗传算法工具箱应用举例1.4延伸阅读参考文献第2章基于遗传算法和非线性规捌的函数寻优算法2.1理论基础2.1J1非线性规划2.1.2非线性规划函数2.1.3遗传算法基本思想2.1.4算法结合思想2.2案例背景2.2.1问题描述2.2.2算法流程2.2.3遗传算法实现2.3MATIAB程序实现2.3.1适应度函数2.3.2选择操作2.3.3交叉操作2.3.4变异操作2.3.5算法主函数2.3.6非线性寻优2.3.7结果分析2.4延伸阅读2.4.1其他函数的优化2.4.2其他优化算法参考文献第3章基于遗传算法的BP神经网络优化算法3.1理论基础3.1.1BP神经网络概述3.1.2遗传算法的基本要素3.2案例背景3.2.1问题描述3.2.2解题思路及步骤3.3MATLAB程序实现3.3.1神经网络算法3,3,2遗传算法主函数3.3.3比较使用遗传算法前后的差别3.3.4结果分析3.4延伸阅读参考文献第4章基于遗传算法的TsP算法4.1理论基础4.2案例背景4.2.1问题描述4.2.2解决思路及步骤4.3MATI.AB程序实现4.3.1种群初始化4.3.2适应度函数4.3.3选择操作4.3.4交叉操作4.3.5变异操作4.3.6进化逆转操作4.3.7画路线轨迹图4.3.8遗传算法主函数4.3.9结果分析4.4延伸阅读4.4.1应用扩展4.4.2遗传算法的改进4.4.3算法的局限性参考文献第5章基于遗传算法的LQR控制器优化设计5.1理论基础5.1.1LQR控制5.11.2基于遗传算法设计LQR控制器5.2案例背景5.2.1问题描述5.2.2解题思路及步骤……第6章遗传算法工具箱详解及应用第7章多种群遗传算法的函数优化算法第8章基于量子遗传算法的函数寻优算法第9章基于遗传算法的多目标优化算法第10章基于粒子群算法的多目标搜索算法第11章基于多层编码遗传算法的车间调度算法第12章免疫优化算法在物流配送中心选址中的应用第13章粒子群算法的寻优算法第14章基于粒子群算法的PID控制器优化设计第15章基于混合粒子群算法的TSP搜索算法”第16章基于动态粒子群算法的动态环境寻优算法第17章基于PSO工具箱的函数寻优算法第18章基于鱼群算法的函数寻优算法第19章基于模拟退火算法的TSP算法第20章基于遗传模拟退火算法的聚类算法第21章模拟退火算法工具箱及应用第22章蚁群算法的优化计算——旅行商问题(TSP)优化第23章基于蚁群算法的二维路径规划算法第24章基于蚁群算法的三维路径规划算法第25章有导师学习神经网络的回归拟合——基于近红外光谱的汽油辛烷值预测第26章有导师学习神经网络的分类——鸢尾花种类识别第27章无导师学习神经网络的分类——矿井突水水源判别第28章支持向量机的分类——基于乳腺组织电阻抗特性的乳腺癌诊断第29章支持向量机的回归拟合——混凝土抗压强度预测第30章极限学习机的回归拟合及分类——对比实验研究参考文献