Android系统设计复习要点:从Zygote到CI/CD
需积分: 5 154 浏览量
更新于2024-07-01
1
收藏 31.77MB PDF 举报
本文是关于中科大软件学院Android系统设计的复习总结,涵盖了从系统启动流程到关键组件的介绍,以及一些相关技术的定义和作用。
在Android系统启动的过程中,首先运行BIOS加载bootloader到RAM,接着执行header.s初始化堆栈和RAM,再运行main.c设置中断描述符表(idt)和全局描述符表(gdt),从而进入内核阶段。内核创建了idle进程,通过系统文件查找并启动init.rc文件,进而启动init进程。init进程进一步启动app_process,生成Zygote进程,Zygote是Android系统的核心进程,它启动Dalvik虚拟机并加载核心类和JNI方法。Zygote还会创建System Server进程,System Server负责创建ActivityManagerService来管理activity等组件。
在复习资料中,还涉及了多个知识点的考核,包括:
1. APK的组成:APK是Android应用程序的包文件,包含了 Dex(Dalvik Executable)代码、资源文件、manifest.xml等。
2. 虚拟内存:虚拟内存是一种内存管理技术,它将物理内存和硬盘上的空间组合在一起,使得程序可以认为它拥有连续的可用内存(实际上可能分布在多个物理内存或磁盘空间中)。
3. GCC的不同版本差异:GCC(GNU Compiler Collection)的版本差异主要体现在优化级别、支持的语言特性、错误和警告信息等方面。
4. NorFlash和NandFlash的区别:NorFlash数据可直接读取,适合存储小容量程序代码;NandFlash则适合大容量数据存储,但访问速度相对较慢。
5. GPL和LGPL开源协议:GPL要求任何基于该软件的修改也必须遵循GPL发布;LGPL相对宽松,允许链接到GPL软件的非GPL软件保持原有许可。
6. JDK的作用:JDK是Java开发工具集,包含JRE(Java运行环境)以及编译、运行等工具,如javac、java、javaw等。
7. HAXM技术:HAXM是Intel的硬件加速执行管理器,利用VT技术加速Android开发,提高模拟器性能。
8. 自动构建工具Gradle:Gradle是一个灵活的构建自动化系统,支持多种语言和项目结构,采用领域特定语言(DSL)进行配置。
9. CI/CD(持续集成/持续交付/持续部署):CI/CD是用于实现应用开发高度持续自动化和监控的流程,包括代码集成、测试、部署等环节。
10. 代码混淆:代码混淆是将源代码转换成难以理解的形式,以防止逆向工程,通常包括压缩、优化和重命名等步骤。
此外,资料还提到了预校验的概念,预校验是在Java平台上为了确保代码能在Dalvik虚拟机上正确运行而进行的一种处理。
整个复习总结涵盖了Android系统启动、核心进程、开发工具和实践等多个方面,旨在帮助学习者全面理解Android系统的设计与工作原理。
2018-06-22 上传
2022-07-15 上传
2016-01-16 上传
2019-04-15 上传
2020-07-07 上传
2021-07-03 上传
2021-11-10 上传
余生.
- 粉丝: 1
- 资源: 2
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建