Android 9 Pie 现已面向全球正式发布!,2024年最新面试必问10大问题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注Android)
img

正文

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

请阅读《Android P 中的新文本特性》,了解更多有关放大镜以及文本特性的相关信息,如 Precomputed Text、行高以及基线文本对齐。

用户安全与隐私

统一身份验证对话框

生物传感器被广泛应用于身份认证,为了保障用户在不同感应器和应用间能够获得一致的体验, Android 9 引入了统一的身份验证对话框,提示用户进行操作。应用不再需要自行设计对话框,而是通过调用 BiometricPrompt API 触发系统对话框。除指纹识别以外 (包括屏幕下指纹识别),该 API 还支持面部识别以及虹膜识别。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

若您的应用仍在使用自行设计的指纹识别对话框,我们建议您尽快转用 BiometricPrompt API。

高可信度用户确认

Android 9 新增了高可信度用户确认 (Android Protected Confirmation) ,该功能通过可信执行环境 (TEE) 确保提示文本被真实用户确认。只有在用户成功确认之后,TEE 才会签发该文本,让应用进行后续验证步骤。

加强密钥安全保护

我们还加入了一个新的 KeyStore 类 —— StrongBox,并提供相应的 API 来支持那些提供了防入侵硬件措施的设备,比如独立的 CPU,内存以及安全存储。您可以在 KeyGenParameterSpec 里进行设置,决定是否把密钥交给 StrongBox 安全芯片来保存。

DNS over TLS

Android 9 内置对 DNS over TLS 的支持:若网络 DNS 服务器提供支持,设备会自动将 DNS 查询升级为 TLS 查询。用户可以通过更改 “网络和互联网” 设置下的隐私 DNS (Private DNS) 模式来管理 DNS over TLS 行为。自行运行 DNS 查询的应用可以通过调用新的 LinkProperties.isPrivateDnsActive() API 来获取 DNS 模式相关信息。请阅读《Android P 开发者预览版支持 DNS over TLS》,获取进一步信息。

默认使用 HTTPS

为了将所有网络流量从明文 (未加密的HTTP) 逐步迁移至 TLS,我们更改了网络安全配置的默认设置,以阻止所有明文流量,强制应用通过 TLS 建立网降连接,除非开发者明确允许特定域名使用明文传输。

基于编译器的安全缓解措施

Android 9 将进一步扩展编译器级别的安全缓解措施,借助运行时危险行为监测进一步加强平台安全建设。Android 9 通过控制流程完整性 (CFI) 技术解决了代码重用 (code-reuse) 和任意代码执行两大漏洞,并扩展了 CFI 在媒体框架和其它关键安全组件内的使用范围,如 NFC 与蓝牙。同时,Android 9 还针对 Android 常见内核的 LLVM 编译添加了 CFI 内核支持。

此外,Android 9 还将整数溢出检查器 (Integer overflow sanitizer) 的使用范围扩展到其他库,以缓解内存损坏与信息泄露这两个问题。我们调高了检查器在以下两类库中的优先级:1) 存在历史漏洞,2) 需要处理复杂且不受信任的输入,如 libui、libnl 和 libmediaplayerservice 一类的库都在调整范围内。

用户隐私

Android 9 新加入多项机制,进一步加强了对用户隐私的保护。系统禁止所有处于空闲状态的应用对话筒、摄像头和所有 SensorManager) 传感器的访问。当应用的 UID 空闲时,麦克风将会报告 “无音频信号”,传感器将会停止报告事件,应用使用的摄像头也会断开连接,并在应用试图访问时生成错误。在大多数情况下,这些限制不会对现有应用造成新的问题,但建议您从应用中移除此类传感器请求。

Android 9 还让用户控制是否允许访问平台 build.serial 识别码 (它被 READ_PHONE_STATE 权限保护) 。自 Android 8.0 以来,直接访问此识别码的功能已被弃用。您可以调用 Build.getSerial()) 方法,访问 build.serial 识别码。

了解全部隐私变更

感官新体验: 摄像和影音的全面升级

多摄像头 API 以及其它改进

从 Android 9 开始,您可以在支持多摄像头 API 的设备上通过两个或更多实体摄像头同时访问视频流;在配有双前置或双后置摄像头的设备上,实现单摄像头无法实现的创新功能:如无缝变焦、散景和立体视觉。该 API 还允许您调用可以在两台或更多台摄像头之间自动切换的逻辑或混合摄像头视频流。

摄像头的其他改进还包括:利用新的会话参数 (Session parameters) 来有效减少初始捕捉时的延迟,表面 (Surface) 共享技术让摄像头客户端无须重启视频流便可处理各种场景。此外,我们还加入了相关 API,提供基于屏幕闪光灯支持及 OIS 时间戳的访问权限。

