[ back]

Android软硬整合技术:

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


by 高�ㄌ�


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

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

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

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


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

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

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

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

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

微课-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>

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

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

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


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

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

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

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

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

请继续=> 学习高阶课程

~ End ~


更多相关文章

  1. Mediapipe框架在Android上的使用
  2. Android(安卓)UI开发第三十九篇——Tab界面实现汇总及比较
  3. QADDroid—android快速原型框架
  4. GitHub上优秀Android(安卓)开源项目
  5. Android开发之低调的Service
  6. Android自动化测试框架Robotium
  7. Android(安卓)开发的常用工具类(一)——ScreenUtils 可用于获取屏
  8. Android(安卓)开发艺术探索笔记-Activity启动方式
  9. Android中文API合集(7) + 开发者指南合集(2) (chm格式)

随机推荐

  1. Android,Harmony 及 Java 的未来
  2. android 音标乱码的一些问题
  3. android MultiDex multiDex原理(一)
  4. Android SDK23以上(包括23)无法使用httpcli
  5. [Android Studio / NDK] 如何使用javah生
  6. Android开发中用到的命令
  7. android 属性android:visibility及 view
  8. eclipse关联android sdk源码和android sd
  9. Android读写XML(下)
  10. Android中使用WebView, WebChromeClient