王家林最受欢迎的一站式云计算大数据和移动互联网解决方案课程 V1(20140809)之Android软硬整合设计与框架揭秘: HALFramework Native Service AppHT

本文主要是介绍王家林最受欢迎的一站式云计算大数据和移动互联网解决方案课程 V1(20140809)之Android软硬整合设计与框架揭秘: HALFramework Native Service AppHT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

掌握Android从底层开发到框架整合技术到上层App开发及HTML5的全部技术;

一次彻底的Android架构、思想和实战技术的洗礼;

彻底掌握Andorid HAL、Android Runtime、AndroidFramework、AndroidNative Service、Android Binder、Android App、Android Testing、HTML5技术的源泉和精髓等核心技术,不仅仅是技术和代码本身,更重要的是背后的设计思想和商业哲学。

 

一、课程特色

l  贯通Android软硬整合和HTML5端云整合技术整个体系;

l 全程案例驱动,重在剖析案例代码背后的设计思维和商业密码;

l 彻底掌握Android HAL的背后的密码;

l 彻底掌握Android HAL的实现机制和技术

l 彻底掌握Android Framwork的背后的密码

l 彻底掌握Android Framwork的设计思维和理念

l 揭秘Android系统的运行的基石Binder

l 以Camera实例来彻底剖析Native Service和Binder

l 彻底实战编写Andorid应用程序的一切技术

l 掌握HTML5技术的源泉和精髓

二、培训对象

l  对Android软硬整合感兴趣的人员;

l  希望迅速了解和掌握Android应用和底层技术的人员;

l  Android底层开发者;

l  Android框架设计和开发者;

l  Android产品架构师;

l  Android系统架构师;

l  Android应用程序开发者;

l  欲从事HTML5系统工作的人员(浏览器的开发、PhoneGap的的Plugin开发等)

l  希望从事移动终端开发的爱好者、工程师、程序员、以及相关行业的工程技术人员

三、 培训目标

l  致力于打造在软硬云整合时代具有独立思考能力和实践能力的高素质IT人才;

l  Android高级工程师

l  Android移植工程师

l  Android框架开发工程师

l  Android项目经理

l  Android架构师

l  HTML5系统架构和开发人员

四、学员基础

      1) 具有Java基础;

      2) 具有C和C++基础更佳;

      3)对设计模式有所有了解对提升听课效果会大有裨益;

 

五、培训方式

本课程共计3天,内容涵盖Android底层、Android HAL、Android Runtime、Android Framework、Android Native Service、Android Binder、Android App开发、Android的Web开发等软硬云整合的的几乎所有核心技术并揭秘HTML5技术的源泉和精髓,致力于打造在软硬云整合时代具有独立思考能力和实践能力的高素质IT人才;授课是以案例驱动为基础重在讲解代码背后的设计思维和商业密码;