HDR VP9 视频以及 HEIF 图像

Android 9 增加了对 HDR VP9 Profile 2 的内置支持。现在,您可以在支持 HDR 的设备上,把启用 HDR 功能的视频内容分享给您的用户。

另外,我们还在添加了对 HEIF (heic) 图像编码的平台支持。 HEIF 是目前比较流行的一种的压缩格式,它改善了图片的压缩效果,并减少了图片的储存空间以及网络流量。引入平台支持后,开发者能更加方便地从后台服务器传输并使用 HEIF 图像。一旦确定您的应用与该数据格式兼容,可用于分享或者显示,不妨尝试将 HEIF 设定为应用内图片的储存格式。此外,您还可以通过 ImageDecoder 将 jpeg 文件转化为 heic 文件,或通过 Bitmap Factory 从 jpeg 文件中获取位图。您亦可使用 AndroidX 库中的 HeifWriter从 YUV 字节缓冲区、Surface以及位图中写入 HEIF 静态图像。

使用动态处理增强音频

开发者可以调用 Dynamics Processing API 对音频进行动态处理,通过分离出特定频率的声音,降低过大的音量,或者增强过小的音量,来改善应用的音频质量。比如说,即便说话者声音小,离麦克风远,而且外界环境十分嘈杂,您的应用依然可以有效捕捉并他/她的声音,并进行相应优化。该 API 提供了多声场、多频段的动态处理效果,包括一个预均衡器、一个多频段压缩器,一个后均衡器以及一个串联的音量限制器。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

用于位图和 drawable 的 ImageDecoder

ImageDecoder API 让开发者可以通过一种更为简单的方式将图像解码为位图或 drawable。ImageDecoder 允许您从字节缓冲区、文件或 URI 创建位图或 drawable。它相比 BitmapFactory 有以下几个优势:支持精确缩放,支持单步解码至硬件存储器,支持解码后处理,以及动画图像解码。请获取进一步信息

网络连接与位置

使用 Wi-Fi RTT ,进行室内定位

Android 9 为 IEEE 802.11mc Wi-Fi 协议添加了平台支持 (也称为 Wi-Fi 往返时间,RTT),这可以让您在应用中使用室内定位功能。在提供硬件支持的 Android 9 设备上,在启动位置服务并勾选 “允许获取地理位置信息” 选项后,应用就可以使用 RTT API 测量与附近 Wi-Fi 接入点 (AP) 的距离。设备不需要连接到 AP 便可以使用 RTT,而且为了保护隐私,只有手机能够确定距离,而 AP 不可以。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过测量从设备到三个或更多 AP 的距离,您可以计算设备位置至 1 到 2 米的精度。这种精确度允许您创建更多新的体验:室内导航、基于位置的细粒度服务,例如,模糊语音控制 ( “打开这里的灯” ) ;以及基于位置的资讯服务 ( “这个产品有优惠活动吗?” )。

JobScheduler 中的数据费用敏感度

JobScheduler 是 Android 的一项核心服务,它可以帮助您针对低耗电模式应用待机模式以及后台限制,妥善进行各种任务的调度。在 Android 9 中,JobScheduler 可以更好地帮助用户处理与网络相关的任务,并与运营商单独提供的网络状态信号相协调。任务现在可以声明预估数据量、信号预取以及指定详细的网络要求 —— 运营商可以报告网络状况是拥塞还是不计量,然后 JobScheduler 会根据网络状态管理作业。例如,当网络拥塞时,JobScheduler 可能推迟大型网络请求;而在网络可以不计量使用时,则可以运行多种预加载作业 (例如,预读标题) 来改进用户体验。

用于 NFC 支付和安全交易的 Open Mobile API

Android 9 将 GlobalPlatform Open Mobile API 的实现添加至平台中。在支持的设备上,应用可以使用 OMAPI API 访问安全元素 (SE) ,以启用智能卡支付等安全服务。硬件抽象层 (HAL) 提供了必要的 API,用于枚举多种可用的 Secure Elements (如 eSE, UICC 等)。

更强劲的性能表现

ART 性能提升

Android 9 借助 ART 运行时显著提高了应用的性能表现与运行效率。我们扩展了 ART 对执行特征的使用,以优化应用并减少已编译应用代码的内存占用量。ART 现可使用特征文件信息在设备上重写 DEX 文件,帮助多个常见应用的内存占用减少高达 11%。我们期望借此减少系统 DEX 内存使用量并加快应用启动时间。

Kotlin 优化

