2024年Android系统架构概述(1),安卓面试问什么

作者2013年从java开发,转做Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了阿里一直到现在。

参与过不少面试,也当面试官 面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!

我整理了一份阿里P7级别的最系统的Android开发主流技术,特别适合有3-5年以上经验的小伙伴深入学习提升。

主要包括阿里,以及字节跳动,腾讯,华为,小米,等一线互联网公司主流架构技术。如果你想深入系统学习Android开发,成为一名合格的高级工程师,可以收藏一下这些Android进阶技术选型

我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。

Java语言与原理;
大厂,小厂。Android面试先看你熟不熟悉Java语言

高级UI与自定义view;
自定义view,Android开发的基本功。

性能调优;
数据结构算法,设计模式。都是这里面的关键基础和重点需要熟练的。

NDK开发;
未来的方向,高薪必会。

前沿技术;
组件化,热升级,热修复,框架设计

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

我在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多,CodeChina上可见;

当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。

不出半年,你就能看出变化!

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

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

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

Android Runtime:Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。 每个Android应用程序是Dalvik虚拟机中的实例。 java程序的运行需要java的核心包的支持,然后通过JVM虚拟机来运行我们的应用程序,Android Runtime里的Core Libraries就相当于java的JDK,是运行android应用程序所需要的核心库,Dalvik Virtual Machine就相当于JVM,这是Google专为Android开发的运行android应用程序所需的虚拟机。 Dalvik的可文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。 Dalvik依赖于Linux Kernel提供基础功能,如线程和底层内存管理。
Liberaries:Android包含一个C/C++库的集合,供系统的各个组件使用。 这些功能能通过Android的应用程序框架(application framework)暴露给开发者。 下面列出一些核心库:
系统C库:标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linuxhe设备。
媒体库:基于PackerVideo的OpenCORE。这些库支持播放、录制许多音频和视频h格式,以及静态文件。
界面管理: 管理访问显示子系统和无缝组合多个应用程序的2D和3D图形层 。
LibWebCore:( WebKit是一个开源的浏览器网页排版引擎,包含WebCore排版引擎和JSCore引擎 )Web浏览器引擎,驱动Android浏览器和内嵌的web视图。
SGL:基本2D图形引擎。
3D库:基于OpenGL ES APIS的实现。库使用硬件3D加速或包含高度优化的3D软光栅。
FreeType:位图和矢量字体渲染。
SQLite:关系型数据库引擎。
Application Framework:通过开放的开发平台,开发者可以使用核心应用程序所使用的框架APIs。 应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能 (需要服从框架执行的安全限制)。这一机制允许用户替换组件。 所有的应用程序其实是一组服务和系统,包括:
View:视图集合,包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器。
Content Providers:内容提供者使得应用程序能访问其他应用程序的数据(如通讯录),或共享自己的数据。
Resource Manager:资源管理器提供访问非代码资源,如本地化字符串、图形、布局文件。
Notifacation Manager:通知管理器使得所有的应用程序能够在状态栏显示自定义警告。
Activity Manager:活动管理器管理应用程序生命周期,提供通用的导航回退功能。
Application:Androide装配一个核心应用程序集合,包括电子邮件、日历、地图、浏览器、通讯录等。开发者也可以自行开发应用程序。666.png

2、Androido常用类库

Android.util:核心工具包
Android.os:操作系统包,提供基本操作系统服务的访问n时间,例如消息传递、进程间通信。
Android.graphic :图形API,提供了支持画布、颜色和绘画的低级图形类,让开发者可以在画布上画。
Android.database
Android.content:内容API,通过处理资源、内容提供器和a包的服务,来管理数据访问和发布。
Android.view :核心用户界面类。所有的用户界面元素的都是使用一系列View构造的,用来提供交互组件。
Android.widget:构建在View包的基础上,Widget类是已经创建好的用户界面元素,可以直接在应用程序中使用,包含列表、按键、布局。
com.google.android.maps:提供对本地地图空间的访问。
Android.app :应用程序包,包含活动(Activity)和服务(service)API,形成所有应用程序的基础。
Android.provider :为了方便开发者对某些标注的内容提供器进行访问,provider包提供了一些类。
Android.telephony:允许直接与电话栈进行交互,实现打电话、监控电话状态、收发SMS消息。
Android.webkit:提供与基于Web的内容相关的API,包括一个WebView控件,可以在活动或者cookiea管理器嵌入一个浏览器。

3、四大组件

(1)Activity:活动,一种包含用户界面的组件,用于和用户进行交互。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity 当中可以添加一些Button、Check box 等控件。可以看到Activity 概念和网页的概念相当类似。

一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间可以进行相互跳转,例如,按下一个Button 按钮后,可能会跳转到其他的Activity。

生命周期:

activity三种状态:运行(运行在最前端)、停止(不可见,完全被覆盖)、暂停(可见,但前端还有其他activity)

生命周期相关的方法:onCreate-onStart-onResume-onPause-onStop-onDestory-onRestart

(2)broadcastReceiver:广播接受者,没有用户界面。

最后

我坚信,坚持学习,每天进步一点,滴水穿石,我们离成功都很近!
以下是总结出来的字节经典面试题目,包含:计算机网络,Kotlin,数据结构与算法,Framework源码,微信小程序,NDK音视频开发,计算机网络等。

字节高级Android经典面试题和答案


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

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

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

cs/618156601)**

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

  • 20
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值