湛蓝之海 发表于 2021-12-26 11:43:38

态度决定成败:大专毕业的我如何在25岁时拿到了阿里P6的offer?

下载地址:https://shimo.im/docs/Q6V8xPVxHpkrtRtD

关于kotlin
Google 几年前就开始走 “Kotlin First” 的路线,目前很多官方的文档和 Demo 都是使用 Kotlin 语言作为默认,Kotlin 的重要性不言而喻。
我算是第一波开始跟风学习和接触这项技术的人,现在阿里项目上也在使用Kotlin语言,也算赶上了好的时候。当然中间的学习过程,我也有从培训机构学习和借鉴了很多技术。

下载地址:https://shimo.im/docs/Q6V8xPVxHpkrtRtD

Android Studio
Android Studio IDE Overview
Android Studio 作为 Android 默认的开发者工具,目前的版本更新已经解决了诸多之前的性能问题,虽然目前对硬件资源的要求仍然比较高,但是一旦你接受了这个设定,真香预警!
AS 主要需要熟悉下面几点

[*]AS 快捷键
[*]AS 插件
[*]AS Profile (内存、CPU、IO、NetWork)
Project Structure — Java/Kotlin/Flutter, XML, .gradle files
熟悉各种项目的目录结构,资源文件、Gradle 文件

Android 基础知识
四大组件
这部分不必做过多的解释,下面列出的就是大家熟悉的 Android 四大组件,Android 开发的基础

[*]Activity — Activity Lifecycle, Tasks & Back Stack
[*]Service
[*]Broadcast Receiver
[*]Content Provider
Intents

[*]Types of Intent - Implicit, Explicit
[*]Intent Filter
Static User Interface

[*]View — Button, ImageView, TextView, EditText, and etc :这是开发中会遇到的常用的组件,许多复杂的布局都是用简单基础的 View 组合而成
[*]ViewGroup - LinearLayout, RelativeLayout, FrameLayout:三大传统布局,适用于不同的场合
[*]ConstraintLayout : Google 新推的布局,目前已经取代 RelativeLayout 成为默认的 App 布局,具体使用可以参考[官方文档]( )
Dynamic User Interface

[*]RecyclerView - 列表类的布局首选控件,性能相对 ListView 要好一些,功能也比 ListView 要多一些
[*]ViewPager
[*]Spinner
CustomView
Android 默认的布局很多时候都没法满足设计的需求,这时候就需要自定义 View,你需要掌握下面几个知识点的使用

[*]Canvas
[*]Bitmap
[*]Paint
UI Resources
相比 HardCode,使用资源文件会让代码的可修改性更高

[*]Drawables
[*]String
[*]Styles
Fragments
许多人提倡 App 使用 单 Activity + 多个 Fragment 的组合,可见 Fragment 在开发中的重要性,但是 Fragment 的管理又是一门技术,Fragment 的坑,只能在实际开发中慢慢填平了,不过下面的 Fragment 基础还是要牢固

[*]Fragment Lifecycle
[*]Fragment Manager
Support User Interface
这里列的同样是一些功能组件,需要知道这是什么东西,基本的用法

[*]ProgressBar - 进度条
[*]Dialogs - 弹框
[*]Toast & Snackbar - 提示
Storage
App 开发不免要和文件打交道,文件的读写、存储都是必不可少的,下面列出了几种 Android 中存储相关的知识点

[*]Shared Preferences - 适合存储字段
[*]File Systems - 文件存储
[*]Database — RoomDB - 数据库存储,RoomDB 是 Google 新推出的数据库解决方案(在 AndroidX 中),具体使用可以参考[官方文档]( )
Build
Android App 默认使用 Gradle 进行编译,关于 Gradle 的使用必须要熟悉,以及如何区分开发版本和 Release 版本,以及国内特有的多渠道打包技术、以及 ASM 等

[*]Gradle
[*]Debug / Release Configuration
[*]多渠道打包
[*]ASM
Threading
理解 Thread 非常重要,Android App 只有一个主线程,其余的我们称之为工作线程,我们的很多工作需要再工作线程和主线程直接切换,如何高效创建和释放线程、线程池、线程间通信、Message-Looper-Handler 模型这些知识点都要了熟于心,另外进阶的话 Binder 通信也是需要掌握的知识

[*]Threads
[*]Handler / Looper / Message / MessageQueue
[*]AIDL / Binder

Debugging
这里列举了一些 Debug 的基本手段,实际开发中遇到具体问题的时候一般都会用到,不过有的可能入手难度要高一些,需要花时间去掌握。Debug 工具除了下面这几个还有很多

[*]Memory profiling - MAT,AS Memory Profile
[*]Logging - Log 包含非常丰富的信息,可以帮助我们还原现场
[*]Systrace - Systrace 工具可以查看一段时间内手机系统各个进程的运行状态,具体使用可以参考我博客的 ( )
[*]Exceptions - 各种异常,保证程序的健壮性
[*]Error Handling - Error 是必须要解决的问题,一般会导致 App 直接闪退,需要非常重视

Memory Leak
内存泄漏是一个很大的专题,包括 Java 内容泄漏和 Native 内存泄漏,涉及的知识点非常多,可以单独拿出来做一个大的知识栈。一般来说, Java 内存泄漏会比较好检测和修复,但是 Native 内存泄漏就会比较难。

[*]Detecting and Fixing Memory Leaks - 内存泄漏检测和修复,是一个比较大的工程,可以参考 LeakCanary、Matrix 等开源工具
[*]Context - 使用不当会造成该释放的对象没有释放造成内存泄漏
[*]Native Memory Leaks

3rd Party Library
经典的第三方类库,可以大幅节约我们的开发时间

[*]Image Loading - Glide, Picasso
[*]Dependency Injection - Dagger
[*]Networking - Fast Android Networking Library, Retrofit
[*]MultiThreading - RxJava, Coroutines总结
最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的Android开发中高级必知必会核心笔记,共计2968页PDF、58w字,囊括Android开发648个知识点,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。

以上分享【Android开发中高级必知必会核心知识笔记】七大模块整套学习资料均免费分享,需要的小伙伴,我已经上传到GitHub了,大家自取就可以了。白嫖可以,别忘了给我点个关注哈。
【Android开发中高级必知必会核心知识笔记】
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
2021年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。
虽然面试失败了,但我也不会放弃入职字节跳动的决心的!建议大家面试之前都要有充分的准备,顺顺利利的拿到自己心仪的offer。


https://blog.51cto.com/u_15465267/4844697
页: [1]
查看完整版本: 态度决定成败:大专毕业的我如何在25岁时拿到了阿里P6的offer?