移动开发最新Framework学习(一)Android-系统架构,2024年最新安卓面试基础题

文末

面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责!

不管怎么样,不论是什么样的大小面试,要想不被面试官虐的不要不要的,只有刷爆面试题题做好全面的准备,当然除了这个还需要在平时把自己的基础打扎实,这样不论面试官怎么样一个知识点里往死里凿,你也能应付如流啊

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

系统运行库层

系统运行库层分为两部分,分别是C/C++程序库和Android运行时库。

(1)C/C++程序库

C/C++程序库能被Android系统中的不同组件所使用,并通过应用程序框架为开发者提供服务。C/C++程序库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。

(2)Android运行时库

运行时库又分为核心库和ART(5.0系统之后,Dalvik虚拟机被ART取代)。核心库提供了Java语言核心库的大多数功能,这样开发者可以使用Java语言来编写Android应用。相较于JVM,Dalvik虚拟机是专门为移动设备定制的,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。而替代Dalvik虚拟机的ART的机制与Dalvik不同。在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器转换为机器码,这会拖慢应用的运行效率,而在ART 环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。

Linux内核层

Android 的核心系统服务基于Linux 内核,在此基础上添加了部分Android专用的驱动。系统的安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。Linux内核也是作为硬件与软件栈的抽象层。

Android系统源码

对国内的开发者来说最痛苦的是无法去访问android开发网站。为了更好的认识世界,对程序员来说,会翻墙也是的一门技术,带你去领略墙外的世界, 国内开发者访问(androiddevtools) 上面已经有了所有你要的资源,同时可以下载到我们的主角framework。

如果你只是想查看源码,androidxref也是一个不错的资源。

整体结构

Android7.0的根目录结构说明如下表所示:

|– Makefile (全局Makefile文件,用来定义编译规则)
|– abi (应用程序二进制接口)
|– art (ART运行环境)
|– bionic (bionic C库)
|– bootable (启动引导相关代码)
|– build (存放系统编译规则及generic等基础开发包配置)
|– cts (Android兼容性测试套件标准)
|– dalvik (dalvik JAVA虚拟机)
|– developers (开发者目录)
|– development (应用程序开发相关)
|– device (设备相关配置)
|– docs (参考文档目录)
|– external (android使用的一些开源的模组)
|– frameworks (核心框架——java及C++语言)
|– hardware (部分厂家开源的硬解适配层HAL代码)
|– kernel
|– libcore (核心库相关文件)
|– libnativehelper (动态库,实现JNI库的基础)
|– ndk (NDK相关代码,帮助开发人员在应用程序中嵌入C/C++代码)
|– out (编译完成后的代码输出与此目录)
|– packages (应用程序包)
|– pdk (Plug Development Kit 的缩写,本地开发套件)
|– prebuilts (x86和arm架构下预编译的一些资源)
|– sdk (sdk及模拟器)
|– system (底层文件系统库、应用及组件——C语言)
|– tools (工具文件)
|– toolchain(工具链文件)
|– vendor (厂商定制代码)

应用层部分

应用层位于整个Android系统的最上层,开发者开发的应用程序以及系统内置的应用程序都位于应用层。源码根目录中的packages目录对应着系统应用层。

|– apps (核心应用程序)
|– experimental (第三方应用程序)
|– inputmethods (输入法目录)
|– providers (内容提供者目录)
|– screensavers (屏幕保护)
|– services (通信服务)
|– wallpapers (墙纸)

从目录结构可以发现,packages目录存放着系统核心应用程序、第三方的应用程序和输入法等等,这些应用都是运行在系统应用层的,因此packages目录对应着系统的应用层。

应用框架层部分

应用框架层是系统的核心部分,一方面向上提供接口给应用层调用,另一方面向下与C/C++程序库以及硬件抽象层等进行衔接。 应用框架层的主要实现代码在/frameworks/base和/frameworks/av目录下,其中/frameworks/base目录结构如下:

|– api (定义API)
|– core (核心库)
|– docs (文档)

