Android系统设计复习要点:从Zygote到CI/CD

需积分: 5 0 下载量 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系统的设计与工作原理。