前言
网上关于启动优化的文章多不胜数,内容千篇一律,大都是列举一些耗时操作,采用异步加载、懒加载等。
而在面试过程中,关于启动优化的问题,如果只是很表面地回答耗时操作应该放在子线程,显然太过于普通,无法跟竞争者拉开差距。如何让面试官知道你的“内功深厚”,那肯定是要往原理层面去回答。
本文重点还是关注原理,冷启动优化这个问题能延伸到很多原理层面的知识点,本文比较有意思的地方是通过反编译今日头条App,研究大厂的启动优化方案。
相关背景
NDK,是Native Development Kit的缩写,这是 Android的一个工具开发包,与java语言没有直接的关系
Native就是指C、C++这些语言
使用NDK可以快速开发C、C++的动态库,并自动将这些so文件与其他内容一起打包成APK
Android Studio环境下关于NDK的配置
先把目录切换为Project模式,点这个地方就行
然后选择local.properties文件,就是我标红的这个
可以看到这里记录了NDK和SDK在本地计算机上的存储路径
进一步分析
首先打开SDK manager
出现以下界面
这里可以看到我的NDK是已经下载好的
那么这个下载好的NDK的路径在哪里呢,或者说这个下载好的NDK究竟放在哪里呢,我们查找一下
如下图操作,打开project structure
弹出如下界面
这里就是我们NDK的路径(位置了)
把这个路径复制一下,然后在我的电脑中打开,如图所示
打开这个目录下的toolchains文件夹
可以看到,这里确实没有IDE里报错说我们需要的那种库
解决方法
打开Android开发者的官方网站
选择这个
点击下载
这个还是挺大的,需要等一会儿
下载完成后,解压缩,如图所示
打开这个目录下的toolchain文件夹,找到报错信息里你缺少的文件夹,比如我缺少的文件如下图所示
把这个文件夹复制到NDK所在的路径即可
打开NDK所在路径的方法上面已经说过了
尾声
面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Android核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、热修复设计、插件化框架解读、组件化框架设计、图片加载框架、网络、设计模式、设计思想与代码质量优化、程序性能优化、开发效率优化、设计模式、负载均衡、算法、数据结构、高级UI晋升、Framework内核解析、Android组件内核等。
不仅有学习文档,视频+笔记提高学习效率,还能稳固你的知识,形成良好的系统的知识体系。这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家梳理了多年的架构经验,筹备近6个月最新录制的,相信这份视频能给你带来不一样的启发、收获。
Android进阶学习资料库
一共十个专题,包括了Android进阶所有学习资料,Android进阶视频,Flutter,java基础,kotlin,NDK模块,计算机网络,数据结构与算法,微信小程序,面试题解析,framework源码!
大厂面试真题
PS:之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
《2017-2021字节跳动Android面试历年真题解析》
如果需要PDF版本可以自行领取!
[外链图片转存中…(img-K7V1DQxR-1615548165125)]
如果需要PDF版本可以自行领取!