结语

  • 现在随着短视频,抖音,快手的流行NDK模块开发也显得越发重要,需要这块人才的企业也越来越多,随之学习这块的人也变多了,音视频的开发,往往是比较难的,而这个比较难的技术就是NDK里面的技术。
  • 音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以AndroidNDK技术已经是我们必备技能了。
  • 要学习好NDK,其中的关于C/C++,jni,Linux基础都是需要学习的,除此之外,音视频的编解码技术,流媒体协议,ffmpeg这些都是音视频开发必备技能,而且
  • OpenCV/OpenGl/这些又是图像处理必备知识,下面这些我都是当年自己搜集的资料和做的一些图,因为当年我就感觉视频这块会是一个大的趋势。所以提前做了一些准备。现在拿出来分享给大家。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

6601)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 26
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Android Framework面试是关于Android操作系统框架的一些问,主要涉及Android应用程序的开发、调试和优化等方面。常见的面试包括: 1. 什么是Android Framework? Android Framework是Android操作系统的核心组件之一,它提供了一系列API和工具,用于开发、调试和优化Android应用程序。 2. Android Framework的组成部分有哪些? Android Framework由四个主要组成部分组成:应用程序框架、系统服务、库和运行时环境。 3. 什么是Android应用程序框架? Android应用程序框架是Android Framework的核心组成部分,它提供了一系列API和工具,用于开发Android应用程序。应用程序框架包括四个主要组件:活动、服务、广播接收器和内容提供者。 4. 什么是Android系统服务? Android系统服务是Android Framework的一个重要组成部分,它提供了一系列系统级别的服务,如通知服务、位置服务、传感器服务等。 5. 什么是Android库? Android库是Android Framework的一个重要组成部分,它提供了一系列常用的功能和工具,如图形界面库、网络库、数据库库等。 6. 什么是Android运行时环境? Android运行时环境是Android Framework的一个重要组成部分,它提供了一系列核心库和虚拟机,用于执行Android应用程序。 7. 什么是Android应用程序的生命周期? Android应用程序的生命周期指的是应用程序从启动到关闭的整个过程,包括应用程序的创建、启动、暂停、恢复和销毁等阶段。 8. 什么是Android应用程序的四大组件? Android应用程序的四大组件包括:活动、服务、广播接收器和内容提供者。活动用于展示用户界面,服务用于在后台执行任务,广播接收器用于接收系统广播,内容提供者用于管理应用程序的数据。 9. 什么是Android应用程序的UI线程? Android应用程序的UI线程是指用于更新用户界面的线程,它负责处理用户界面的事件和更新UI组件。 10. 什么是Android应用程序的异步任务? Android应用程序的异步任务是指用于在后台执行任务的线程,它负责处理耗时的操作,如网络请求、数据库操作等。 ### 回答2: Android Framework 是 Android 应用开发的核心部分,它是一组软件模块,为 Android 应用提供基本的服务和功能,包括视图系统、资源管理器、通知中心、系统 API 等等。以下是 Android Framework 面试的回答: 1. 什么是 Android Framework?它有哪些组成部分? Android Framework 是 Android 应用开发的核心部分,它提供了一个标准化的架构,包括了一系列底层模块和服务,帮助开发者快速构建优质的应用程序。Android Framework 包括四个主要的组成部分: - Activity Manager:管理应用程序的生命周期、任务管理和应用程序调度。 - Content Provider:提供应用程序之间数据共享的机制。 - View System:提供视图组件的绘制和交互功能,包括 UI 组件、菜单、通知等。 - System API:提供开发者使用的系统级别 API,包括网络、存储、多媒体、传感器等各种功能。 2. 什么是 Intent? Intent 是在 Android 开发中用于启动组件、传递数据和执行操作的一种消息机制。Intent 由两个主要的部分组成,第一个是传递的动作行为(Action),用于指定所要执行的操作;第二个是传递的数据(Data),可包含要传递的信息、参数或操作。Intent 在 Android 应用中经常用于启动 Activity、Service、Broadcast Receiver,以及在应用程序之间传递数据。 3. 什么是 Content Provider? Content Provider 是 Android Framework 中的一项核心服务,用于提供跨应用程序数据共享的机制。Content Provider 可以通过 URI 的方式访问数据,并将一些特定的操作和查询暴露给外部应用程序。Content Provider 在 Android 应用中广泛应用于共享数据、存储和检索数据等功能。Content Provider 可以使用 SQLite 数据库存储数据,也可以使用其他数据源。 4. 什么是 Binder? Binder 是 Android Framework 中的一种进程间通信机制。它使用了一种名为跨进程通信 (IPC) 的技术,允许不同进程之间共享数据和资源,并可让应用程序在另一个进程执行功能。在 Android Framework 中,Activity 管理器、Service 和 Content Provider 等都是通过 Binder 与其他应用程序进行通信。Binder 还提供了一些高级功能,如安全性和线程管理。 5. 什么是 View System? View System 是 Android 应用程序中的 UI 组件,它提供了视图绑定、事件处理、资源管理和窗口布局等功能。在 Android Framework 中,View System 通过命名布局文件、使用 XML 描述视图和样式等机制,管理和绘制 UI 布局、界面组件和控件。View System 还提供了与其他系统服务的集成,如通知中心、扩展菜单、对话框等。 6. 什么是 Android Manifest? Android Manifest 是 Android 应用开发中必不可少的部分,它是应用程序清单文件,用于定义应用程序的基本信息和结构。Manifest 文件包含了应用程序使用的 Activity、Service、Broadcast Receiver 等组件,以及应用程序所需的权限和组件信息、应用程序元信息等。Manifest 文件还包括运行时动态创建的 Activity、Service 和 Receiver 的声明和权限标签,以及与应用程序的组件交互的 Intent 过滤器。 总结: Android Framework 是 Android 应用开发的核心,它提供了一组标准化的软件模块,为 Android 应用程序提供基本的服务和功能。通过对 Android Framework学习和理解,开发者可以更好地把握 Android 应用开发的核心技术,快速构建高质量的应用程序。 ### 回答3: Android framework移动端操作系统中扮演了至关重要的角色,关系到整个Android系统的顺利运行和用户体验。以下是一些相关的面试及其答案。 1. 什么是Android framework? Android framework主要指的是整个Android操作系统中的框架架构,包括组件、服务、库等等。它提供了一系列的API和开发者工具,使得应用程序设计者可以轻松地在上面开发、部署和调试应用程序。 2. Android framework中的四大组件是什么? Android framework中的四大组件包括Activity、Service、Content Provider和Broadcast Receiver。这些组件大都是基于事件驱动模型来设计的,通过系统的内部通信协议来实现各个组件之间的交互,以使得应用程序能够运行得更加高效、稳定和流畅。 3. Android framework中的应用程序包含哪些基本结构? Android framework中的应用程序包含了Activity、Manifest、布局文件、资源文件等等。其中,Activity是应用程序的基本单元,Manifest是整个应用程序的配置文件,而布局文件和资源文件则用于定义应用程序的用户界面和各种资源。 4. 什么是Android Intent? Android Intent是从一个组件(如Activity、Service、Broadcast Receiver等)向另一个组件传递消息的一种机制。Intent本身就是一个数据结构,其包含了一些元数据(如操作名称、数据URI、类别、组件名称、附加的Extras等),以及一些标志(如FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_SINGLE_TOP等)等。通过使用Intent,不同组件之间可以实现相互通信和交互。 5. Android中的View和ViewGroup有何区别? 在Android中,View代表着一个基本的GUI控件,如Button、TextView等,而ViewGroup代表着一个包含了多个View的容器,如LinearLayout、RelativeLayout等。简单来说,View是最基本、最简单的GUI控件,而ViewGroup则是一个可以包含多个View的容器。通过使用View和ViewGroup,应用程序可以创建出丰富、多样化的用户界面。 总之,掌握了以上的面试及其答案,相信大家对Android framework基础知识已经有了较为全面的认识。当然,Android framework作为一个十分庞大和复杂的系统,还有许多其他的知识点和技术需要我们进一步了解和掌握。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值