[ back]

Android软硬整合技术:

HAL&Framework&App 架构设计与实战开发


by 高�ㄌ�


第1步:自学在线微课:<Android的HAL驱动框架和API>

wKioL1XYQdOgxUDsAAGWitB5F3M601.jpg微课-1(请点击此图,立即体验)

听完了,可深入理解HAL的产生背景、角色、功能,及其代码写法和范例。

对于孰悉Linux和C/C++的工程师而言,了解HAL及其设计,是开发 Android产品的第一门课。基于Linux驱动开发的既有基础经验,透过分析HAL 的设计,建立基础的Android框架知识。顾名思义,框架(Framework)就是基于既定架构的接口(API)来协助应用开发、并框住应用的行为。HAL框架也不例外,具有上述的角色和功用。


第2步:自学在线微课:<解析Linux驱动框架(初步)>

wKiom1XafSKDaDALAAF6_lYJIIQ434.jpg微课-2(请点击此图,立即体验)

听完了,可深入理解Android框架与Linux密切的关系,非常有助于HAL-based驱动开发工作

Android是基于Linux OS的智能终端平台(platform),此平台内含多层框架(framework),而框架又内含许多设计模式(patterns)。如果我们也能将设计模式和框架观念,应用于Linux的驱动开发上。就能基于一致的概念来看待上层的Android软件开发和底层的Linux驱动开发了,而达到一个完美的境界:概念一致性(conceptual integrity)。

第3步:自学在线微课:<JNI�_�l初步>

wKioL1Xaf7Kwe-FpAAEnQF_as0o354.jpg微课-3(请点击此图,立即体验)

听完了,可深入在Android架构里,Java与C/C++如何密切的结合在一起,非常有助于HAL-based驱动开发工作。

从框架(Framework)角度来看,Android平台里含有两层框架。上面是Java层的应用框架,而下面是C/C++层的系统框架。这两层框架之间会有密切的沟通。此时JNI(Java Native Interface)就扮演双方沟通的接口了。藉由JNI接口,可将Java层的基类或子类别的函数实作部份挖空,而移到JNI层的本地C函数来实作之。这个JNI本地(Native)C函数,再衔接到底层的C/C++系统框架。


第4步:自学在线微课:<Android的Java层系统服务与API>

wKioL1XagubhFGkVAAFxWIiKIEQ524.jpg微课-4(请点击此图,立即体验)

听完了,可深入理解Android系统的核心部分,包括其架构、API和开发要点。

为什么我们需要学习撰写系统服务呢? 底层系统服务是Android 框架�e最接近Linux/Driver 的部分。为充分发挥硬件设备的差��化特性,系统服务是让上层Java 应用程序��使用Driver/HW Device 特色的重要管道。在开机过程中,就可以启动核心服务(如汉字输入法服务等),让众多应用程序��共享之。由于共享,所以能有效低 Java 应用程序的大小(Size)。于此,先仔细解析Java层系统服务的架构,然后阐述这系统服务的代码开发要点,以及其API设计方法。


第5步:自学在线微课:<App框架(Framework)初步>

wKioL1XamYrgBFtKAAG7c3gc1n4281.jpg微课-5(请点击此图,立即体验)

听完了,可掌握框架(Framework)的基本知识和技术,对于深入理解Android系统的多层框架体系,是非常有帮助的。

Android是基于Linux的多层框架(framework)体系,而框架又内含许多设计模式(patterns)。如果我们也能将设计模式和框架观念,应用于Linux的驱动开发上。就能基于一致的概念来看待上层的Android软件开发和底层的Linux驱动开发了,而达到一个完美的境界:概念一致性(conceptual integrity)。让该领域中的程序员们,依共同结构来发展程序,使程序间具有一致性,增加了程序的清晰度,以降低程序的设计与维护费用。

第6步:恭喜初阶课程毕业了,

请继续=> 学习高阶课程

~ End ~


更多相关文章

  1. 自己写的一套应用管理系统(包含一套app系统,一套后台web管理系统《
  2. 浅谈Android之系统概述
  3. Android 9.0 Launcher源码分析(一)——系统启动Launcher流程
  4. Android UI框架 Android UI控件类简介 android5大布局详解
  5. 一个轻量级、高可用性的 Android 版本更新框架
  6. android系统学习笔记三

随机推荐

  1. 编程回忆之Android回忆(Android 调用短信
  2. Android(安卓)Studio 多渠道打包及 gradl
  3. Android(安卓)判断 网络连接 Internet访
  4. xmlns:android 命名空间
  5. 详细解读Android中的搜索框(四)—— Search
  6. Android 圆角输入框
  7. AndroidStudio 基础控件与布局
  8. Android Ubuntu环境搭建
  9. 阅读《Android(安卓)从入门到精通》(3)——
  10. [Android Pro] 关于Android的HTTP客户端