Kotlin 是 Android 开发的一等编程语言,如果您还未尝试,还在等什么呢?我们在 Kotlin 性能方面进行了长期资源投入,同时持续加大对 Kotlin 的支持,如优化 Kotlin 代码性能。在 Android 9 中,您会看到这项工作已初见成效 —— 我们已经改进了一些编译器优化,尤其是那些针对循环的编译器优化,以实现更好的性能。我们还将继续与 JetBrains 合作,优化 Kotlin 生成的代码。只需保持更新 Android Studio 上的 Kotlin 插件,您就能获得所有最新的 Kotlin 性能更新。

今天,我们还在 Android 9 中发布了更新后的 API —— API 28 SDK (rev. 6),在部分最常用的 API 内加入可空值注解 (nullability annotation)。我们会在近期发布相关文章,提供更多细节信息,敬请期待。

现代化的 Android

在 Android 9 中,我们继续投入大量资源,进一步打造更为现代的 Android 平台与运行应用,进而推动我们在安全性、性能和稳定性这三方面长远目标的实现。

我们在去年就已经宣布过 Google Play 将要求所有应用在 2018 年 11 月之前针对 Android Oreo (targetSdkVersion 26 或更高) 进行更新。因此,若您的应用目标平台版本早于 Android 4.2 (API等级17),用户在安装您的应用时,系统会弹出警告对话框。请阅读迁移指南相关文档。我们期待着您的应用能够充分利用现代 Android 为用户带来更好的体验。

简单几步,即可上手

由于 Pixel 用户从今天起就可以开始使用 Android 9,而其他设备也会在接下来的几个月陆续收到更新推送,因此尽快适配您的应用至 Android 9。您只需在 Android 9 Beta 设备或者模拟器上使用 Google Play 安装您目前的应用并进行测试,请确保您的应用在测试过程中运行流畅,界面美观,并能够妥善处理 Android 9 的各项行为变更

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

同时,请您留心应用调用非 SDK 接口的情况。Android 9 限制了一些特定非 SDK 接口的访问权限,因此您需要减少应用对这些接口的依赖。请阅读《后续更新 | 减少使用非 SDK 接口以提升稳定性》,了解详细信息。

在完成必要更新之后,我们建议您立即将应用发布至 Google Play,暂时无需更改应用的目标平台版本。这能帮助您在保障用户体验的同时,继续利用 Android 9 API 优化应用性能并将其逐步迁移至目标平台。

利用 Android 9 特性和 API,进一步优化您的应用

当您准备就绪后,请尽情探索 Android 9,并利用新特性与 API 让您的应用臻于完美。

首先,请将官方版 API 28 SDK 、最新的开发工具与映像文件下载至 Android Studio 3.1,或者使用 Android Studio 3.2 最新版本,然后将项目的 compileSdkVersion 和 targetSdkVersion 更新至 API 28。在更改完目标平台版本之后,请确保您的应用支持所有的行为变更。

在您准备好后,请将 APK 更新发布至 Google Play。我们建议您使用 Google Play 中的 beta 测试功能,先获取一小部分用户的早期反馈,然后再逐渐进行全量发布。

访问 Android 9 官方网站,阅读文档并获取更多相关信息。点击收看视频或者前往 Google I/O Android 播放列表,了解 Android 9 为开发者准备的精彩新亮点。

即刻升级设备,体验 Android 9

从今天开始,Pixel 设备将陆续获取 Android 9 的更新推送。

其它加入 Beta 项目的设备,如 Sony、小米、HMD、Oppo、Vivo、一加和 Essential 以及所有符合要求的 Android One 设备预计会在今年秋末收到更新推送。与此同时,我们也在和其他合作伙伴展开合作,希望在今年推出更多新 Android 9 设备或升级现有设备以支持新系统。
此外,适用于 Pixel 设备的系统映像现可供下载
请前往 Android 开源项目资源库中的 Android 9 板块,获取更多 Android 9 的相关资源。
下一步

最后

简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。

选定你想去的几家公司后,先去一些小的公司练练,学习下面试技巧,总结下,也算是熟悉下面试氛围,平时和同事或者产品PK时可以讲得头头是道,思路清晰至极,到了现场真的不一样,怎么描述你所做的一切,这绝对是个学术性问题!

面试过程一定要有礼貌!即使你觉得面试官不尊重你,经常打断你的讲解,或者你觉得他不如你,问的问题缺乏专业水平,你也一定要尊重他,谁叫现在是他选择你,等你拿到offer后就是你选择他了。

金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

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

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
img

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

资料的朋友,可以添加V获取:vip204888 (备注Android)**
[外链图片转存中…(img-9kfJEmJd-1713437026125)]

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

  • 13
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值