Android初印象 | 青训营笔记

112 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第1天

首先总结一下本次青训营的学习流程:

  1. 安卓系统及客户端概览;
  2. 客户端基础知识;
  3. UI编程;
  4. 数据存储和网络通信;
  5. 探索多媒体直播技术;
  6. 端智能技术演进与实践;
  7. 初识性能优化及工具;
  8. ART虚拟机;
  9. 客户端架构设计及应用;
  10. RD必备素质;
  11. 大咖分享;

1、系统应用层 这一层就是各App所在的最上层了,我们自己开发的App和系统自带的App都在这一层,两种App本质上没有太大区别。一些系统的App提供的功能我们可以直接调用,比如打电话、发短信等,当然我们自己开发的app也可以给其他产品提供类似的调用功能。

2、Java API

这层就是Android Framework提供给开发者的接口,我们可以基于这些接口打造各自的App。在这一层主要的技术栈就是最基础的交付内容,包括页面+逻辑+页面,一些多媒体相关的需求也有成熟的api可以直接使用。

3、原生 C/C++层**

一些核心的系统服务和组件是C/C++编写的,我们可以用Android NDK 直接从原生代码访问某些原生平台库。从这一层往下,一些多样化的需求就可以被满足的很好,比如音视频编解码、安全、质量、体验等。

4、Android Runtime

这一层就会涉及虚拟机的知识,在一层会把DEX字节码进行编译,优化执行效率。在一层我们可以做一些体验相关的优化,让代码运行更高效。所需要的技术门槛也就更高一些。

5、硬件抽象层 (HAL)

主要提供硬件组件的封装,包括相机、传感器和蓝牙等。当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。

6、Linux 内核

Android 平台的基础是 Linux 内核。例如,Android Runtime (ART) 依靠 Linux 内核来执行底层功能,例如线程和内存管理。

使用 Linux 内核可让 Android 利用主要安全功能,并且允许设备制造商为著名的内核开发硬件驱动程序。
常用场景下生命周期流转:

1 启动:onAttach() - onCreate() - onCreateView() - onActivityCreated() - onStart() - onResume() - Resumed 2 退出:Resumed - onPause() - onStop() - onDestoryView() - onDestory() 3 部分覆盖:Resumed - onPause() - Paused 4 部分遮挡恢复:Paused - onResume() - Resumed 5 完全覆盖:Resumed - onPause() - onSaveInstanceState() - onStop() - Stoped 6 完全遮挡恢复:Stoped - onStart() - onResume() - Resumed 7 后台回收:Stoped - Killed 8 回收恢复:Killed - onCreate() - onStart() - onRestoreInstanceState()- onResume() - Resumed 注:Fragment生命周期可通过FragmentTransaction.setMaxLifecycle()手动干预


参考链接:
作者:青训营官方账号
链接:juejin.cn/post/712271… 来源:稀土掘金