王家林老师(邮箱18610086859@126.com电话18610086859QQ:1740415547

中国目前唯一的移动互联网和云计算大数据集大成者;

云计算大数据Spark亚太研究院院长和首席专家;

 

Spark亚太研究院院长和首席专家,Spark源码级专家,Spark潜心研究(20121月起)2年多后,在完成了对Spark14不同版本的源码的彻底研究的同时不断在实际环境中使用Spark的各种特性的基础之上,编写了世界上第一本系统性的Spark书籍并开设了世界上第一个系统性的Spark课程并开设了世界上第一个Spark高端课程(涵盖Spark内核剖析、源码解读、性能优化和商业案例剖析)。Spark源码研究狂热爱好者,醉心于Spark的新型大数据处理模式改造和应用。

Hadoop源码级专家,曾负责某知名公司的类Hadoop框架开发工作,专注于Hadoop一站式解决方案的提供,同时也是云计算分布式大数据处理的最早实践者之一,Hadoop的狂热爱好者,不断的在实践中用Hadoop解决不同领域的大数据的高效处理和存储,现在正负责Hadoop在搜索引擎中的研发等,著有《云计算分布式大数据Hadoop实战高手之路---从零开始》《云计算分布式大数据Hadoop实战高手之路---高手崛起》《云计算分布式大数据Hadoop。实战高手之路---高手之巅》等;

 

Android架构师、高级工程师、咨询顾问、培训专家;

通晓Android、HTML5、Hadoop,迷恋英语播音和健美;

致力于Android、HTML5、Hadoop的软、硬、云整合的一站式解决方案;

国内最早(2007年)从事于Android系统移植、软硬整合、框架修改、应用程序软件开发以及Android系统测试和应用软件测试的技术专家和技术创业人员之一。

 

HTML5技术领域的最早实践者(2009年)之一,成功为多个机构实现多款自定义HTML5浏览器,参与某知名的HTML5浏览器研发;

超过10本的IT畅销书作者;

 

六、培训内容

 

第一天

1个主题:Android架构揭秘

1,1 Google是如何通过Android支持、掌控全球的硬件厂商和应用程序开发者的?

1,2 Android控制力的源泉是什么?技术上如何实现?

1,3 Android的Linux Kernal、HAL、Libararies、Runtime、Application Framework设计的理念和实现技术;

1.4 Android平台与硬件、云的微妙关系;

 

2个主题:Android开机流程揭秘

2,1 第一个用户进程剖析;

2,2 ServiceManager与Binder的关系;

2,3 Zygote揭秘及其运作方式;

2,4 Android中的第一个Java进程揭秘,第一个Java进程和ServiceManager的关系及代码实现;

 

3个主题:Android中启动一个新的应用程序揭秘

3,1 当我们触摸Android屏幕中Launcher上的一个应用程序的图标的时候到底发生怎样的调用过程?

3,2 应用程序的执行入口到底在哪里?

3.3 一个新的Android应用程序的进程到底是怎么产生的?

 

4个主题:HAL揭秘

4.1 HAL被加入Android中的真正历史原因分析

4.2 HAL的意外价值揭秘

4.3 HAL的Stub

4.4 hw_module_t与hw_device_t

4.5 C语言如何实现继承来满足HAL Stub的设计目的?包括内存结构分析和代码风格讨论等

4.6 如何避免HAL Stub实现时的Dirty Code?

 

5个主题:HAL Stub实战

5.1 用面向对象的思想分析、设计、实现Stub

5.2 hw_module_t的子类和hw_device_t的子类的关系以及这种关系的优势

5.3在结构体中如何实现C函数的调用?hw_module_t的子类在代码中又是如何和hw_device_t的子类交互的?

5.4 类型转换问题

 

6个主题:HALLinux Kernel

6.1 HAL Stub访问和控制硬件

6.2 Android下的Linux Kernel剖析

6.3 Android 硬件的Driver

6.4 访问Linux内核空间的Driver

 

7个主题:ServiceHAL Stub整合

7.1 以面向服务的观点和方式与HAL交互

7.2 Library的中so库文件的类型及C/S结构剖析

7.3 hw_get_module

7.4 获取HAL Stub对象的代码流程剖析

7.5 为何HAL Stub的open方法必须提供supporting API(对设备的操作接口)给runtime;

 

8个主题:ServiceServiceManagerBinder交互关系揭秘

8.1 Binder的第一号服务是谁?为何要这样设计和实现?

8.2 如何编写Service

8.3 新的Service产生与ServiceManager和Binder交互流程

8.4 如何获取一个Service?

8.5 Binder的生产者与消费者模式剖析

 

 

时间

內  容

备注

第二天

9个主题:BinderShared Memory

9.1 Binder源代码剖析

9.2 Shared Memory剖析

9.3 Binder是如何使用共享内存来完成进程间通信的?

9.4 从代码的角度来分析Binder使用Shared Memory的生产者与消费者模式

 

10个主题:Dalvik VM

10.1 Dalvik VM的特点,Dalvik VM和JVM的比较

10.2 Dalvik VM的内存分布及OOM(Out of Memory)的根本原因和解决方案是什么?

10.3 Preload Classes和 Preload Resources,ClassLoader到底在哪里?

10.4 Dalvik与Java和C/C++

 

11个主题:Android中的JNI编程

11.1 Java调用C/C++

11.2 JNIEnv、JVM、JObject揭秘

11.3 C/C++创建Java对象、调用Java属性和方法

11.4 JNI中的多线程编程

11.5 Facade Pattern在JNI中绝妙应用剖析

11.6 PnP(Plug and Play)

 

12个主题:Android中的NDK编程

11.1 NDK与JNI关系揭秘

11.2 NDK开发的流程

11.3 采用NDK方式开发出的程序安装和运行的内幕

11.4 NDK中的Java与C/C++相互调用

11.5 NDK中的多线程编程

11.6 关于Android软件开发的标准化和可替换性揭秘

 

13个主题:SystemServerFramework中的Service

13.1 Zygote与SystemServer

13.2 SystemServer开启Java世界的过程揭秘

13.3 Android Service和Native Service是如何关联起来的?

13.4 Android Service与ServiceManager

13.5 如何把自己的服务加入到ServiceManager中?

 

14个主题:Java写的 Service加入到Applciation Framework

14.1 IInterface与CTS

14.2 Binder

14.3 AIDL

14.4 Java Service与Manager

14.5 SystemServer、ServiceManager

 

15个主题:Android框架移植移植时的事件驱动机制

15.1 Android Service是如何应对硬件阻塞的?

15.2 开辟新的子线程并不断的poll

15.3 Listener注册

15.4 Callback

15.5 Application Framework中的Handler、Message、Looper、MessageQueue、

15.6 事件驱动机制实例

 

16个主题:ManagerService和完整的数据流

16.1,Manager和Service分离的原则

16.2,ANR问题

16.3,阻塞式的操作和非阻塞式操作

16.4,以实例说明Android中的从最底层到最上层的数据流

 

17主题:Android软、硬、云三位一体整合

17.1 从技术角度揭秘云,包括云的关键技术和实现方法

17.2 在Native Service中整合Android与云

17.3 在Application Framework中整合Android与云

17.4 Android软、硬、云三位一体整合,包括模式、策略、实现技术

     

 

 

时间

內  容

备注

第三天

18主题:Android Application FramworkApp的关系

18.1 Framework和App的具体关系是什么?

18.2 Framework和App的交互过程?

18.3 Framework如何掌控App的?

18.4 Framework与Android的四大组件;

 

19主题:Android Application FramworkApp的关系

19.1 Framework和App的具体关系是什么?

19.2 Framework和App的交互过程?

19.3 Framework如何掌控App的?

19.4 Framework与Android的四大组件;

 

20主题:HandlerLooperMessageMessageQueue

20.1. Android的事件驱动模型

20.2. Looper、MessageQueue、Hanlder、Message等源码深度剖析

20.3. Looper、MessageQueue、Hanlder、Message及多线程实战案例

第21主题:AsyncTASK异步线程技术

21.1. 使用AsyncTask的原因及对AsyncTask的思考

21.2. AsyncTask代码示例

21.3. AsyncTask源码剖析

 

22主题:Android测试

22.1.Android代码测试的好处,测试的方式

22.2.JUnit框架解析

22.3.测试用例的生命周期

22.4.自动化测试

22.5.源码剖析

 

23主题:广播接受者BroadcastReceiver,短信监听器案例(接受到短信后上传到服务器或发送到指定的号码或者发送到指定的邮件中)

23.1.剖析广播接收者,与JMS的比较,广播接受者的IoC原理

23.2.短信监听Android客户端

23.3.服务器端搭建

23.4.通过网络把接收到的短信上传到服务器

23.5.把接收到的短信发送到指定的手机号码或者邮件中

23.6.BroadcastReceiver的的生命周期和注意事项以及5秒钟生命响应时间的解决方案

 

24主题:服务Service,电话监听器(每次开机的时候自动开机,电话来时录音并上传到服务器)

24.1.详细剖析Service

24.2.构建电话监听的Service

24.3.使用BroadcastReceiver监听开机事件,并在开机时启动电话监听的Service

24.4.上传音频文件到服务器

24.5.关于Android安全体系的思考

 

25主题:ContentProvider背景、用途,如何构建ContentProviderUriMatcherContentUris,对CotentProvider进行单元测试、源代码分析

25.1.ContentProvider背景、用途

25.2.构建ContentProvider的详细步骤

25.3.对URI的彻底剖析

25.4.分析UriMatcher,ContentUris

25.5.对ContentProvider的业务层代码进行单元测试

25.6.ContentProvider的源代码剖析

第26主题:基于通讯录的开发

26.1. 通讯录的数据库和数据表分析

26.2. 通讯录ContentProvider的源码剖析

26.3. 获取所有的联系人信息

26.4.添加联系人

26.5.如何处理添加通讯录记录时的事物问题

 

27主题:断点续传(一)类似迅雷的多线程下载器(适用于任何类型的文件下载)

27.1,多线程下载断点续传原理和流程图

27.2,下载文件时Http协议协议详解

27.3,多线程下载断点续传程序:设计服务端和Android端

27.4,Android端的内容涉及IoC、多线程、SQLite数据库、Handler、Http协议、缓存处理、意外关机时候的处理、编写框架、MVC、Service、Android中的I/O流、代码调试、Activity的生命周期等

27.5,单元测试

27.6,软件调试

 

28主题:断点续传(二)多线程断点文件上传器(适用于任何类型的文件上传)

28.1,断点续传原理和流程图

28.2,上传文件的Http协议详解

28.3,自定义自己的文件传输协议

28.4,服务端程序的编写:文件的下载与实时数据的记录、监听模式、乱码问题的处理、并发问题、黑客安全问题

28.5,客户端程序的编写:Android内存溢出问题,Android中的Socket编程、大文件的传输、大文件传输时候的安全问题

28.6,单元测试

28.7,软件调试

29主题:Android客户端表单数据的上传

29.1,上传基本的数据类型

29.2,上传图片等附件

把代码重构为能够上传任意数量的字段和任意数量的附件的工具类

 

30主题:AndroidJavaWebViewJavascript相互沟通

30.1,制作Android界面的新大陆

30.2,Java调用Javascript

30.3,Javascript调用Java

 

31主题:浏览器开发和自定义

31.1 浏览器定制和开发的核心原理剖析

31.2 浏览器定制和开发的技术手段剖析

31.3 浏览器定制和开发实战

 

32主题:HTML5时代:DeviceBrowserCloud

32.1  HTML5时代谁最重要?

32.2  HTML5与Device

32.3  HTML5与Cloud

32.4  什么主导了HTML5时代?

 

33个主题:HTML5开发平台----PhoneGap框架的技术基石是什么?

33,1 使用WebView

33,2 在WebView中使用JavaScript

33.3 创建本地Java API

33.4 使用JavaScriptInterface

33.5 JavaScript调用Java

33.6 Java调用JavaScript

33.7 PhoneGap是如何使用JavaScriptInterface的

 

34个主题:PhoneGapPlugin开发

34.1如何扩展PhoneGap的功能?

34.2 IPlugin接口

34.3 Proxy-Stub模式在Plugin开发中的应用及价值

34.4 Plugin开发中如何控制硬件厂商和Web开发者

34.5 Plugin核心代码剖析及开发实战

 

 

 

 

这篇关于王家林最受欢迎的一站式云计算大数据和移动互联网解决方案课程 V1(20140809)之Android软硬整合设计与框架揭秘: HALFramework Native Service AppHT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/193064

相关文章

揭秘未来艺术:AI绘画工具全面介绍

📑前言 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。在艺术创作领域,AI技术同样展现出了其独特的魅力。今天,我们就来一起探索这个神秘而引人入胜的领域,深入了解AI绘画工具的奥秘及其为艺术创作带来的革命性变革。 一、AI绘画工具的崛起 1.1 颠覆传统绘画模式 在过去,绘画是艺术家们通过手中的画笔,蘸取颜料,在画布上自由挥洒的创造性过程。然而,随着AI绘画工

计算绕原点旋转某角度后的点的坐标

问题: A点(x, y)按顺时针旋转 theta 角度后点的坐标为A1点(x1,y1)  ,求x1 y1坐标用(x,y)和 theta 来表示 方法一: 设 OA 向量和x轴的角度为 alpha , 那么顺时针转过 theta后 ,OA1 向量和x轴的角度为 (alpha - theta) 。 使用圆的参数方程来表示点坐标。A的坐标可以表示为: \[\left\{ {\begin{ar

在线装修管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,装修队管理,用户管理,装修管理,基础数据管理,论坛管理 前台账户功能包括:系统首页,个人中心,公告信息,论坛,装修,装修队 开发系统:Windows 架构模式:B/S JDK版本:Java JDK1.8 开发工具:IDEA(推荐) 数据库版本: mysql5.7 数据库可视化工具: navicat 服务器:SpringBoot自带 ap

亮相WOT全球技术创新大会,揭秘火山引擎边缘容器技术在泛CDN场景的应用与实践

2024年6月21日-22日,51CTO“WOT全球技术创新大会2024”在北京举办。火山引擎边缘计算架构师李志明受邀参与,以“边缘容器技术在泛CDN场景的应用和实践”为主题,与多位行业资深专家,共同探讨泛CDN行业技术架构以及云原生与边缘计算的发展和展望。 火山引擎边缘计算架构师李志明表示:为更好地解决传统泛CDN类业务运行中的问题,火山引擎边缘容器团队参考行业做法,结合实践经验,打造火山

DDei在线设计器-API-DDeiSheet

DDeiSheet   DDeiSheet是代表一个页签,一个页签含有一个DDeiStage用于显示图形。   DDeiSheet实例包含了一个页签的所有数据,在获取后可以通过它访问其他内容。DDeiFile中的sheets属性记录了当前文件的页签列表。   一个DDeiFile实例至少包含一个DDeiSheet实例。   本篇最后提供的示例可以在DDei文档直接预览 属性 属性名说明数

Eclipse+ADT与Android Studio开发的区别

下文的EA指Eclipse+ADT,AS就是指Android Studio。 就编写界面布局来说AS可以边开发边预览(所见即所得,以及多个屏幕预览),这个优势比较大。AS运行时占的内存比EA的要小。AS创建项目时要创建gradle项目框架,so,创建项目时AS比较慢。android studio基于gradle构建项目,你无法同时集中管理和维护多个项目的源码,而eclipse ADT可以同时打开

android 免费短信验证功能

没有太复杂的使用的话,功能实现比较简单粗暴。 在www.mob.com网站中可以申请使用免费短信验证功能。 步骤: 1.注册登录。 2.选择“短信验证码SDK” 3.下载对应的sdk包,我这是选studio的。 4.从头像那进入后台并创建短信验证应用,获取到key跟secret 5.根据技术文档操作(initSDK方法写在setContentView上面) 6.关键:在有用到的Mo

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现

Android我的二维码扫描功能发展史(完整)

最近在研究下二维码扫描功能,跟据从网上查阅的资料到自己勉强已实现扫描功能来一一介绍我的二维码扫描功能实现的发展历程: 首页通过网络搜索发现做android二维码扫描功能看去都是基于google的ZXing项目开发。 2、搜索怎么使用ZXing实现自己的二维码扫描:从网上下载ZXing-2.2.zip以及core-2.2-source.jar文件,分别解压两个文件。然后把.jar解压出来的整个c

android 带与不带logo的二维码生成

该代码基于ZXing项目,这个网上能下载得到。 定义的控件以及属性: public static final int SCAN_CODE = 1;private ImageView iv;private EditText et;private Button qr_btn,add_logo;private Bitmap logo,bitmap,bmp; //logo图标private st